summaryrefslogtreecommitdiff
path: root/recipes-support/opencv/opencv/0004-cap_ffmpeg-do-not-use-AVStream.r_frame_rate.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-support/opencv/opencv/0004-cap_ffmpeg-do-not-use-AVStream.r_frame_rate.patch')
-rw-r--r--recipes-support/opencv/opencv/0004-cap_ffmpeg-do-not-use-AVStream.r_frame_rate.patch47
1 files changed, 47 insertions, 0 deletions
diff --git a/recipes-support/opencv/opencv/0004-cap_ffmpeg-do-not-use-AVStream.r_frame_rate.patch b/recipes-support/opencv/opencv/0004-cap_ffmpeg-do-not-use-AVStream.r_frame_rate.patch
new file mode 100644
index 0000000..5d4584a
--- /dev/null
+++ b/recipes-support/opencv/opencv/0004-cap_ffmpeg-do-not-use-AVStream.r_frame_rate.patch
@@ -0,0 +1,47 @@
+From 023e48e2e2fe845128752c4eeb9d0aa26b261e89 Mon Sep 17 00:00:00 2001
+From: Anton Khirnov <anton@khirnov.net>
+Date: Thu, 6 Feb 2014 09:46:58 +0100
+Subject: [PATCH 4/5] cap_ffmpeg: do not use AVStream.r_frame_rate
+
+r_frame_rate is a guessed number defined as "the least common multiple
+of all framerates in the stream". It has been deprecated and removed in
+new Libav releases.
+
+Use avg_frame_rate instead, which is the average framerate of the
+stream.
+
+(cherry picked from commit 0c8faf17694baaf62ad120b6b3103b5d022e04ed)
+---
+ modules/highgui/src/cap_ffmpeg_impl.hpp | 9 ++-------
+ 1 file changed, 2 insertions(+), 7 deletions(-)
+
+diff --git a/modules/highgui/src/cap_ffmpeg_impl.hpp b/modules/highgui/src/cap_ffmpeg_impl.hpp
+index e2e3c30..44ef553 100644
+--- a/modules/highgui/src/cap_ffmpeg_impl.hpp
++++ b/modules/highgui/src/cap_ffmpeg_impl.hpp
+@@ -735,7 +735,7 @@ double CvCapture_FFMPEG::getProperty( int property_id )
+ case CV_FFMPEG_CAP_PROP_FRAME_HEIGHT:
+ return (double)frame.height;
+ case CV_FFMPEG_CAP_PROP_FPS:
+- return av_q2d(video_st->r_frame_rate);
++ return av_q2d(video_st->avg_frame_rate);
+ case CV_FFMPEG_CAP_PROP_FOURCC:
+ return (double)video_st->codec->codec_tag;
+ default:
+@@ -774,12 +774,7 @@ int CvCapture_FFMPEG::get_bitrate()
+
+ double CvCapture_FFMPEG::get_fps()
+ {
+- double fps = r2d(ic->streams[video_stream]->r_frame_rate);
+-
+- if (fps < eps_zero)
+- {
+- fps = r2d(ic->streams[video_stream]->avg_frame_rate);
+- }
++ double fps = r2d(ic->streams[video_stream]->avg_frame_rate);
+
+ if (fps < eps_zero)
+ {
+--
+1.9.3
+