basevideoencoder: pass along buffer discont flag
This commit is contained in:
parent
ef4bceabbb
commit
576fb1b4cb
@ -149,6 +149,7 @@ struct _GstBaseVideoCodec
|
|||||||
|
|
||||||
gdouble proportion;
|
gdouble proportion;
|
||||||
GstClockTime earliest_time;
|
GstClockTime earliest_time;
|
||||||
|
gboolean discont;
|
||||||
|
|
||||||
/* FIXME before moving to base */
|
/* FIXME before moving to base */
|
||||||
void *padding[GST_PADDING_LARGE];
|
void *padding[GST_PADDING_LARGE];
|
||||||
|
@ -624,6 +624,11 @@ gst_base_video_encoder_chain (GstPad * pad, GstBuffer * buf)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT))) {
|
||||||
|
GST_LOG_OBJECT (base_video_encoder, "marked discont");
|
||||||
|
GST_BASE_VIDEO_CODEC (base_video_encoder)->discont = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
frame =
|
frame =
|
||||||
gst_base_video_codec_new_frame (GST_BASE_VIDEO_CODEC
|
gst_base_video_codec_new_frame (GST_BASE_VIDEO_CODEC
|
||||||
(base_video_encoder));
|
(base_video_encoder));
|
||||||
@ -743,6 +748,12 @@ gst_base_video_encoder_finish_frame (GstBaseVideoEncoder * base_video_encoder,
|
|||||||
GST_BUFFER_DURATION (frame->src_buffer) = frame->presentation_duration;
|
GST_BUFFER_DURATION (frame->src_buffer) = frame->presentation_duration;
|
||||||
GST_BUFFER_OFFSET (frame->src_buffer) = frame->decode_timestamp;
|
GST_BUFFER_OFFSET (frame->src_buffer) = frame->decode_timestamp;
|
||||||
|
|
||||||
|
if (G_UNLIKELY (GST_BASE_VIDEO_CODEC (base_video_encoder)->discont)) {
|
||||||
|
GST_LOG_OBJECT (base_video_encoder, "marking discont");
|
||||||
|
GST_BUFFER_FLAG_SET (frame->src_buffer, GST_BUFFER_FLAG_DISCONT);
|
||||||
|
GST_BASE_VIDEO_CODEC (base_video_encoder)->discont = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
GST_BASE_VIDEO_CODEC (base_video_encoder)->frames =
|
GST_BASE_VIDEO_CODEC (base_video_encoder)->frames =
|
||||||
g_list_remove (GST_BASE_VIDEO_CODEC (base_video_encoder)->frames, frame);
|
g_list_remove (GST_BASE_VIDEO_CODEC (base_video_encoder)->frames, frame);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user