diff --git a/ChangeLog b/ChangeLog index 9050de73e5..cfa9ffe2c7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-06-27 Daniel Fischer + + reviewed by: Luca Ognibene + + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop): + * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_chain_video): + more DELTA_UNIT / KEY_UNIT fixes + 2005-06-27 Daniel Fischer reviewed by: Luca Ognibene diff --git a/ext/ffmpeg/gstffmpegdemux.c b/ext/ffmpeg/gstffmpegdemux.c index bc2818b123..3b714c095a 100644 --- a/ext/ffmpeg/gstffmpegdemux.c +++ b/ext/ffmpeg/gstffmpegdemux.c @@ -661,9 +661,10 @@ gst_ffmpegdemux_loop (GstElement * element) demux->last_ts[stream->index] = GST_BUFFER_TIMESTAMP (outbuf); } - if (pkt.flags & PKT_FLAG_KEY) { + if (pkt.flags & PKT_FLAG_KEY) GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_KEY_UNIT); - } + else + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_DELTA_UNIT); gst_pad_push (pad, GST_DATA (outbuf)); } diff --git a/ext/ffmpeg/gstffmpegenc.c b/ext/ffmpeg/gstffmpegenc.c index fb5cb19508..1b52db6347 100644 --- a/ext/ffmpeg/gstffmpegenc.c +++ b/ext/ffmpeg/gstffmpegenc.c @@ -488,7 +488,9 @@ gst_ffmpegenc_chain_video (GstPad * pad, GstData * _data) GST_BUFFER_SIZE (outbuf) = ret_size; GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (inbuf); GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (inbuf); - if (ffmpegenc->context->coded_frame->key_frame == 0) + if (ffmpegenc->context->coded_frame->key_frame) + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_KEY_UNIT); + else GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_DELTA_UNIT); gst_pad_push (ffmpegenc->srcpad, GST_DATA (outbuf));