diff --git a/doc/APIchanges b/doc/APIchanges index aac9d8c0aae1c2947ea2eb3ea0bf638035c9772c..2bb45fad10ed03b410adb40d415205eadc4114ff 100644 --- a/doc/APIchanges +++ b/doc/APIchanges @@ -15,6 +15,10 @@ libavutil: 2012-10-22 API changes, most recent first: +2013-07-XX - xxxxxxx - XXXXXXXXXXXXXX - avcodec.h + Add avcodec_chroma_pos_to_enum() + Add avcodec_enum_to_chroma_pos() + 2013-07-03 - xxxxxxx - lavfi 3.78.100 - avfilter.h Deprecate avfilter_graph_parse() in favor of the equivalent avfilter_graph_parse_ptr(). diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index bcef2a454d6c83464c23020e6b9b1bc624a8d322..98217b8be57a89f47a289668370fe6721bddddf3 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -3617,6 +3617,17 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, */ int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos); +/** + * Converts swscale x/y chroma position to AVChromaLocation. + * + * The positions represent the chroma (0,0) position in a coordinates system + * with luma (0,0) representing the origin and luma(1,1) representing 256,256 + * + * @param xpos horizontal chroma sample position + * @param ypos vertical chroma sample position + */ +enum AVChromaLocation avcodec_chroma_pos_to_enum(int xpos, int ypos); + #if FF_API_OLD_DECODE_AUDIO /** * Wrapper function which calls avcodec_decode_audio4. diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 0b33170079656cc14023aa61a1ee94e7f136c570..64bae3eea562721f3a4a6dd3d896bd1fbabe534b 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -350,6 +350,17 @@ int avcodec_enum_to_chroma_pos(int *xpos, int *ypos, enum AVChromaLocation pos) return 0; } +enum AVChromaLocation avcodec_chroma_pos_to_enum(int xpos, int ypos) +{ + int pos, xout, yout; + + for (pos = AVCHROMA_LOC_UNSPECIFIED + 1; pos < AVCHROMA_LOC_NB; pos++) { + if (avcodec_enum_to_chroma_pos(&xout, &yout, pos) == 0 && xout == xpos && yout == ypos) + return pos; + } + return AVCHROMA_LOC_UNSPECIFIED; +} + int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels, enum AVSampleFormat sample_fmt, const uint8_t *buf, int buf_size, int align) diff --git a/libavcodec/version.h b/libavcodec/version.h index 32834460b55a74f1d6bd09db1f0bd72dbd320837..06777bf3a0c05d6a7b2bd1e7b908ff67f12c85ac 100644 --- a/libavcodec/version.h +++ b/libavcodec/version.h @@ -29,8 +29,8 @@ #include "libavutil/avutil.h" #define LIBAVCODEC_VERSION_MAJOR 55 -#define LIBAVCODEC_VERSION_MINOR 18 -#define LIBAVCODEC_VERSION_MICRO 102 +#define LIBAVCODEC_VERSION_MINOR 19 +#define LIBAVCODEC_VERSION_MICRO 100 #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ LIBAVCODEC_VERSION_MINOR, \