avvidec: Don't set bogus latency
authorEdward Hervey <bilboed@bilboed.com>
Sat, 14 May 2016 10:09:06 +0000 (12:09 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Sat, 14 May 2016 10:09:06 +0000 (12:09 +0200)
We might have cases where the framerate is not known (0/1).

ext/libav/gstavviddec.c

index 8273dda4e6ffd8798255b0d6d0f9710ffba3f8f0..53391ad81b35dc120e39676d47a8530289ff97c2 100644 (file)
@@ -1095,11 +1095,13 @@ gst_ffmpegviddec_negotiate (GstFFMpegVidDec * ffmpegdec,
     goto negotiate_failed;
 
   /* The decoder is configured, we now know the true latency */
-  latency =
-      gst_util_uint64_scale_ceil (ffmpegdec->context->has_b_frames * GST_SECOND,
-      fps_d, fps_n);
-  gst_video_decoder_set_latency (GST_VIDEO_DECODER (ffmpegdec), latency,
-      latency);
+  if (fps_n) {
+    latency =
+        gst_util_uint64_scale_ceil (ffmpegdec->context->has_b_frames *
+        GST_SECOND, fps_d, fps_n);
+    gst_video_decoder_set_latency (GST_VIDEO_DECODER (ffmpegdec), latency,
+        latency);
+  }
 
   return TRUE;