gst/realmedia/rmdemux.c: After descrambling, push the packets out as individual packets instead of one big descramble...

Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_descramble_cook_audio):
After descrambling, push the packets out as individual packets
instead of one big descrambled buffer. Makes cook audio decoding
work with the 'realaudiodec' decoder from gst-plugins-bad.
This commit is contained in:
Tim-Philipp Müller 2007-05-16 19:15:13 +00:00
parent 286a2c0edb
commit 897f7039f8
2 changed files with 19 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2007-05-16 Tim-Philipp Müller <tim at centricular dot net>
* gst/realmedia/rmdemux.c: (gst_rmdemux_descramble_cook_audio):
After descrambling, push the packets out as individual packets
instead of one big descrambled buffer. Makes cook audio decoding
work with the 'realaudiodec' decoder from gst-plugins-bad.
2007-05-16 Tim-Philipp Müller <tim at centricular dot net>
* gst/realmedia/rmdemux.c: (gst_rmdemux_init),

View file

@ -1876,7 +1876,18 @@ gst_rmdemux_descramble_cook_audio (GstRMDemux * rmdemux,
}
}
ret = gst_pad_push (stream->pad, outbuf);
/* some decoders, such as realaudiodec, need to be fed in packet units */
for (p = 0; p < height; ++p) {
GstBuffer *subbuf;
subbuf = gst_buffer_create_sub (outbuf, p * packet_size, packet_size);
gst_buffer_set_caps (subbuf, GST_PAD_CAPS (stream->pad));
ret = gst_pad_push (stream->pad, subbuf);
if (ret != GST_FLOW_OK)
break;
}
gst_buffer_unref (outbuf);
done: