mmaldec: fix pkt_dts determination
authorwm4 <nfxjfg@googlemail.com>
Tue, 8 Sep 2015 17:42:26 +0000 (19:42 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Sat, 12 Sep 2015 10:27:34 +0000 (12:27 +0200)
This also drops setting the frame->pts field. This is usually not set by
decoders, so this would be an inconsistency that's at worst a danger to
the API user.

It appears the buffer->dts field is normally not set by the MMAL
decoder, so don't use it. If it's ever going to be set by MMAL, we
don't know whether the value will be what we want.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
libavcodec/mmaldec.c

index a23a97f..1099129 100644 (file)
@@ -621,10 +621,8 @@ static int ffmal_copy_frame(AVCodecContext *avctx,  AVFrame *frame,
         }
     }
 
-    if (buffer->pts != MMAL_TIME_UNKNOWN) {
-        frame->pkt_pts = buffer->pts;
-        frame->pts = buffer->pts;
-    }
+    frame->pkt_pts = buffer->pts == MMAL_TIME_UNKNOWN ? AV_NOPTS_VALUE : buffer->pts;
+    frame->pkt_dts = AV_NOPTS_VALUE;
 
 done:
     return ret;