[Libav-user] Converting audio sample buffer format

Brad O'Hearne brado at bighillsoftware.com
Tue Feb 26 20:26:07 CET 2013


On Feb 26, 2013, at 11:51 AM, Paul B Mahol <onemda at gmail.com> wrote:
> Planar is used if sample_fmt is set to planar one - in this case for
> every channel, channel samples are stored in separate buffer eg.
> p->data[X] where X is channel number.
> 
> Interleaved use only p->data[0] and every channel sample comes one
> after another.
> 
> Samples are always considered to be in native endiannes (you need to
> do swapping on your own)

Paul -- hey great, this is a good start for me. So if I am understanding you correctly: 

*** Channel layout

1) Planar 
channel 1 = data[0]
channel 2 = data[channel 1 data length]
...etc.

2) Interleaved
channel 1, sample 1 = data[0]
channel 2, sample 1 = data[channel 1 sample length]
...etc.

Follow up question -- if I have 2 channels in play, is there a 1:1 relationship between channel 1 and channel 2 samples? In other words, for every channel 1 sample will there be a channel 2 sample? (Obviously effects buffer lengths and interleaving). 

If this is so....perhaps you can expound a little more on how AV_SAMPLE_FMT_S16 is laid out (think I know, just want to confirm).

Thx for your help....

Brad




More information about the Libav-user mailing list