[FFmpeg-devel] [PATCH] Get rid of SAMPLE_FMT_S24

Måns Rullgård mans
Sun Nov 18 17:40:12 CET 2007

Baptiste Coudurier <baptiste.coudurier at smartjog.com> writes:

> Justin Ruggles a ?crit :
>> Baptiste Coudurier wrote:
>>> Michael Niedermayer a ?crit :
>>>> On Sun, Nov 18, 2007 at 02:35:17PM +0100, Baptiste Coudurier wrote:
>>>>> Hi
>>>>> Andreas ?man a ?crit :
>>>>>> hi,
>>>>>> see $subj
>>>>> Some codecs support 24 bit (alac, flac, aes3, dvd) samples, decoders 
>>>>> should output what is stored, ideally, so I don't see why SAMPLE_FMT_S24 
>>>>> should be dropped.
>>>> there are no 24bit ints stored, what is stored are various vlc codes
>>>> outputing them as 32bit is faster and more natural than 24bit
>>>> also working with 32bit is a lot easier than 24bit, so few if any filters
>>>> would support 24bit ...
>>> There are 24 bits ints stored, in dvd pcm and aes 3 at least.
>>> You are IMHO messing up sample format and stored format.
>>> SAMPLE_FMT_S24 depicts the sample value range is using 24 bits.
>>> I still don't see why SAMPLE_FMT_S24 should be dropped.
>>> In contrary I think a better mechanism should be added, like 
>>> WAVEFORMATEXTENSIBLE does, if you want to tell application that sample 
>>> is on 24 bits but stored on 32 bits.
>> How about:
>> AVCodecContext.sample_fmt = SAMPLE_FMT_S32
>> AVCodecContext.bits_per_sample = 24
>  >
>> I tend to agree with Michael here.  Working natively with 24-bit samples 
>> is not very useful or easy.
> Well, that would mean padding and copying to specify SAMPLE_FMT_S32, for 
> at least aes3, dvd pcm, in24, all pcm variants which are using 24 bits 
> to store samples > 16 and <= 24 bits.
> I don't know any format using 32 bits to store those samples.

DVD 24-bit PCM doesn't even have contiguous samples, so it will always
need some shuffling to become usable.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-devel mailing list