提交 ecc8dada 编写于 作者: S S.N. Hemanth Meenakshisundaram 提交者: Stefano Sabatini

Rename AVFilterPicRef to AVFilterBufferRef.

The struct is going to be used for storing audio buffer references as
well, and the new name is more generic.

Patch by S.N. Hemanth Meenakshisundaram @smeenaks@ucsd@edu@.

Originally committed as revision 24730 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 e11b104a
...@@ -313,7 +313,7 @@ typedef struct AVInputStream { ...@@ -313,7 +313,7 @@ typedef struct AVInputStream {
AVFilterContext *input_video_filter; AVFilterContext *input_video_filter;
AVFrame *filter_frame; AVFrame *filter_frame;
int has_filter_frame; int has_filter_frame;
AVFilterPicRef *picref; AVFilterBufferRef *picref;
#endif #endif
} AVInputStream; } AVInputStream;
...@@ -361,10 +361,10 @@ static int output_query_formats(AVFilterContext *ctx) ...@@ -361,10 +361,10 @@ static int output_query_formats(AVFilterContext *ctx)
} }
static int get_filtered_video_pic(AVFilterContext *ctx, static int get_filtered_video_pic(AVFilterContext *ctx,
AVFilterPicRef **picref, AVFrame *pic2, AVFilterBufferRef **picref, AVFrame *pic2,
uint64_t *pts) uint64_t *pts)
{ {
AVFilterPicRef *pic; AVFilterBufferRef *pic;
if(avfilter_request_frame(ctx->inputs[0])) if(avfilter_request_frame(ctx->inputs[0]))
return -1; return -1;
......
...@@ -105,7 +105,7 @@ typedef struct VideoPicture { ...@@ -105,7 +105,7 @@ typedef struct VideoPicture {
enum PixelFormat pix_fmt; enum PixelFormat pix_fmt;
#if CONFIG_AVFILTER #if CONFIG_AVFILTER
AVFilterPicRef *picref; AVFilterBufferRef *picref;
#endif #endif
} VideoPicture; } VideoPicture;
...@@ -1560,7 +1560,7 @@ typedef struct { ...@@ -1560,7 +1560,7 @@ typedef struct {
static int input_get_buffer(AVCodecContext *codec, AVFrame *pic) static int input_get_buffer(AVCodecContext *codec, AVFrame *pic)
{ {
AVFilterContext *ctx = codec->opaque; AVFilterContext *ctx = codec->opaque;
AVFilterPicRef *ref; AVFilterBufferRef *ref;
int perms = AV_PERM_WRITE; int perms = AV_PERM_WRITE;
int i, w, h, stride[4]; int i, w, h, stride[4];
unsigned edge; unsigned edge;
...@@ -1609,7 +1609,7 @@ static void input_release_buffer(AVCodecContext *codec, AVFrame *pic) ...@@ -1609,7 +1609,7 @@ static void input_release_buffer(AVCodecContext *codec, AVFrame *pic)
static int input_reget_buffer(AVCodecContext *codec, AVFrame *pic) static int input_reget_buffer(AVCodecContext *codec, AVFrame *pic)
{ {
AVFilterPicRef *ref = pic->opaque; AVFilterBufferRef *ref = pic->opaque;
if (pic->data[0] == NULL) { if (pic->data[0] == NULL) {
pic->buffer_hints |= FF_BUFFER_HINTS_READABLE; pic->buffer_hints |= FF_BUFFER_HINTS_READABLE;
...@@ -1656,7 +1656,7 @@ static void input_uninit(AVFilterContext *ctx) ...@@ -1656,7 +1656,7 @@ static void input_uninit(AVFilterContext *ctx)
static int input_request_frame(AVFilterLink *link) static int input_request_frame(AVFilterLink *link)
{ {
FilterPriv *priv = link->src->priv; FilterPriv *priv = link->src->priv;
AVFilterPicRef *picref; AVFilterBufferRef *picref;
int64_t pts = 0; int64_t pts = 0;
AVPacket pkt; AVPacket pkt;
int ret; int ret;
...@@ -1741,7 +1741,7 @@ static int output_query_formats(AVFilterContext *ctx) ...@@ -1741,7 +1741,7 @@ static int output_query_formats(AVFilterContext *ctx)
static int get_filtered_video_frame(AVFilterContext *ctx, AVFrame *frame, static int get_filtered_video_frame(AVFilterContext *ctx, AVFrame *frame,
int64_t *pts, int64_t *pos) int64_t *pts, int64_t *pos)
{ {
AVFilterPicRef *pic; AVFilterBufferRef *pic;
if(avfilter_request_frame(ctx->inputs[0])) if(avfilter_request_frame(ctx->inputs[0]))
return -1; return -1;
......
...@@ -45,16 +45,16 @@ const char *avfilter_license(void) ...@@ -45,16 +45,16 @@ const char *avfilter_license(void)
#define link_dpad(link) link->dst-> input_pads[link->dstpad] #define link_dpad(link) link->dst-> input_pads[link->dstpad]
#define link_spad(link) link->src->output_pads[link->srcpad] #define link_spad(link) link->src->output_pads[link->srcpad]
AVFilterPicRef *avfilter_ref_pic(AVFilterPicRef *ref, int pmask) AVFilterBufferRef *avfilter_ref_pic(AVFilterBufferRef *ref, int pmask)
{ {
AVFilterPicRef *ret = av_malloc(sizeof(AVFilterPicRef)); AVFilterBufferRef *ret = av_malloc(sizeof(AVFilterBufferRef));
*ret = *ref; *ret = *ref;
ret->perms &= pmask; ret->perms &= pmask;
ret->pic->refcount ++; ret->pic->refcount ++;
return ret; return ret;
} }
void avfilter_unref_pic(AVFilterPicRef *ref) void avfilter_unref_pic(AVFilterBufferRef *ref)
{ {
if(!(--ref->pic->refcount)) if(!(--ref->pic->refcount))
ref->pic->free(ref->pic); ref->pic->free(ref->pic);
...@@ -171,7 +171,7 @@ int avfilter_config_links(AVFilterContext *filter) ...@@ -171,7 +171,7 @@ int avfilter_config_links(AVFilterContext *filter)
return 0; return 0;
} }
void ff_dprintf_picref(void *ctx, AVFilterPicRef *picref, int end) void ff_dprintf_picref(void *ctx, AVFilterBufferRef *picref, int end)
{ {
dprintf(ctx, dprintf(ctx,
"picref[%p data[%p, %p, %p, %p] linesize[%d, %d, %d, %d] pts:%"PRId64" pos:%"PRId64" a:%d/%d s:%dx%d]%s", "picref[%p data[%p, %p, %p, %p] linesize[%d, %d, %d, %d] pts:%"PRId64" pos:%"PRId64" a:%d/%d s:%dx%d]%s",
...@@ -194,9 +194,9 @@ void ff_dprintf_link(void *ctx, AVFilterLink *link, int end) ...@@ -194,9 +194,9 @@ void ff_dprintf_link(void *ctx, AVFilterLink *link, int end)
end ? "\n" : ""); end ? "\n" : "");
} }
AVFilterPicRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int w, int h) AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
{ {
AVFilterPicRef *ret = NULL; AVFilterBufferRef *ret = NULL;
FF_DPRINTF_START(NULL, get_video_buffer); ff_dprintf_link(NULL, link, 0); dprintf(NULL, " perms:%d w:%d h:%d\n", perms, w, h); FF_DPRINTF_START(NULL, get_video_buffer); ff_dprintf_link(NULL, link, 0); dprintf(NULL, " perms:%d w:%d h:%d\n", perms, w, h);
...@@ -242,9 +242,9 @@ int avfilter_poll_frame(AVFilterLink *link) ...@@ -242,9 +242,9 @@ int avfilter_poll_frame(AVFilterLink *link)
/* XXX: should we do the duplicating of the picture ref here, instead of /* XXX: should we do the duplicating of the picture ref here, instead of
* forcing the source filter to do it? */ * forcing the source filter to do it? */
void avfilter_start_frame(AVFilterLink *link, AVFilterPicRef *picref) void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
void (*start_frame)(AVFilterLink *, AVFilterPicRef *); void (*start_frame)(AVFilterLink *, AVFilterBufferRef *);
AVFilterPad *dst = &link_dpad(link); AVFilterPad *dst = &link_dpad(link);
FF_DPRINTF_START(NULL, start_frame); ff_dprintf_link(NULL, link, 0); dprintf(NULL, " "); ff_dprintf_picref(NULL, picref, 1); FF_DPRINTF_START(NULL, start_frame); ff_dprintf_link(NULL, link, 0); dprintf(NULL, " "); ff_dprintf_picref(NULL, picref, 1);
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#include "libavutil/avutil.h" #include "libavutil/avutil.h"
#define LIBAVFILTER_VERSION_MAJOR 1 #define LIBAVFILTER_VERSION_MAJOR 1
#define LIBAVFILTER_VERSION_MINOR 28 #define LIBAVFILTER_VERSION_MINOR 29
#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, \
...@@ -62,7 +62,7 @@ typedef struct AVFilterPad AVFilterPad; ...@@ -62,7 +62,7 @@ typedef struct AVFilterPad AVFilterPad;
/** /**
* A reference-counted buffer data type used by the filter system. Filters * A reference-counted buffer data type used by the filter system. Filters
* should not store pointers to this structure directly, but instead use the * should not store pointers to this structure directly, but instead use the
* AVFilterPicRef structure below. * AVFilterBufferRef structure below.
*/ */
typedef struct AVFilterBuffer typedef struct AVFilterBuffer
{ {
...@@ -96,7 +96,7 @@ typedef struct AVFilterBuffer ...@@ -96,7 +96,7 @@ typedef struct AVFilterBuffer
* *
* TODO: add anything necessary for frame reordering * TODO: add anything necessary for frame reordering
*/ */
typedef struct AVFilterPicRef typedef struct AVFilterBufferRef
{ {
AVFilterBuffer *pic; ///< the picture that this is a reference to AVFilterBuffer *pic; ///< the picture that this is a reference to
uint8_t *data[4]; ///< picture data for each plane uint8_t *data[4]; ///< picture data for each plane
...@@ -114,13 +114,13 @@ typedef struct AVFilterPicRef ...@@ -114,13 +114,13 @@ typedef struct AVFilterPicRef
int interlaced; ///< is frame interlaced int interlaced; ///< is frame interlaced
int top_field_first; int top_field_first;
} AVFilterPicRef; } AVFilterBufferRef;
/** /**
* Copy properties of src to dst, without copying the actual video * Copy properties of src to dst, without copying the actual video
* data. * data.
*/ */
static inline void avfilter_copy_picref_props(AVFilterPicRef *dst, AVFilterPicRef *src) static inline void avfilter_copy_picref_props(AVFilterBufferRef *dst, AVFilterBufferRef *src)
{ {
dst->pts = src->pts; dst->pts = src->pts;
dst->pos = src->pos; dst->pos = src->pos;
...@@ -139,14 +139,14 @@ static inline void avfilter_copy_picref_props(AVFilterPicRef *dst, AVFilterPicRe ...@@ -139,14 +139,14 @@ static inline void avfilter_copy_picref_props(AVFilterPicRef *dst, AVFilterPicRe
* @return a new reference to the picture with the same properties as the * @return a new reference to the picture with the same properties as the
* old, excluding any permissions denied by pmask * old, excluding any permissions denied by pmask
*/ */
AVFilterPicRef *avfilter_ref_pic(AVFilterPicRef *ref, int pmask); AVFilterBufferRef *avfilter_ref_pic(AVFilterBufferRef *ref, int pmask);
/** /**
* Remove a reference to a picture. If this is the last reference to the * Remove a reference to a picture. If this is the last reference to the
* picture, the picture itself is also automatically freed. * picture, the picture itself is also automatically freed.
* @param ref reference to the picture * @param ref reference to the picture
*/ */
void avfilter_unref_pic(AVFilterPicRef *ref); void avfilter_unref_pic(AVFilterBufferRef *ref);
/** /**
* A list of supported formats for one end of a filter link. This is used * A list of supported formats for one end of a filter link. This is used
...@@ -323,7 +323,7 @@ struct AVFilterPad ...@@ -323,7 +323,7 @@ struct AVFilterPad
* *
* Input video pads only. * Input video pads only.
*/ */
void (*start_frame)(AVFilterLink *link, AVFilterPicRef *picref); void (*start_frame)(AVFilterLink *link, AVFilterBufferRef *picref);
/** /**
* Callback function to get a buffer. If NULL, the filter system will * Callback function to get a buffer. If NULL, the filter system will
...@@ -331,7 +331,7 @@ struct AVFilterPad ...@@ -331,7 +331,7 @@ struct AVFilterPad
* *
* Input video pads only. * Input video pads only.
*/ */
AVFilterPicRef *(*get_video_buffer)(AVFilterLink *link, int perms, int w, int h); AVFilterBufferRef *(*get_video_buffer)(AVFilterLink *link, int perms, int w, int h);
/** /**
* Callback called after the slices of a frame are completely sent. If * Callback called after the slices of a frame are completely sent. If
...@@ -388,7 +388,7 @@ struct AVFilterPad ...@@ -388,7 +388,7 @@ struct AVFilterPad
}; };
/** default handler for start_frame() for video inputs */ /** default handler for start_frame() for video inputs */
void avfilter_default_start_frame(AVFilterLink *link, AVFilterPicRef *picref); void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
/** default handler for draw_slice() for video inputs */ /** default handler for draw_slice() for video inputs */
void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir);
/** default handler for end_frame() for video inputs */ /** default handler for end_frame() for video inputs */
...@@ -398,7 +398,7 @@ int avfilter_default_config_output_link(AVFilterLink *link); ...@@ -398,7 +398,7 @@ int avfilter_default_config_output_link(AVFilterLink *link);
/** default handler for config_props() for video inputs */ /** default handler for config_props() for video inputs */
int avfilter_default_config_input_link (AVFilterLink *link); int avfilter_default_config_input_link (AVFilterLink *link);
/** default handler for get_video_buffer() for video inputs */ /** default handler for get_video_buffer() for video inputs */
AVFilterPicRef *avfilter_default_get_video_buffer(AVFilterLink *link, AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link,
int perms, int w, int h); int perms, int w, int h);
/** /**
* A helper for query_formats() which sets all links to the same list of * A helper for query_formats() which sets all links to the same list of
...@@ -410,7 +410,7 @@ void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats) ...@@ -410,7 +410,7 @@ void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats)
int avfilter_default_query_formats(AVFilterContext *ctx); int avfilter_default_query_formats(AVFilterContext *ctx);
/** start_frame() handler for filters which simply pass video along */ /** start_frame() handler for filters which simply pass video along */
void avfilter_null_start_frame(AVFilterLink *link, AVFilterPicRef *picref); void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
/** draw_slice() handler for filters which simply pass video along */ /** draw_slice() handler for filters which simply pass video along */
void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir);
...@@ -419,7 +419,7 @@ void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir); ...@@ -419,7 +419,7 @@ void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir);
void avfilter_null_end_frame(AVFilterLink *link); void avfilter_null_end_frame(AVFilterLink *link);
/** get_video_buffer() handler for filters which simply pass video along */ /** get_video_buffer() handler for filters which simply pass video along */
AVFilterPicRef *avfilter_null_get_video_buffer(AVFilterLink *link, AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link,
int perms, int w, int h); int perms, int w, int h);
/** /**
...@@ -530,10 +530,10 @@ struct AVFilterLink ...@@ -530,10 +530,10 @@ struct AVFilterLink
* for the destination. This should not be accessed directly by the * for the destination. This should not be accessed directly by the
* filters. * filters.
*/ */
AVFilterPicRef *srcpic; AVFilterBufferRef *srcpic;
AVFilterPicRef *cur_pic; AVFilterBufferRef *cur_pic;
AVFilterPicRef *outpic; AVFilterBufferRef *outpic;
}; };
/** /**
...@@ -564,7 +564,7 @@ int avfilter_config_links(AVFilterContext *filter); ...@@ -564,7 +564,7 @@ int avfilter_config_links(AVFilterContext *filter);
* @return A reference to the picture. This must be unreferenced with * @return A reference to the picture. This must be unreferenced with
* avfilter_unref_pic when you are finished with it. * avfilter_unref_pic when you are finished with it.
*/ */
AVFilterPicRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms,
int w, int h); int w, int h);
/** /**
...@@ -590,7 +590,7 @@ int avfilter_poll_frame(AVFilterLink *link); ...@@ -590,7 +590,7 @@ int avfilter_poll_frame(AVFilterLink *link);
* portion. The receiving filter will free this reference when * portion. The receiving filter will free this reference when
* it no longer needs it. * it no longer needs it.
*/ */
void avfilter_start_frame(AVFilterLink *link, AVFilterPicRef *picref); void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
/** /**
* Notifie the next filter that the current frame has finished. * Notifie the next filter that the current frame has finished.
......
...@@ -32,10 +32,10 @@ static void avfilter_default_free_buffer(AVFilterBuffer *ptr) ...@@ -32,10 +32,10 @@ static void avfilter_default_free_buffer(AVFilterBuffer *ptr)
/* TODO: set the buffer's priv member to a context structure for the whole /* TODO: set the buffer's priv member to a context structure for the whole
* filter chain. This will allow for a buffer pool instead of the constant * filter chain. This will allow for a buffer pool instead of the constant
* alloc & free cycle currently implemented. */ * alloc & free cycle currently implemented. */
AVFilterPicRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms, int w, int h) AVFilterBufferRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
{ {
AVFilterBuffer *pic = av_mallocz(sizeof(AVFilterBuffer)); AVFilterBuffer *pic = av_mallocz(sizeof(AVFilterBuffer));
AVFilterPicRef *ref = av_mallocz(sizeof(AVFilterPicRef)); AVFilterBufferRef *ref = av_mallocz(sizeof(AVFilterBufferRef));
int i, tempsize; int i, tempsize;
char *buf; char *buf;
...@@ -65,7 +65,7 @@ AVFilterPicRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms, ...@@ -65,7 +65,7 @@ AVFilterPicRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms,
return ref; return ref;
} }
void avfilter_default_start_frame(AVFilterLink *link, AVFilterPicRef *picref) void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
AVFilterLink *out = NULL; AVFilterLink *out = NULL;
...@@ -168,7 +168,7 @@ int avfilter_default_query_formats(AVFilterContext *ctx) ...@@ -168,7 +168,7 @@ int avfilter_default_query_formats(AVFilterContext *ctx)
return 0; return 0;
} }
void avfilter_null_start_frame(AVFilterLink *link, AVFilterPicRef *picref) void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
avfilter_start_frame(link->dst->outputs[0], picref); avfilter_start_frame(link->dst->outputs[0], picref);
} }
...@@ -183,7 +183,7 @@ void avfilter_null_end_frame(AVFilterLink *link) ...@@ -183,7 +183,7 @@ void avfilter_null_end_frame(AVFilterLink *link)
avfilter_end_frame(link->dst->outputs[0]); avfilter_end_frame(link->dst->outputs[0]);
} }
AVFilterPicRef *avfilter_null_get_video_buffer(AVFilterLink *link, int perms, int w, int h) AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
{ {
return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h); return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
} }
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include "avfilter.h" #include "avfilter.h"
void ff_dprintf_picref(void *ctx, AVFilterPicRef *picref, int end); void ff_dprintf_picref(void *ctx, AVFilterBufferRef *picref, int end);
void ff_dprintf_link(void *ctx, AVFilterLink *link, int end); void ff_dprintf_link(void *ctx, AVFilterLink *link, int end);
......
...@@ -56,7 +56,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) ...@@ -56,7 +56,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
return 0; return 0;
} }
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref) static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
AspectContext *aspect = link->dst->priv; AspectContext *aspect = link->dst->priv;
......
...@@ -129,10 +129,10 @@ static int config_output(AVFilterLink *link) ...@@ -129,10 +129,10 @@ static int config_output(AVFilterLink *link)
return 0; return 0;
} }
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref) static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
CropContext *crop = link->dst->priv; CropContext *crop = link->dst->priv;
AVFilterPicRef *ref2 = avfilter_ref_pic(picref, ~0); AVFilterBufferRef *ref2 = avfilter_ref_pic(picref, ~0);
int i; int i;
ref2->w = crop->w; ref2->w = crop->w;
......
...@@ -83,7 +83,7 @@ static int fill_line_with_color(uint8_t *line[4], int line_step[4], int w, uint8 ...@@ -83,7 +83,7 @@ static int fill_line_with_color(uint8_t *line[4], int line_step[4], int w, uint8
return 0; return 0;
} }
static void draw_rectangle(AVFilterPicRef *outpic, uint8_t *line[4], int line_step[4], static void draw_rectangle(AVFilterBufferRef *outpic, uint8_t *line[4], int line_step[4],
int hsub, int vsub, int x, int y, int w, int h) int hsub, int vsub, int x, int y, int w, int h)
{ {
int i, plane; int i, plane;
...@@ -221,11 +221,11 @@ static int config_output(AVFilterLink *outlink) ...@@ -221,11 +221,11 @@ static int config_output(AVFilterLink *outlink)
return 0; return 0;
} }
static AVFilterPicRef *get_video_buffer(AVFilterLink *inlink, int perms, int w, int h) static AVFilterBufferRef *get_video_buffer(AVFilterLink *inlink, int perms, int w, int h)
{ {
PadContext *pad = inlink->dst->priv; PadContext *pad = inlink->dst->priv;
AVFilterPicRef *picref = avfilter_get_video_buffer(inlink->dst->outputs[0], perms, AVFilterBufferRef *picref = avfilter_get_video_buffer(inlink->dst->outputs[0], perms,
w + (pad->w - pad->in_w), w + (pad->w - pad->in_w),
h + (pad->h - pad->in_h)); h + (pad->h - pad->in_h));
int plane; int plane;
...@@ -241,10 +241,10 @@ static AVFilterPicRef *get_video_buffer(AVFilterLink *inlink, int perms, int w, ...@@ -241,10 +241,10 @@ static AVFilterPicRef *get_video_buffer(AVFilterLink *inlink, int perms, int w,
return picref; return picref;
} }
static void start_frame(AVFilterLink *inlink, AVFilterPicRef *inpicref) static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
{ {
PadContext *pad = inlink->dst->priv; PadContext *pad = inlink->dst->priv;
AVFilterPicRef *outpicref = avfilter_ref_pic(inpicref, ~0); AVFilterBufferRef *outpicref = avfilter_ref_pic(inpicref, ~0);
int plane; int plane;
inlink->dst->outputs[0]->outpic = outpicref; inlink->dst->outputs[0]->outpic = outpicref;
...@@ -292,7 +292,7 @@ static void draw_send_bar_slice(AVFilterLink *link, int y, int h, int slice_dir, ...@@ -292,7 +292,7 @@ static void draw_send_bar_slice(AVFilterLink *link, int y, int h, int slice_dir,
static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir) static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
{ {
PadContext *pad = link->dst->priv; PadContext *pad = link->dst->priv;
AVFilterPicRef *outpic = link->dst->outputs[0]->outpic; AVFilterBufferRef *outpic = link->dst->outputs[0]->outpic;
y += pad->y; y += pad->y;
...@@ -427,7 +427,7 @@ static int color_config_props(AVFilterLink *inlink) ...@@ -427,7 +427,7 @@ static int color_config_props(AVFilterLink *inlink)
static int color_request_frame(AVFilterLink *link) static int color_request_frame(AVFilterLink *link)
{ {
ColorContext *color = link->src->priv; ColorContext *color = link->src->priv;
AVFilterPicRef *picref = avfilter_get_video_buffer(link, AV_PERM_WRITE, color->w, color->h); AVFilterBufferRef *picref = avfilter_get_video_buffer(link, AV_PERM_WRITE, color->w, color->h);
picref->pixel_aspect = (AVRational) {1, 1}; picref->pixel_aspect = (AVRational) {1, 1};
picref->pts = av_rescale_q(color->pts++, color->time_base, AV_TIME_BASE_Q); picref->pts = av_rescale_q(color->pts++, color->time_base, AV_TIME_BASE_Q);
picref->pos = 0; picref->pos = 0;
......
...@@ -48,11 +48,11 @@ static int config_props(AVFilterLink *inlink) ...@@ -48,11 +48,11 @@ static int config_props(AVFilterLink *inlink)
return 0; return 0;
} }
static void start_frame(AVFilterLink *inlink, AVFilterPicRef *picref) static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
{ {
PixdescTestContext *priv = inlink->dst->priv; PixdescTestContext *priv = inlink->dst->priv;
AVFilterLink *outlink = inlink->dst->outputs[0]; AVFilterLink *outlink = inlink->dst->outputs[0];
AVFilterPicRef *outpicref; AVFilterBufferRef *outpicref;
int i; int i;
outlink->outpic = avfilter_get_video_buffer(outlink, AV_PERM_WRITE, outlink->outpic = avfilter_get_video_buffer(outlink, AV_PERM_WRITE,
...@@ -80,8 +80,8 @@ static void start_frame(AVFilterLink *inlink, AVFilterPicRef *picref) ...@@ -80,8 +80,8 @@ static void start_frame(AVFilterLink *inlink, AVFilterPicRef *picref)
static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir)
{ {
PixdescTestContext *priv = inlink->dst->priv; PixdescTestContext *priv = inlink->dst->priv;
AVFilterPicRef *inpic = inlink->cur_pic; AVFilterBufferRef *inpic = inlink->cur_pic;
AVFilterPicRef *outpic = inlink->dst->outputs[0]->outpic; AVFilterBufferRef *outpic = inlink->dst->outputs[0]->outpic;
int i, c, w = inlink->w; int i, c, w = inlink->w;
for (c = 0; c < priv->pix_desc->nb_components; c++) { for (c = 0; c < priv->pix_desc->nb_components; c++) {
......
...@@ -142,11 +142,11 @@ static int config_props(AVFilterLink *outlink) ...@@ -142,11 +142,11 @@ static int config_props(AVFilterLink *outlink)
return !scale->sws; return !scale->sws;
} }
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref) static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
ScaleContext *scale = link->dst->priv; ScaleContext *scale = link->dst->priv;
AVFilterLink *outlink = link->dst->outputs[0]; AVFilterLink *outlink = link->dst->outputs[0];
AVFilterPicRef *outpicref; AVFilterBufferRef *outpicref;
scale->hsub = av_pix_fmt_descriptors[link->format].log2_chroma_w; scale->hsub = av_pix_fmt_descriptors[link->format].log2_chroma_w;
scale->vsub = av_pix_fmt_descriptors[link->format].log2_chroma_h; scale->vsub = av_pix_fmt_descriptors[link->format].log2_chroma_h;
...@@ -169,7 +169,7 @@ static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir) ...@@ -169,7 +169,7 @@ static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
{ {
ScaleContext *scale = link->dst->priv; ScaleContext *scale = link->dst->priv;
int out_h; int out_h;
AVFilterPicRef *cur_pic = link->cur_pic; AVFilterBufferRef *cur_pic = link->cur_pic;
const uint8_t *data[4]; const uint8_t *data[4];
if (scale->slice_y == 0 && slice_dir == -1) if (scale->slice_y == 0 && slice_dir == -1)
......
...@@ -57,7 +57,7 @@ static int config_props(AVFilterLink *link) ...@@ -57,7 +57,7 @@ static int config_props(AVFilterLink *link)
return 0; return 0;
} }
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref) static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
SliceContext *slice = link->dst->priv; SliceContext *slice = link->dst->priv;
......
...@@ -195,8 +195,8 @@ static av_cold void uninit(AVFilterContext *ctx) ...@@ -195,8 +195,8 @@ static av_cold void uninit(AVFilterContext *ctx)
static void end_frame(AVFilterLink *link) static void end_frame(AVFilterLink *link)
{ {
UnsharpContext *unsharp = link->dst->priv; UnsharpContext *unsharp = link->dst->priv;
AVFilterPicRef *in = link->cur_pic; AVFilterBufferRef *in = link->cur_pic;
AVFilterPicRef *out = link->dst->outputs[0]->outpic; AVFilterBufferRef *out = link->dst->outputs[0]->outpic;
unsharpen(out->data[0], in->data[0], out->linesize[0], in->linesize[0], link->w, link->h, &unsharp->luma); unsharpen(out->data[0], in->data[0], out->linesize[0], in->linesize[0], link->w, link->h, &unsharp->luma);
unsharpen(out->data[1], in->data[1], out->linesize[1], in->linesize[1], CHROMA_WIDTH(link), CHROMA_HEIGHT(link), &unsharp->chroma); unsharpen(out->data[1], in->data[1], out->linesize[1], in->linesize[1], CHROMA_WIDTH(link), CHROMA_HEIGHT(link), &unsharp->chroma);
......
...@@ -39,13 +39,13 @@ static int config_input(AVFilterLink *link) ...@@ -39,13 +39,13 @@ static int config_input(AVFilterLink *link)
return 0; return 0;
} }
static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms, static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms,
int w, int h) int w, int h)
{ {
FlipContext *flip = link->dst->priv; FlipContext *flip = link->dst->priv;
int i; int i;
AVFilterPicRef *picref = avfilter_get_video_buffer(link->dst->outputs[0], AVFilterBufferRef *picref = avfilter_get_video_buffer(link->dst->outputs[0],
perms, w, h); perms, w, h);
for (i = 0; i < 4; i ++) { for (i = 0; i < 4; i ++) {
...@@ -60,7 +60,7 @@ static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms, ...@@ -60,7 +60,7 @@ static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
return picref; return picref;
} }
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref) static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
FlipContext *flip = link->dst->priv; FlipContext *flip = link->dst->priv;
int i; int i;
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include "avfilter.h" #include "avfilter.h"
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref) static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{ {
} }
......
...@@ -105,7 +105,7 @@ static int config_props(AVFilterLink *link) ...@@ -105,7 +105,7 @@ static int config_props(AVFilterLink *link)
static int request_frame(AVFilterLink *link) static int request_frame(AVFilterLink *link)
{ {
BufferSourceContext *c = link->src->priv; BufferSourceContext *c = link->src->priv;
AVFilterPicRef *picref; AVFilterBufferRef *picref;
if (!c->has_frame) { if (!c->has_frame) {
av_log(link->src, AV_LOG_ERROR, av_log(link->src, AV_LOG_ERROR,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册