diff options
author | Mathieu Duponchelle <mathieu@centricular.com> | 2019-08-13 22:03:31 +0200 |
---|---|---|
committer | Sebastian Dröge <slomo@coaxion.net> | 2019-08-13 20:32:47 +0000 |
commit | 06c249cabb41d5de6394569bfb545758fec07749 (patch) | |
tree | b9a36ac5c1e116eceeda13d87a6d7970cae65f3f | |
parent | 6382be0996ee92f8214c89d2028c28dc4806c84e (diff) | |
download | gst-libav-06c249cabb41d5de6394569bfb545758fec07749.tar.gz |
avvidenc: timestamp output buffers
Same approach as x264enc, with the one hour offset
-rw-r--r-- | ext/libav/gstavvidenc.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c index 5193a01..8211de2 100644 --- a/ext/libav/gstavvidenc.c +++ b/ext/libav/gstavvidenc.c @@ -682,6 +682,15 @@ gst_ffmpegvidenc_receive_packet (GstFFMpegVidEnc * ffmpegenc, GST_VIDEO_CODEC_FRAME_UNSET_SYNC_POINT (frame); } + frame->dts = + gst_ffmpeg_time_ff_to_gst (pkt->dts, ffmpegenc->context->time_base); + /* This will lose some precision compared to setting the PTS from the input + * buffer directly, but that way we're sure PTS and DTS are consistent, in + * particular DTS should always be <= PTS + */ + frame->pts = + gst_ffmpeg_time_ff_to_gst (pkt->pts, ffmpegenc->context->time_base); + ret = gst_video_encoder_finish_frame (GST_VIDEO_ENCODER (ffmpegenc), frame); done: @@ -836,6 +845,8 @@ gst_ffmpegvidenc_start (GstVideoEncoder * encoder) return FALSE; } + gst_video_encoder_set_min_pts (encoder, GST_SECOND * 60 * 60 * 1000); + return TRUE; } |