summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2014-10-22 09:29:38 +0100
committerCarl Hetherington <cth@carlh.net>2014-10-22 09:29:38 +0100
commit176e5b4c4dd7d2a3ff3e106c50157543f646dda6 (patch)
treef50f7380b85ee9a3f3cc342f082fd7675825f0b2
parentf8607d7950013d26b33be022bd4d06acb5807cd0 (diff)
Ignore video streams with zero avg_frame_rate in their AVStream (e.g. from iTunes).
-rw-r--r--ChangeLog5
-rw-r--r--src/lib/ffmpeg.cc5
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 5bb0711b4..69af59f2c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-10-22 Carl Hetherington <cth@carlh.net>
+
+ * Fix bug where some files from iTunes would
+ be read as being at 90,000fps.
+
2014-10-20 Carl Hetherington <cth@carlh.net>
* Version 1.76.2 released.
diff --git a/src/lib/ffmpeg.cc b/src/lib/ffmpeg.cc
index ebe62b51f..53eed97e2 100644
--- a/src/lib/ffmpeg.cc
+++ b/src/lib/ffmpeg.cc
@@ -109,7 +109,10 @@ FFmpeg::setup_general ()
for (uint32_t i = 0; i < _format_context->nb_streams; ++i) {
AVStream* s = _format_context->streams[i];
- if (s->codec->codec_type == AVMEDIA_TYPE_VIDEO) {
+ /* Files from iTunes sometimes have two video streams, one with the avg_frame_rate.num and .den set
+ to zero. Ignore these streams.
+ */
+ if (s->codec->codec_type == AVMEDIA_TYPE_VIDEO && s->avg_frame_rate.num > 0 && s->avg_frame_rate.den > 0) {
_video_stream = i;
}
}