diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2014-01-24 17:53:03 +0100 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2014-02-02 11:50:21 +0100 |
commit | a270f63e832b6fffaef41b3bb898024827a7877e (patch) | |
tree | 910f973d999e52d317b58488973efb452275ac31 /libavfilter | |
parent | 95d180998193da60fbcacf59f920c98a0bf43c66 (diff) | |
download | ffmpeg-a270f63e832b6fffaef41b3bb898024827a7877e.tar.gz |
lavfi/overlay: add yuv422 format mode
Diffstat (limited to 'libavfilter')
-rw-r--r-- | libavfilter/version.h | 2 | ||||
-rw-r--r-- | libavfilter/vf_overlay.c | 14 |
2 files changed, 14 insertions, 2 deletions
diff --git a/libavfilter/version.h b/libavfilter/version.h index d86fadeebe..5dbea058b0 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -31,7 +31,7 @@ #define LIBAVFILTER_VERSION_MAJOR 4 #define LIBAVFILTER_VERSION_MINOR 1 -#define LIBAVFILTER_VERSION_MICRO 101 +#define LIBAVFILTER_VERSION_MICRO 102 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ LIBAVFILTER_VERSION_MINOR, \ diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index 9047deeee4..938033a77b 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -92,7 +92,7 @@ typedef struct { uint8_t overlay_is_packed_rgb; uint8_t overlay_rgba_map[4]; uint8_t overlay_has_alpha; - enum OverlayFormat { OVERLAY_FORMAT_YUV420, OVERLAY_FORMAT_YUV444, OVERLAY_FORMAT_RGB, OVERLAY_FORMAT_NB} format; + enum OverlayFormat { OVERLAY_FORMAT_YUV420, OVERLAY_FORMAT_YUV422, OVERLAY_FORMAT_YUV444, OVERLAY_FORMAT_RGB, OVERLAY_FORMAT_NB} format; enum EvalMode { EVAL_MODE_INIT, EVAL_MODE_FRAME, EVAL_MODE_NB } eval_mode; FFDualInputContext dinput; @@ -191,6 +191,13 @@ static int query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE }; + static const enum AVPixelFormat main_pix_fmts_yuv422[] = { + AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUVA422P, AV_PIX_FMT_NONE + }; + static const enum AVPixelFormat overlay_pix_fmts_yuv422[] = { + AV_PIX_FMT_YUVA422P, AV_PIX_FMT_NONE + }; + static const enum AVPixelFormat main_pix_fmts_yuv444[] = { AV_PIX_FMT_YUV444P, AV_PIX_FMT_YUVA444P, AV_PIX_FMT_NONE }; @@ -218,6 +225,10 @@ static int query_formats(AVFilterContext *ctx) main_formats = ff_make_format_list(main_pix_fmts_yuv420); overlay_formats = ff_make_format_list(overlay_pix_fmts_yuv420); break; + case OVERLAY_FORMAT_YUV422: + main_formats = ff_make_format_list(main_pix_fmts_yuv422); + overlay_formats = ff_make_format_list(overlay_pix_fmts_yuv422); + break; case OVERLAY_FORMAT_YUV444: main_formats = ff_make_format_list(main_pix_fmts_yuv444); overlay_formats = ff_make_format_list(overlay_pix_fmts_yuv444); @@ -587,6 +598,7 @@ static const AVOption overlay_options[] = { { "shortest", "force termination when the shortest input terminates", OFFSET(dinput.shortest), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, 1, FLAGS }, { "format", "set output format", OFFSET(format), AV_OPT_TYPE_INT, {.i64=OVERLAY_FORMAT_YUV420}, 0, OVERLAY_FORMAT_NB-1, FLAGS, "format" }, { "yuv420", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV420}, .flags = FLAGS, .unit = "format" }, + { "yuv422", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV422}, .flags = FLAGS, .unit = "format" }, { "yuv444", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_YUV444}, .flags = FLAGS, .unit = "format" }, { "rgb", "", 0, AV_OPT_TYPE_CONST, {.i64=OVERLAY_FORMAT_RGB}, .flags = FLAGS, .unit = "format" }, { "repeatlast", "repeat overlay of the last overlay frame", OFFSET(dinput.repeatlast), AV_OPT_TYPE_INT, {.i64=1}, 0, 1, FLAGS }, |