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/vf_overlay.c | |
parent | 95d180998193da60fbcacf59f920c98a0bf43c66 (diff) |
lavfi/overlay: add yuv422 format mode
Diffstat (limited to 'libavfilter/vf_overlay.c')
-rw-r--r-- | libavfilter/vf_overlay.c | 14 |
1 files changed, 13 insertions, 1 deletions
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 }, |