mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavfi: add layout negotiation fields and helper functions.
This commit is contained in:
parent
527ca3985c
commit
fd2c0a5db2
@ -13,6 +13,15 @@ libavutil: 2011-04-18
|
|||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2011-06-19 - xxxxxxx - lavfi 2.23.0 - avfilter.h
|
||||||
|
Add layout negotiation fields and helper functions.
|
||||||
|
|
||||||
|
In particular, add in_chlayouts and out_chlayouts to AVFilterLink,
|
||||||
|
and the functions:
|
||||||
|
avfilter_set_common_sample_formats()
|
||||||
|
avfilter_set_common_channel_layouts()
|
||||||
|
avfilter_all_channel_layouts()
|
||||||
|
|
||||||
2011-06-19 - xxxxxxx - lavfi 2.22.0 - AVFilterFormats
|
2011-06-19 - xxxxxxx - lavfi 2.22.0 - AVFilterFormats
|
||||||
Change type of AVFilterFormats.formats from int * to int64_t *,
|
Change type of AVFilterFormats.formats from int * to int64_t *,
|
||||||
and update formats handling API accordingly.
|
and update formats handling API accordingly.
|
||||||
|
2
ffplay.c
2
ffplay.c
@ -1644,7 +1644,7 @@ static int input_query_formats(AVFilterContext *ctx)
|
|||||||
priv->is->video_st->codec->pix_fmt, PIX_FMT_NONE
|
priv->is->video_st->codec->pix_fmt, PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -217,6 +217,9 @@ int avfilter_insert_filter(AVFilterLink *link, AVFilterContext *filt,
|
|||||||
if (link->out_formats)
|
if (link->out_formats)
|
||||||
avfilter_formats_changeref(&link->out_formats,
|
avfilter_formats_changeref(&link->out_formats,
|
||||||
&filt->outputs[filt_dstpad_idx]->out_formats);
|
&filt->outputs[filt_dstpad_idx]->out_formats);
|
||||||
|
if (link->out_chlayouts)
|
||||||
|
avfilter_formats_changeref(&link->out_chlayouts,
|
||||||
|
&filt->outputs[filt_dstpad_idx]->out_chlayouts);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
#include "libavutil/samplefmt.h"
|
#include "libavutil/samplefmt.h"
|
||||||
|
|
||||||
#define LIBAVFILTER_VERSION_MAJOR 2
|
#define LIBAVFILTER_VERSION_MAJOR 2
|
||||||
#define LIBAVFILTER_VERSION_MINOR 22
|
#define LIBAVFILTER_VERSION_MINOR 23
|
||||||
#define LIBAVFILTER_VERSION_MICRO 0
|
#define LIBAVFILTER_VERSION_MICRO 0
|
||||||
|
|
||||||
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
|
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
|
||||||
@ -255,6 +255,11 @@ int avfilter_add_format(AVFilterFormats **avff, int64_t fmt);
|
|||||||
*/
|
*/
|
||||||
AVFilterFormats *avfilter_all_formats(enum AVMediaType type);
|
AVFilterFormats *avfilter_all_formats(enum AVMediaType type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a list of all channel layouts supported by FFmpeg.
|
||||||
|
*/
|
||||||
|
AVFilterFormats *avfilter_all_channel_layouts(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a format list which contains the intersection of the formats of
|
* Return a format list which contains the intersection of the formats of
|
||||||
* a and b. Also, all the references of a, all the references of b, and
|
* a and b. Also, all the references of a, all the references of b, and
|
||||||
@ -466,11 +471,13 @@ AVFilterBufferRef *avfilter_default_get_audio_buffer(AVFilterLink *link, int per
|
|||||||
int64_t channel_layout, int planar);
|
int64_t channel_layout, int planar);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A helper for query_formats() which sets all links to the same list of
|
* Helpers for query_formats() which set all links to the same list of
|
||||||
* formats. If there are no links hooked to this filter, the list of formats is
|
* formats/layouts. If there are no links hooked to this filter, the list
|
||||||
* freed.
|
* of formats is freed.
|
||||||
*/
|
*/
|
||||||
void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats);
|
void avfilter_set_common_pixel_formats(AVFilterContext *ctx, AVFilterFormats *formats);
|
||||||
|
void avfilter_set_common_sample_formats(AVFilterContext *ctx, AVFilterFormats *formats);
|
||||||
|
void avfilter_set_common_channel_layouts(AVFilterContext *ctx, AVFilterFormats *formats);
|
||||||
|
|
||||||
/** Default handler for query_formats() */
|
/** Default handler for query_formats() */
|
||||||
int avfilter_default_query_formats(AVFilterContext *ctx);
|
int avfilter_default_query_formats(AVFilterContext *ctx);
|
||||||
@ -521,9 +528,9 @@ typedef struct AVFilter {
|
|||||||
void (*uninit)(AVFilterContext *ctx);
|
void (*uninit)(AVFilterContext *ctx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Queries formats supported by the filter and its pads, and sets the
|
* Queries formats/layouts supported by the filter and its pads, and sets
|
||||||
* in_formats for links connected to its output pads, and out_formats
|
* the in_formats/in_chlayouts for links connected to its output pads,
|
||||||
* for links connected to its input pads.
|
* and out_formats/out_chlayouts for links connected to its input pads.
|
||||||
*
|
*
|
||||||
* @return zero on success, a negative value corresponding to an
|
* @return zero on success, a negative value corresponding to an
|
||||||
* AVERROR code otherwise
|
* AVERROR code otherwise
|
||||||
@ -593,13 +600,18 @@ struct AVFilterLink {
|
|||||||
int format; ///< agreed upon media format
|
int format; ///< agreed upon media format
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lists of formats supported by the input and output filters respectively.
|
* Lists of formats and channel layouts supported by the input and output
|
||||||
* These lists are used for negotiating the format to actually be used,
|
* filters respectively. These lists are used for negotiating the format
|
||||||
* which will be loaded into the format member, above, when chosen.
|
* to actually be used, which will be loaded into the format and
|
||||||
|
* channel_layout members, above, when chosen.
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
AVFilterFormats *in_formats;
|
AVFilterFormats *in_formats;
|
||||||
AVFilterFormats *out_formats;
|
AVFilterFormats *out_formats;
|
||||||
|
|
||||||
|
AVFilterFormats *in_chlayouts;
|
||||||
|
AVFilterFormats *out_chlayouts;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The buffer reference currently being sent across the link by the source
|
* The buffer reference currently being sent across the link by the source
|
||||||
* filter. This is used internally by the filter system to allow
|
* filter. This is used internally by the filter system to allow
|
||||||
|
@ -195,9 +195,16 @@ static void pick_format(AVFilterLink *link)
|
|||||||
|
|
||||||
link->in_formats->format_count = 1;
|
link->in_formats->format_count = 1;
|
||||||
link->format = link->in_formats->formats[0];
|
link->format = link->in_formats->formats[0];
|
||||||
|
|
||||||
avfilter_formats_unref(&link->in_formats);
|
avfilter_formats_unref(&link->in_formats);
|
||||||
avfilter_formats_unref(&link->out_formats);
|
avfilter_formats_unref(&link->out_formats);
|
||||||
|
|
||||||
|
if (link->type == AVMEDIA_TYPE_AUDIO) {
|
||||||
|
link->in_chlayouts->format_count = 1;
|
||||||
|
link->channel_layout = link->in_chlayouts->formats[0];
|
||||||
|
avfilter_formats_unref(&link->in_chlayouts);
|
||||||
|
avfilter_formats_unref(&link->out_chlayouts);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void pick_formats(AVFilterGraph *graph)
|
static void pick_formats(AVFilterGraph *graph)
|
||||||
|
@ -197,45 +197,54 @@ int avfilter_default_config_output_link(AVFilterLink *link)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
static void set_common_formats(AVFilterContext *ctx, AVFilterFormats *fmts,
|
||||||
* A helper for query_formats() which sets all links to the same list of
|
enum AVMediaType type, int offin, int offout)
|
||||||
* formats. If there are no links hooked to this filter, the list of formats is
|
|
||||||
* freed.
|
|
||||||
*
|
|
||||||
* FIXME: this will need changed for filters with a mix of pad types
|
|
||||||
* (video + audio, etc)
|
|
||||||
*/
|
|
||||||
void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
|
|
||||||
{
|
{
|
||||||
int count = 0, i;
|
int i;
|
||||||
|
for (i = 0; i < ctx->input_count; i++)
|
||||||
|
if (ctx->inputs[i] && ctx->inputs[i]->type == type)
|
||||||
|
avfilter_formats_ref(fmts,
|
||||||
|
(AVFilterFormats**)((void*)ctx->inputs[i]+offout));
|
||||||
|
|
||||||
for (i = 0; i < ctx->input_count; i++) {
|
for (i = 0; i < ctx->output_count; i++)
|
||||||
if (ctx->inputs[i]) {
|
if (ctx->outputs[i] && ctx->outputs[i]->type == type)
|
||||||
avfilter_formats_ref(formats, &ctx->inputs[i]->out_formats);
|
avfilter_formats_ref(fmts,
|
||||||
count++;
|
(AVFilterFormats**)((void*)ctx->outputs[i]+offin));
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i = 0; i < ctx->output_count; i++) {
|
|
||||||
if (ctx->outputs[i]) {
|
|
||||||
avfilter_formats_ref(formats, &ctx->outputs[i]->in_formats);
|
|
||||||
count++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!count) {
|
if (!fmts->refcount) {
|
||||||
av_free(formats->formats);
|
av_free(fmts->formats);
|
||||||
av_free(formats->refs);
|
av_free(fmts->refs);
|
||||||
av_free(formats);
|
av_free(fmts);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void avfilter_set_common_pixel_formats(AVFilterContext *ctx, AVFilterFormats *formats)
|
||||||
|
{
|
||||||
|
set_common_formats(ctx, formats, AVMEDIA_TYPE_VIDEO,
|
||||||
|
offsetof(AVFilterLink, in_formats),
|
||||||
|
offsetof(AVFilterLink, out_formats));
|
||||||
|
}
|
||||||
|
|
||||||
|
void avfilter_set_common_sample_formats(AVFilterContext *ctx, AVFilterFormats *formats)
|
||||||
|
{
|
||||||
|
set_common_formats(ctx, formats, AVMEDIA_TYPE_AUDIO,
|
||||||
|
offsetof(AVFilterLink, in_formats),
|
||||||
|
offsetof(AVFilterLink, out_formats));
|
||||||
|
}
|
||||||
|
|
||||||
|
void avfilter_set_common_channel_layouts(AVFilterContext *ctx, AVFilterFormats *formats)
|
||||||
|
{
|
||||||
|
set_common_formats(ctx, formats, AVMEDIA_TYPE_AUDIO,
|
||||||
|
offsetof(AVFilterLink, in_chlayouts),
|
||||||
|
offsetof(AVFilterLink, out_chlayouts));
|
||||||
|
}
|
||||||
|
|
||||||
int avfilter_default_query_formats(AVFilterContext *ctx)
|
int avfilter_default_query_formats(AVFilterContext *ctx)
|
||||||
{
|
{
|
||||||
enum AVMediaType type = ctx->inputs && ctx->inputs [0] ? ctx->inputs [0]->type :
|
avfilter_set_common_pixel_formats(ctx, avfilter_all_formats(AVMEDIA_TYPE_VIDEO));
|
||||||
ctx->outputs && ctx->outputs[0] ? ctx->outputs[0]->type :
|
avfilter_set_common_sample_formats(ctx, avfilter_all_formats(AVMEDIA_TYPE_AUDIO));
|
||||||
AVMEDIA_TYPE_VIDEO;
|
avfilter_set_common_channel_layouts(ctx, avfilter_all_channel_layouts());
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_all_formats(type));
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "libavutil/pixdesc.h"
|
#include "libavutil/pixdesc.h"
|
||||||
|
#include "libavutil/audioconvert.h"
|
||||||
#include "avfilter.h"
|
#include "avfilter.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -139,6 +140,27 @@ AVFilterFormats *avfilter_all_formats(enum AVMediaType type)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AVFilterFormats *avfilter_all_channel_layouts(void)
|
||||||
|
{
|
||||||
|
static int64_t chlayouts[] = {
|
||||||
|
AV_CH_LAYOUT_MONO,
|
||||||
|
AV_CH_LAYOUT_STEREO,
|
||||||
|
AV_CH_LAYOUT_4POINT0,
|
||||||
|
AV_CH_LAYOUT_QUAD,
|
||||||
|
AV_CH_LAYOUT_5POINT0,
|
||||||
|
AV_CH_LAYOUT_5POINT0_BACK,
|
||||||
|
AV_CH_LAYOUT_5POINT1,
|
||||||
|
AV_CH_LAYOUT_5POINT1_BACK,
|
||||||
|
AV_CH_LAYOUT_5POINT1|AV_CH_LAYOUT_STEREO_DOWNMIX,
|
||||||
|
AV_CH_LAYOUT_7POINT1,
|
||||||
|
AV_CH_LAYOUT_7POINT1_WIDE,
|
||||||
|
AV_CH_LAYOUT_7POINT1|AV_CH_LAYOUT_STEREO_DOWNMIX,
|
||||||
|
-1,
|
||||||
|
};
|
||||||
|
|
||||||
|
return avfilter_make_format64_list(chlayouts);
|
||||||
|
}
|
||||||
|
|
||||||
void avfilter_formats_ref(AVFilterFormats *f, AVFilterFormats **ref)
|
void avfilter_formats_ref(AVFilterFormats *f, AVFilterFormats **ref)
|
||||||
{
|
{
|
||||||
*ref = f;
|
*ref = f;
|
||||||
|
@ -44,7 +44,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -46,7 +46,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,7 +334,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ static AVFilterFormats *make_format_list(FormatContext *format, int flag)
|
|||||||
#if CONFIG_FORMAT_FILTER
|
#if CONFIG_FORMAT_FILTER
|
||||||
static int query_formats_format(AVFilterContext *ctx)
|
static int query_formats_format(AVFilterContext *ctx)
|
||||||
{
|
{
|
||||||
avfilter_set_common_formats(ctx, make_format_list(ctx->priv, 1));
|
avfilter_set_common_pixel_formats(ctx, make_format_list(ctx->priv, 1));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +118,7 @@ AVFilter avfilter_vf_format = {
|
|||||||
#if CONFIG_NOFORMAT_FILTER
|
#if CONFIG_NOFORMAT_FILTER
|
||||||
static int query_formats_noformat(AVFilterContext *ctx)
|
static int query_formats_noformat(AVFilterContext *ctx)
|
||||||
{
|
{
|
||||||
avfilter_set_common_formats(ctx, make_format_list(ctx->priv, 0));
|
avfilter_set_common_pixel_formats(ctx, make_format_list(ctx->priv, 0));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,7 +332,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
if (!formats)
|
if (!formats)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, formats);
|
avfilter_set_common_pixel_formats(ctx, formats);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -268,7 +268,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV411P, PIX_FMT_NONE
|
PIX_FMT_YUV420P, PIX_FMT_YUV422P, PIX_FMT_YUV411P, PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_BGR24, PIX_FMT_BGRA, PIX_FMT_GRAY8, PIX_FMT_NONE
|
PIX_FMT_BGR24, PIX_FMT_BGRA, PIX_FMT_GRAY8, PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
enum PixelFormat *pix_fmts = lut->is_rgb ? rgb_pix_fmts :
|
enum PixelFormat *pix_fmts = lut->is_rgb ? rgb_pix_fmts :
|
||||||
lut->is_yuv ? yuv_pix_fmts : all_pix_fmts;
|
lut->is_yuv ? yuv_pix_fmts : all_pix_fmts;
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -796,7 +796,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//We assume all allowed input formats are also allowed output formats
|
//We assume all allowed input formats are also allowed output formats
|
||||||
avfilter_set_common_formats(ctx, avfmts);
|
avfilter_set_common_pixel_formats(ctx, avfmts);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,7 +155,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_YUVJ444P, PIX_FMT_YUVJ440P, PIX_FMT_NONE
|
PIX_FMT_YUVJ444P, PIX_FMT_YUVJ440P, PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -332,7 +332,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
{
|
{
|
||||||
BufferSinkContext *buf = ctx->priv;
|
BufferSinkContext *buf = ctx->priv;
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(buf->pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(buf->pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
BufferSourceContext *c = ctx->priv;
|
BufferSourceContext *c = ctx->priv;
|
||||||
enum PixelFormat pix_fmts[] = { c->pix_fmt, PIX_FMT_NONE };
|
enum PixelFormat pix_fmts[] = { c->pix_fmt, PIX_FMT_NONE };
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
PIX_FMT_NONE
|
PIX_FMT_NONE
|
||||||
};
|
};
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ static int query_formats(AVFilterContext *ctx)
|
|||||||
MovieContext *movie = ctx->priv;
|
MovieContext *movie = ctx->priv;
|
||||||
enum PixelFormat pix_fmts[] = { movie->codec_ctx->pix_fmt, PIX_FMT_NONE };
|
enum PixelFormat pix_fmts[] = { movie->codec_ctx->pix_fmt, PIX_FMT_NONE };
|
||||||
|
|
||||||
avfilter_set_common_formats(ctx, avfilter_make_format_list(pix_fmts));
|
avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user