[FFmpeg-devel] [PATCH] Set generic yuv420 sampling in yuv4mpeg by default
David Conrad
lessen42
Sun May 10 02:05:02 CEST 2009
On May 9, 2009, at 6:29 AM, Michael Niedermayer wrote:
> On Sat, May 09, 2009 at 05:48:30AM -0400, David Conrad wrote:
>> On May 8, 2009, at 9:49 AM, Michael Niedermayer wrote:
>>
>>> On Thu, May 07, 2009 at 11:43:25PM -0400, David Conrad wrote:
>>>> Hi,
>>>>
>>>> As discovered in #x264, the dump_psnr tool in Thusnelda actually
>>>> cares
>>>> about chroma sample positions. This should probably be more
>>>> correct; I
>>>> don't know for sure which codecs define which positioning.
>>>
>>> many codecs leave it unspecified
>>> h264 & mpeg4 match mpeg2 by default in theory, in how far the actual
>>> data matches this of course is another question
>>
>> I didn't know that; but probably the correlation with actual data
>> isn't
>> much worse than mpeg2.
>
> maybe
>
>
>>
>>> h264 allows the exact chroma positions to be stored for 420
>>> we could add a chroma_sample_location field to AVCodecContext maybe
>>
>> I wound up doing this and adding values for a couple codecs I
>> looked up.
>>
>
>> commit 1c69912aac082eb182e619fa75c127823167d8ed
>> Author: David Conrad <lessen42 at gmail.com>
>> Date: Sat May 9 05:41:16 2009 -0400
>>
>> Add a chroma_sample_location field to define positioning of
>> chroma samples
>>
>> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
>> index 4226673..b6c6cc4 100644
>> --- a/libavcodec/avcodec.h
>> +++ b/libavcodec/avcodec.h
>> @@ -2481,6 +2481,20 @@ typedef struct AVCodecContext {
>> * - decoding: Set by libavcodec
>> */
>> enum AVColorRange color_range;
>> +
>> + /**
>> + * This defines the location of chroma samples.
>> + * If the 2nd element is nonzero, it defines the location of
>> + * bottom field chroma while the 1st element defines top field
>> chroma.
>> + *
>> + * X X 3 4 X X are luma samples,
>> + * 1 2 1-6 are possible chroma positions
>> + * X X 5 6 X 0 is undefined/unknown position
>> + *
>> + * - encoding: Set by user
>> + * - decoding: Set by libavcodec
>> + */
>> + int chroma_sample_location[2];
>
> Isnt array[2] overkill?
> i know h264 can store these seperately for both fields but it seems
> really
> silly, i mean what could one do with the data if the chroma sample
> positions
> of 2 fields missmatched ...
> besides what insane hardware would generate such stuff ...
No clue.. I just wasn't sure whether to ignore the top or bottom for
h264.
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: ffmpeg-chromapos.txt
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090509/5759ab2b/attachment.txt>
-------------- next part --------------
More information about the ffmpeg-devel
mailing list