mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
gst/mxf/mxfd10.c: Document decoding of the AES3 data and also skip the 32 bit header in the beginning of every buffer...
Original commit message from CVS: * gst/mxf/mxfd10.c: (mxf_d10_sound_handle_essence_element): Document decoding of the AES3 data and also skip the 32 bit header in the beginning of every buffer, otherwise we get one broken audio channel.
This commit is contained in:
parent
6f15343df1
commit
f4cb76e92d
2 changed files with 15 additions and 0 deletions
|
@ -1,3 +1,10 @@
|
|||
2008-12-06 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||
|
||||
* gst/mxf/mxfd10.c: (mxf_d10_sound_handle_essence_element):
|
||||
Document decoding of the AES3 data and also skip the 32 bit
|
||||
header in the beginning of every buffer, otherwise we get
|
||||
one broken audio channel.
|
||||
|
||||
2008-12-05 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||
|
||||
* gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata),
|
||||
|
|
|
@ -118,10 +118,16 @@ mxf_d10_sound_handle_essence_element (const MXFUL * key, GstBuffer * buffer,
|
|||
indata = GST_BUFFER_DATA (buffer);
|
||||
outdata = GST_BUFFER_DATA (*outbuf);
|
||||
|
||||
/* Skip 32 bit header */
|
||||
indata += 4;
|
||||
|
||||
for (i = 0; i < nsamples; i++) {
|
||||
for (j = 0; j < channels; j++) {
|
||||
guint32 in = GST_READ_UINT32_LE (indata);
|
||||
|
||||
/* Remove first 4 and last 4 bits as they only
|
||||
* contain status data. Shift the 24 bit samples
|
||||
* to the correct width afterwards. */
|
||||
if (width == 2) {
|
||||
in = (in >> 12) & 0xffff;
|
||||
GST_WRITE_UINT16_LE (outdata, in);
|
||||
|
@ -132,6 +138,8 @@ mxf_d10_sound_handle_essence_element (const MXFUL * key, GstBuffer * buffer,
|
|||
indata += 4;
|
||||
outdata += width;
|
||||
}
|
||||
/* There are always 8 channels but only the first
|
||||
* ones contain valid data, skip the others */
|
||||
indata += 4 * (8 - channels);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue