[FFmpeg-cvslog] avdevice/v4l2: only use frame period from v4l2 if valid
Michael Niedermayer
git at videolan.org
Sun Feb 2 00:21:12 CET 2014
ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Feb 2 00:10:43 2014 +0100| [4aa4533ee8b51a1e6bdc4fbffaf90aa2b14e2c9f] | committer: Michael Niedermayer
avdevice/v4l2: only use frame period from v4l2 if valid
There is evidence that some drivers do not set a valid value
See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=718805
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=4aa4533ee8b51a1e6bdc4fbffaf90aa2b14e2c9f
---
libavdevice/v4l2.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 1ab6f1c..b4f65d3 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -742,9 +742,12 @@ static int v4l2_set_parameters(AVFormatContext *s1)
"The driver does not allow to change time per frame\n");
}
}
- s1->streams[0]->avg_frame_rate.num = tpf->denominator;
- s1->streams[0]->avg_frame_rate.den = tpf->numerator;
- s1->streams[0]->r_frame_rate = s1->streams[0]->avg_frame_rate;
+ if (tpf->denominator > 0 && tpf->numerator > 0) {
+ s1->streams[0]->avg_frame_rate.num = tpf->denominator;
+ s1->streams[0]->avg_frame_rate.den = tpf->numerator;
+ s1->streams[0]->r_frame_rate = s1->streams[0]->avg_frame_rate;
+ } else
+ av_log(s1, AV_LOG_WARNING, "Time per frame unknown\n");
return 0;
}
More information about the ffmpeg-cvslog
mailing list