[FFmpeg-devel] [PATCH] lavfi/colormatrix: add support for named options
Clément Bœsch
ubitux at gmail.com
Sun Mar 24 19:55:54 CET 2013
On Sun, Mar 24, 2013 at 01:48:27PM +0100, Stefano Sabatini wrote:
[...]
> -static const char *color_modes[] = {"bt709", "FCC", "bt601", "smpte240m"};
> -
> -static int get_color_mode_index(const char *name)
> -{
> - int i;
> -
> - for (i = 0; i < FF_ARRAY_ELEMS(color_modes); i++)
> - if (!av_strcasecmp(color_modes[i], name))
> - return i;
> - return -1;
> -}
> +static const char *color_modes[] = {"bt709", "fcc", "bt601", "smpte240m"};
>
> static av_cold int init(AVFilterContext *ctx, const char *args)
> {
> ColorMatrixContext *color = ctx->priv;
>
> - if (!args)
> - goto usage;
> - if (sscanf(args, "%255[^:]:%255[^:]", color->src, color->dst) != 2) {
> - usage:
> - av_log(ctx, AV_LOG_ERROR, "usage: <src>:<dst>\n");
> - av_log(ctx, AV_LOG_ERROR, "possible options: bt709,bt601,smpte240m,fcc\n");
> - return -1;
> - }
> -
> - color->source = get_color_mode_index(color->src);
> - if (color->source < 0) {
> - av_log(ctx, AV_LOG_ERROR, "unknown color space %s\n", color->src);
> - return AVERROR(EINVAL);
> - }
> -
> - color->dest = get_color_mode_index(color->dst);
> - if (color->dest < 0) {
> - av_log(ctx, AV_LOG_ERROR, "unknown color space %s\n", color->dst);
> + if (color->source == COLOR_MODE_NONE || color->dest == COLOR_MODE_NONE) {
> + av_log(ctx, AV_LOG_ERROR, "Unspecified source or destination color space\n");
> return AVERROR(EINVAL);
> }
>
> @@ -313,7 +312,8 @@ static int config_input(AVFilterLink *inlink)
> color->hsub = pix_desc->log2_chroma_w;
> color->vsub = pix_desc->log2_chroma_h;
>
> - av_log(ctx, AV_LOG_VERBOSE, "%s -> %s\n", color->src, color->dst);
> + av_log(ctx, AV_LOG_VERBOSE, "%s -> %s\n",
> + color_modes[color->source], color_modes[color->dest]);
>
> return 0;
> }
> @@ -375,13 +375,17 @@ static const AVFilterPad colormatrix_outputs[] = {
> { NULL }
> };
>
> +static const char *colormatrix_shorthand[] = { "src", "dst", NULL };
> +
nit: we don't use a prefix for shorthand currently; also we tend to use
the static const char *const type.
> AVFilter avfilter_vf_colormatrix = {
> .name = "colormatrix",
> - .description = NULL_IF_CONFIG_SMALL("Color matrix conversion"),
> + .description = NULL_IF_CONFIG_SMALL("Convert color matrix."),
>
> .priv_size = sizeof(ColorMatrixContext),
> .init = init,
> .query_formats = query_formats,
> .inputs = colormatrix_inputs,
> .outputs = colormatrix_outputs,
> + .priv_class = &colormatrix_class,
> + .shorthand = colormatrix_shorthand,
LGTM anyway, thanks.
--
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130324/8d523dfa/attachment.asc>
More information about the ffmpeg-devel
mailing list