diff options
author | Mark Nauwelaerts <manauw@skynet.bet> | 2006-05-09 14:08:15 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2006-05-09 14:08:15 +0000 |
commit | e412f6d4339c789bcc89a46bfef51d46c9f39293 (patch) | |
tree | c99453d2bb4e38ad07d9bf8edd864ea41cc2d1c4 /gst/avi/gstavimux.c | |
parent | e437b6bd69b7ee0e22fdcfc3be12a2b4e404cfb4 (diff) |
gst/avi/gstavimux.c: Work around gst_buffer_make_metadata_writable() bug that results in avimux marking all frames in...
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet bet>
* gst/avi/gstavimux.c: (gst_avi_mux_do_audio_buffer),
(gst_avi_mux_do_video_buffer):
Work around gst_buffer_make_metadata_writable() bug that
results in avimux marking all frames in the index as
keyframes (#340859).
Diffstat (limited to 'gst/avi/gstavimux.c')
-rw-r--r-- | gst/avi/gstavimux.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c index de070772..29c0f0cd 100644 --- a/gst/avi/gstavimux.c +++ b/gst/avi/gstavimux.c @@ -1317,7 +1317,6 @@ gst_avi_mux_do_audio_buffer (GstAviMux * avimux) gulong total_size, pad_bytes = 0; data = gst_collect_pads_pop (avimux->collect, avimux->audiocollectdata); - data = gst_avi_mux_strip_buffer (avimux, data); /* write a audio header + index entry */ if (GST_BUFFER_SIZE (data) & 1) { @@ -1336,7 +1335,10 @@ gst_avi_mux_do_audio_buffer (GstAviMux * avimux) GST_BUFFER_SIZE (data)); } + /* prepare buffers for sending */ gst_buffer_set_caps (header, GST_PAD_CAPS (avimux->srcpad)); + data = gst_avi_mux_strip_buffer (avimux, data); + if ((res = gst_pad_push (avimux->srcpad, header)) != GST_FLOW_OK) return res; if ((res = gst_pad_push (avimux->srcpad, data)) != GST_FLOW_OK) @@ -1364,7 +1366,6 @@ gst_avi_mux_do_video_buffer (GstAviMux * avimux) gulong total_size, pad_bytes = 0; data = gst_collect_pads_pop (avimux->collect, avimux->videocollectdata); - data = gst_avi_mux_strip_buffer (avimux, data); if (avimux->restart) { if ((res = gst_avi_mux_restart_file (avimux)) != GST_FLOW_OK) @@ -1404,7 +1405,10 @@ gst_avi_mux_do_video_buffer (GstAviMux * avimux) GST_BUFFER_SIZE (data)); } + /* prepare buffers for sending */ gst_buffer_set_caps (header, GST_PAD_CAPS (avimux->srcpad)); + data = gst_avi_mux_strip_buffer (avimux, data); + if ((res = gst_pad_push (avimux->srcpad, header)) != GST_FLOW_OK) return res; if ((res = gst_pad_push (avimux->srcpad, data)) != GST_FLOW_OK) |