On Tue, 25 Mar 2014 13:12:18 +0100, wm4 <[email protected]> wrote:
> ---
>  doc/APIchanges       |  5 ++++
>  libavcodec/avcodec.h | 67 
> ----------------------------------------------------
>  libavutil/frame.c    | 10 ++++++++
>  libavutil/frame.h    | 30 +++++++++++++++++++++++
>  libavutil/pixfmt.h   | 62 ++++++++++++++++++++++++++++++++++++++++++++++++
>  libavutil/version.h  |  2 +-
>  6 files changed, 108 insertions(+), 68 deletions(-)
> 
> diff --git a/doc/APIchanges b/doc/APIchanges
> index d800253..d18bd65 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -13,6 +13,11 @@ libavutil:     2013-12-xx
>  
>  API changes, most recent first:
>  
> +2014-xx-xx - xxxxxxx - lavu 53.09.0 - frame.h, pixfmt.h
> +  Move all color-related enums (AVColorPrimaries, AVColorSpace, AVColorRange,
> +  AVColorTransferCharacteristic, and AVChromaLocation) inside lavu, and add
> +  AVFrame fields for them.
> +
>  2014-02-xx - xxxxxxx - lavu 53.08.0 - frame.h
>    Add av_frame_remove_side_data() for removing a single side data
>    instance from a frame.
> diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> index 4fda36e..0d0d71a 100644
> --- a/libavcodec/avcodec.h
> +++ b/libavcodec/avcodec.h
> @@ -546,73 +546,6 @@ enum AVDiscard{
>      AVDISCARD_ALL     = 48, ///< discard all
>  };
>  
> -enum AVColorPrimaries{
> -    AVCOL_PRI_BT709       = 1, ///< also ITU-R BT1361 / IEC 61966-2-4 / 
> SMPTE RP177 Annex B
> -    AVCOL_PRI_UNSPECIFIED = 2,
> -    AVCOL_PRI_BT470M      = 4,
> -    AVCOL_PRI_BT470BG     = 5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 
> 625 / ITU-R BT1700 625 PAL & SECAM
> -    AVCOL_PRI_SMPTE170M   = 6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 
> 525 / ITU-R BT1700 NTSC
> -    AVCOL_PRI_SMPTE240M   = 7, ///< functionally identical to above
> -    AVCOL_PRI_FILM        = 8,
> -    AVCOL_PRI_BT2020      = 9, ///< ITU-R BT2020
> -    AVCOL_PRI_NB             , ///< Not part of ABI
> -};
> -
> -enum AVColorTransferCharacteristic{
> -    AVCOL_TRC_BT709        =  1, ///< also ITU-R BT1361
> -    AVCOL_TRC_UNSPECIFIED  =  2,
> -    AVCOL_TRC_GAMMA22      =  4, ///< also ITU-R BT470M / ITU-R BT1700 625 
> PAL & SECAM
> -    AVCOL_TRC_GAMMA28      =  5, ///< also ITU-R BT470BG
> -    AVCOL_TRC_SMPTE170M    =  6, ///< also ITU-R BT601-6 525 or 625 / ITU-R 
> BT1358 525 or 625 / ITU-R BT1700 NTSC
> -    AVCOL_TRC_SMPTE240M    =  7,
> -    AVCOL_TRC_LINEAR       =  8, ///< "Linear transfer characteristics"
> -    AVCOL_TRC_LOG          =  9, ///< "Logarithmic transfer characteristic 
> (100:1 range)"
> -    AVCOL_TRC_LOG_SQRT     = 10, ///< "Logarithmic transfer characteristic 
> (100 * Sqrt( 10 ) : 1 range)"
> -    AVCOL_TRC_IEC61966_2_4 = 11, ///< IEC 61966-2-4
> -    AVCOL_TRC_BT1361_ECG   = 12, ///< ITU-R BT1361 Extended Colour Gamut
> -    AVCOL_TRC_IEC61966_2_1 = 13, ///< IEC 61966-2-1 (sRGB or sYCC)
> -    AVCOL_TRC_BT2020_10    = 14, ///< ITU-R BT2020 for 10 bit system
> -    AVCOL_TRC_BT2020_12    = 15, ///< ITU-R BT2020 for 12 bit system
> -    AVCOL_TRC_NB               , ///< Not part of ABI
> -};
> -
> -enum AVColorSpace{
> -    AVCOL_SPC_RGB         =  0,
> -    AVCOL_SPC_BT709       =  1, ///< also ITU-R BT1361 / IEC 61966-2-4 
> xvYCC709 / SMPTE RP177 Annex B
> -    AVCOL_SPC_UNSPECIFIED =  2,
> -    AVCOL_SPC_FCC         =  4,
> -    AVCOL_SPC_BT470BG     =  5, ///< also ITU-R BT601-6 625 / ITU-R BT1358 
> 625 / ITU-R BT1700 625 PAL & SECAM / IEC 61966-2-4 xvYCC601
> -    AVCOL_SPC_SMPTE170M   =  6, ///< also ITU-R BT601-6 525 / ITU-R BT1358 
> 525 / ITU-R BT1700 NTSC / functionally identical to above
> -    AVCOL_SPC_SMPTE240M   =  7,
> -    AVCOL_SPC_YCOCG       =  8, ///< Used by Dirac / VC-2 and H.264 FRext, 
> see ITU-T SG16
> -    AVCOL_SPC_BT2020_NCL  =  9, ///< ITU-R BT2020 non-constant luminance 
> system
> -    AVCOL_SPC_BT2020_CL   = 10, ///< ITU-R BT2020 constant luminance system
> -    AVCOL_SPC_NB              , ///< Not part of ABI
> -};
> -
> -enum AVColorRange{
> -    AVCOL_RANGE_UNSPECIFIED = 0,
> -    AVCOL_RANGE_MPEG        = 1, ///< the normal 219*2^(n-8) "MPEG" YUV 
> ranges
> -    AVCOL_RANGE_JPEG        = 2, ///< the normal     2^n-1   "JPEG" YUV 
> ranges
> -    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,
> -    AVCHROMA_LOC_NB             , ///< Not part of ABI
> -};
> -
>  enum AVAudioServiceType {
>      AV_AUDIO_SERVICE_TYPE_MAIN              = 0,
>      AV_AUDIO_SERVICE_TYPE_EFFECTS           = 1,
> diff --git a/libavutil/frame.c b/libavutil/frame.c
> index cc4bfcd..bac11bf 100644
> --- a/libavutil/frame.c
> +++ b/libavutil/frame.c
> @@ -38,6 +38,11 @@ static void get_frame_defaults(AVFrame *frame)
>      frame->sample_aspect_ratio = (AVRational){ 0, 1 };
>      frame->format              = -1; /* unknown */
>      frame->extended_data       = frame->data;
> +    frame->color_primaries     = AVCOL_PRI_UNSPECIFIED;
> +    frame->color_trc           = AVCOL_TRC_UNSPECIFIED;
> +    frame->colorspace          = AVCOL_SPC_UNSPECIFIED;
> +    frame->color_range         = AVCOL_RANGE_UNSPECIFIED;
> +    frame->chroma_location     = AVCHROMA_LOC_UNSPECIFIED;
>  }
>  
>  AVFrame *av_frame_alloc(void)
> @@ -373,6 +378,11 @@ int av_frame_copy_props(AVFrame *dst, const AVFrame *src)
>      dst->coded_picture_number   = src->coded_picture_number;
>      dst->display_picture_number = src->display_picture_number;
>      dst->flags                  = src->flags;
> +    dst->color_primaries        = src->color_primaries;
> +    dst->color_trc              = src->color_trc;
> +    dst->colorspace             = src->colorspace;
> +    dst->color_range            = src->color_range;
> +    dst->chroma_location        = src->chroma_location;
>  
>      memcpy(dst->error, src->error, sizeof(dst->error));
>  
> diff --git a/libavutil/frame.h b/libavutil/frame.h
> index 3bec8e5..2704a80 100644
> --- a/libavutil/frame.h
> +++ b/libavutil/frame.h
> @@ -33,6 +33,7 @@
>  #include "dict.h"
>  #include "rational.h"
>  #include "samplefmt.h"
> +#include "pixfmt.h"
>  #include "version.h"
>  
>  
> @@ -408,6 +409,35 @@ typedef struct AVFrame {
>       * Frame flags, a combination of @ref lavu_frame_flags
>       */
>      int flags;
> +
> +    /**
> +     * MPEG vs JPEG YUV range.
> +     */
> +    enum AVColorRange color_range;
> +
> +    /**
> +     * Chromaticity coordinates of the source primaries.
> +     */
> +    enum AVColorPrimaries color_primaries;
> +
> +    /**
> +     * Color Transfer Characteristic.
> +     */
> +    enum AVColorTransferCharacteristic color_trc;
> +
> +    /**
> +     * YUV colorspace type.
> +     */
> +    enum AVColorSpace colorspace;
> +
> +    /**
> +     * Location of chroma samples.
> +     *
> +     *  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
> +     */

Why did you move those descriptions here?
Seems to me they should be where the enums are defined.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to