On Feb 26, 2013, at 3:04 PM, Nicolas George <[email protected]> 
wrote:

>> On Feb 26, 2013, at 1:01 PM, René J.V. Bertin 
>> <[email protected]> wrote:
>>>                                                       What I don't dare
>>> to guess is why the void* type isn't used - is there a practical reason
>>> or only a 'programming principle' behind that?
> 
> You can not do pointer arithmetic with void pointers. Therefore, for some
> simple task (for example, copying n samples from position m to position p),
> having the pointer already with a suitable type avoids an additional cast.
> 
> 
> L'octidi 8 ventôse, an CCXXI, Brad O'Hearne a écrit :
>> Perhaps I've been staring at this too long and am losing my mind, but
>> there is a difference between uint8_t and int8_t:
> 
> This difference is irrelevant for pointer arithmetic, it is only relevant
> when dereferencing the pointer. You are not supposed to dereference these
> pointers directly, you are supposed to cast them to the actual type of the
> samples before.

Nicolas - thanks for the reply. This makes sense (more or less) to me for a 
planar format -- if I'm understanding you correctly, such a structure would 
look something like:

uint8_t **data
data[0]-> channel 1 buffer
data[1]-> channel 2 buffer

If this is right, then what does an interleaved format look like, is it like 
this:

uint8_t **data
data[0]-> buffer containing interleaved channel 1 and channel 2 data

Is that correct? 

Thanks,

Brad

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to