[FFmpeg-devel] [PATCH] Set generic yuv420 sampling in yuv4mpeg by default
Michael Niedermayer
michaelni
Sun May 10 20:16:45 CEST 2009
On Sun, May 10, 2009 at 12:10:20AM -0400, David Conrad wrote:
> On May 9, 2009, at 11:04 PM, Michael Niedermayer wrote:
>
>> On Sat, May 09, 2009 at 08:05:02PM -0400, David Conrad wrote:
>>> 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 f08dcb90cda6fa44c91cdefa917d2dd0d57cd497
>>> Author: David Conrad <lessen42 at gmail.com>
>>> Date: Sat May 9 19:57:11 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..a733a33 100644
>>> --- a/libavcodec/avcodec.h
>>> +++ b/libavcodec/avcodec.h
>>> @@ -479,6 +479,21 @@ enum AVColorRange{
>>> AVCOL_RANGE_NB , ///< Not part of ABI
>>> };
>>>
>>> +/**
>>> + * 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
>>> + */
>>> +enum AVChromaLocation{
>>> + AVCHROMA_LOC_UNSPECIFIED=0,
>>> + AVCHROMA_LOC_LEFT =1, ///< mpeg2/4, h264 default
>>> + AVCHROMA_LOC_CENTER =2, ///< mpeg1, jpeg, h263
>>> + AVCHROMA_LOC_TOPLEFT =3, ///< DV
>>> + AVCHROMA_LOC_TOP =4,
>>> + AVCHROMA_LOC_BOTTOMLEFT =5,
>>> + AVCHROMA_LOC_BOTTOM =6,
>>> +};
>>> +
>>> typedef struct RcOverride{
>>> int start_frame;
>>> int end_frame;
>>> @@ -2481,6 +2496,13 @@ typedef struct AVCodecContext {
>>> * - decoding: Set by libavcodec
>>> */
>>> enum AVColorRange color_range;
>>> +
>>> + /**
>>> + * This defines the location of chroma samples.
>>> + * - encoding: Set by user
>>> + * - decoding: Set by libavcodec
>>> + */
>>> + enum AVChromaLocation chroma_sample_location;
>>> } AVCodecContext;
>>
>> update to the AVOptions array is missing
>
> Fixed.
>
> commit a6a181cf9bbc78c6295f1addb5a255ea3f962880
> Author: David Conrad <lessen42 at gmail.com>
> Date: Sat May 9 19:57:11 2009 -0400
>
> Add a chroma_sample_location field to define positioning of chroma samples
ok
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Democracy is the form of government in which you can choose your dictator
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20090510/c8b5bdb2/attachment.pgp>
More information about the ffmpeg-devel
mailing list