From 2d8a989c95acf23c0c02c3b0e9dad0e7ba1b9898 Mon Sep 17 00:00:00 2001 From: Alexey Fisher Date: Sun, 26 Jun 2011 15:15:54 +0200 Subject: [PATCH] [MOVED FROM BAD 081/134] vp8enc: generate a timestamp for alt-ref frames. It will fix handling of altref/invisible frames since matroska-mux drop any fram with no timestamp. see also: http://www.webmproject.org/code/specs/container/ The encoder will currently set the AR's timestamp as close as possible to the previous frame while attempting to provide a timestamp that is strictly increasing. In cases where the time base given to the encoder at configure time is not granular enough to allow for this the AR will share the same timestamp as D, but should be treated as having no duration. Fixes bug #652951 Signed-off-by: Alexey Fisher --- ext/vp8/gstvp8enc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ext/vp8/gstvp8enc.c b/ext/vp8/gstvp8enc.c index ad6a282be2..6f65d955e4 100644 --- a/ext/vp8/gstvp8enc.c +++ b/ext/vp8/gstvp8enc.c @@ -939,6 +939,8 @@ gst_vp8_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, encoder->keyframe_distance++; } + GST_BUFFER_TIMESTAMP (buf) = GST_BUFFER_TIMESTAMP (frame->src_buffer); + GST_BUFFER_DURATION (buf) = 0; GST_BUFFER_OFFSET_END (buf) = _to_granulepos (frame->presentation_frame_number + 1, inv_count, encoder->keyframe_distance);