summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca Ognibene <luogni@tin.it>2005-06-27 21:02:40 +0000
committerLuca Ognibene <luogni@tin.it>2005-06-27 21:02:40 +0000
commit26d61e741bc664223203c89af42191ece9882c0f (patch)
tree7d17deddcf40d655c0c8b02200d975fd007b8bb0
parent78637215f1026cf85d63b63f46416d45060577fe (diff)
downloadgst-libav-26d61e741bc664223203c89af42191ece9882c0f.tar.gz
ext/ffmpeg/: more DELTA_UNIT / KEY_UNIT fixes
Original commit message from CVS: * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop): * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_chain_video): more DELTA_UNIT / KEY_UNIT fixes
-rw-r--r--ChangeLog8
-rw-r--r--ext/ffmpeg/gstffmpegdemux.c5
-rw-r--r--ext/ffmpeg/gstffmpegenc.c4
3 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 9050de7..cfa9ffe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,14 @@
reviewed by: Luca Ognibene <luogni@tin.it>
+ * 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 <dan@f3c.com>
+
+ reviewed by: Luca Ognibene <luogni@tin.it>
+
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_formatid_to_caps),
(gst_ffmpeg_formatid_get_codecids), (gst_ffmpeg_caps_to_codecid):
add flv encoder
diff --git a/ext/ffmpeg/gstffmpegdemux.c b/ext/ffmpeg/gstffmpegdemux.c
index bc2818b..3b714c0 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 fb5cb19..1b52db6 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));