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).
This commit is contained in:
Mark Nauwelaerts 2006-05-09 14:08:15 +00:00 committed by Tim-Philipp Müller
parent e437b6bd69
commit e412f6d433
3 changed files with 17 additions and 3 deletions

View file

@ -1,3 +1,13 @@
2006-05-09 Tim-Philipp Müller <tim at centricular dot net>
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).
2006-05-08 Wim Taymans <wim@fluendo.com>
* gst/rtsp/rtspurl.c: (rtsp_url_parse):

2
common

@ -1 +1 @@
Subproject commit 6b67aa6dd111fb139e1be0f6a386e3ff84cce091
Subproject commit e41606ab2c6a31be473de511b5fd776bd2593b56

View file

@ -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)