diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c index d0e89829f..5df6f9ca7 100644 --- a/gst-libs/gst/video/gstvideodecoder.c +++ b/gst-libs/gst/video/gstvideodecoder.c @@ -2950,11 +2950,17 @@ gst_video_decoder_prepare_finish_frame (GstVideoDecoder * if (frame->duration != GST_CLOCK_TIME_NONE) { if (GST_CLOCK_TIME_IS_VALID (priv->last_timestamp_out)) frame->pts = priv->last_timestamp_out + frame->duration; - else if (decoder->output_segment.rate > 0.0) + else if (frame->dts != GST_CLOCK_TIME_NONE) { + frame->pts = frame->dts; + GST_LOG_OBJECT (decoder, + "Setting DTS as PTS %" GST_TIME_FORMAT " for frame...", + GST_TIME_ARGS (frame->pts)); + } else if (decoder->output_segment.rate > 0.0) frame->pts = decoder->output_segment.start; - GST_LOG_OBJECT (decoder, - "Guessing timestamp %" GST_TIME_FORMAT " for frame...", - GST_TIME_ARGS (frame->pts)); + GST_INFO_OBJECT (decoder, + "Guessing PTS=%" GST_TIME_FORMAT " for frame... DTS=%" + GST_TIME_FORMAT, GST_TIME_ARGS (frame->pts), + GST_TIME_ARGS (frame->dts)); } else if (sync && frame->dts != GST_CLOCK_TIME_NONE) { frame->pts = frame->dts; GST_LOG_OBJECT (decoder,