summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
m---------common0
-rw-r--r--gst/avi/gstavimux.c8
3 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e6cfb2d..4115f2ba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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):
diff --git a/common b/common
-Subproject 6b67aa6dd111fb139e1be0f6a386e3ff84cce09
+Subproject e41606ab2c6a31be473de511b5fd776bd2593b5
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)