mirror of
https://github.com/librempeg/librempeg
synced 2024-11-22 00:51:37 +00:00
avfilter/buffersrc: allow promoting color range to MPEG
Otherwise, passing an UNSPECIFIED frame to am MPEG-only filter graph would trigger insertion of an unnecessary vf_scale filter, which would perform a memcpy to convert between the two. This is safe to do because unspecified YUV frames are already universally assumed to be MPEG range, in particular by swscale. Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
e8f4fd346a
commit
ff09a65b4e
@ -506,8 +506,14 @@ static int query_formats(AVFilterContext *ctx)
|
||||
if ((ret = ff_add_format(&color_spaces, c->color_space)) < 0 ||
|
||||
(ret = ff_set_common_color_spaces(ctx, color_spaces)) < 0)
|
||||
return ret;
|
||||
if ((ret = ff_add_format(&color_ranges, c->color_range)) < 0 ||
|
||||
(ret = ff_set_common_color_ranges(ctx, color_ranges)) < 0)
|
||||
if ((ret = ff_add_format(&color_ranges, c->color_range)) < 0)
|
||||
return ret;
|
||||
if (c->color_range == AVCOL_RANGE_UNSPECIFIED) {
|
||||
/* allow implicitly promoting unspecified to mpeg */
|
||||
if ((ret = ff_add_format(&color_ranges, AVCOL_RANGE_MPEG)) < 0)
|
||||
return ret;
|
||||
}
|
||||
if ((ret = ff_set_common_color_ranges(ctx, color_ranges)) < 0)
|
||||
return ret;
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user