提交 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 {
AVFilterContext *input_video_filter;
AVFrame *filter_frame;
int has_filter_frame;
AVFilterPicRef *picref;
AVFilterBufferRef *picref;
#endif
} AVInputStream;
......@@ -361,10 +361,10 @@ static int output_query_formats(AVFilterContext *ctx)
}
static int get_filtered_video_pic(AVFilterContext *ctx,
AVFilterPicRef **picref, AVFrame *pic2,
AVFilterBufferRef **picref, AVFrame *pic2,
uint64_t *pts)
{
AVFilterPicRef *pic;
AVFilterBufferRef *pic;
if(avfilter_request_frame(ctx->inputs[0]))
return -1;
......
......@@ -105,7 +105,7 @@ typedef struct VideoPicture {
enum PixelFormat pix_fmt;
#if CONFIG_AVFILTER
AVFilterPicRef *picref;
AVFilterBufferRef *picref;
#endif
} VideoPicture;
......@@ -1560,7 +1560,7 @@ typedef struct {
static int input_get_buffer(AVCodecContext *codec, AVFrame *pic)
{
AVFilterContext *ctx = codec->opaque;
AVFilterPicRef *ref;
AVFilterBufferRef *ref;
int perms = AV_PERM_WRITE;
int i, w, h, stride[4];
unsigned edge;
......@@ -1609,7 +1609,7 @@ static void input_release_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) {
pic->buffer_hints |= FF_BUFFER_HINTS_READABLE;
......@@ -1656,7 +1656,7 @@ static void input_uninit(AVFilterContext *ctx)
static int input_request_frame(AVFilterLink *link)
{
FilterPriv *priv = link->src->priv;
AVFilterPicRef *picref;
AVFilterBufferRef *picref;
int64_t pts = 0;
AVPacket pkt;
int ret;
......@@ -1741,7 +1741,7 @@ static int output_query_formats(AVFilterContext *ctx)
static int get_filtered_video_frame(AVFilterContext *ctx, AVFrame *frame,
int64_t *pts, int64_t *pos)
{
AVFilterPicRef *pic;
AVFilterBufferRef *pic;
if(avfilter_request_frame(ctx->inputs[0]))
return -1;
......
......@@ -45,16 +45,16 @@ const char *avfilter_license(void)
#define link_dpad(link) link->dst-> input_pads[link->dstpad]
#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->perms &= pmask;
ret->pic->refcount ++;
return ret;
}
void avfilter_unref_pic(AVFilterPicRef *ref)
void avfilter_unref_pic(AVFilterBufferRef *ref)
{
if(!(--ref->pic->refcount))
ref->pic->free(ref->pic);
......@@ -171,7 +171,7 @@ int avfilter_config_links(AVFilterContext *filter)
return 0;
}
void ff_dprintf_picref(void *ctx, AVFilterPicRef *picref, int end)
void ff_dprintf_picref(void *ctx, AVFilterBufferRef *picref, int end)
{
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",
......@@ -194,9 +194,9 @@ void ff_dprintf_link(void *ctx, AVFilterLink *link, int end)
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);
......@@ -242,9 +242,9 @@ int avfilter_poll_frame(AVFilterLink *link)
/* XXX: should we do the duplicating of the picture ref here, instead of
* 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);
FF_DPRINTF_START(NULL, start_frame); ff_dprintf_link(NULL, link, 0); dprintf(NULL, " "); ff_dprintf_picref(NULL, picref, 1);
......
......@@ -25,7 +25,7 @@
#include "libavutil/avutil.h"
#define LIBAVFILTER_VERSION_MAJOR 1
#define LIBAVFILTER_VERSION_MINOR 28
#define LIBAVFILTER_VERSION_MINOR 29
#define LIBAVFILTER_VERSION_MICRO 0
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
......@@ -62,7 +62,7 @@ typedef struct AVFilterPad AVFilterPad;
/**
* A reference-counted buffer data type used by the filter system. Filters
* should not store pointers to this structure directly, but instead use the
* AVFilterPicRef structure below.
* AVFilterBufferRef structure below.
*/
typedef struct AVFilterBuffer
{
......@@ -96,7 +96,7 @@ typedef struct AVFilterBuffer
*
* TODO: add anything necessary for frame reordering
*/
typedef struct AVFilterPicRef
typedef struct AVFilterBufferRef
{
AVFilterBuffer *pic; ///< the picture that this is a reference to
uint8_t *data[4]; ///< picture data for each plane
......@@ -114,13 +114,13 @@ typedef struct AVFilterPicRef
int interlaced; ///< is frame interlaced
int top_field_first;
} AVFilterPicRef;
} AVFilterBufferRef;
/**
* Copy properties of src to dst, without copying the actual video
* 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->pos = src->pos;
......@@ -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
* 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
* picture, the picture itself is also automatically freed.
* @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
......@@ -323,7 +323,7 @@ struct AVFilterPad
*
* 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
......@@ -331,7 +331,7 @@ struct AVFilterPad
*
* 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
......@@ -388,7 +388,7 @@ struct AVFilterPad
};
/** 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 */
void avfilter_default_draw_slice(AVFilterLink *link, int y, int h, int slice_dir);
/** default handler for end_frame() for video inputs */
......@@ -398,7 +398,7 @@ int avfilter_default_config_output_link(AVFilterLink *link);
/** default handler for config_props() for video inputs */
int avfilter_default_config_input_link (AVFilterLink *link);
/** 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);
/**
* 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)
int avfilter_default_query_formats(AVFilterContext *ctx);
/** 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 */
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);
/** 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);
/**
......@@ -530,10 +530,10 @@ struct AVFilterLink
* for the destination. This should not be accessed directly by the
* filters.
*/
AVFilterPicRef *srcpic;
AVFilterBufferRef *srcpic;
AVFilterPicRef *cur_pic;
AVFilterPicRef *outpic;
AVFilterBufferRef *cur_pic;
AVFilterBufferRef *outpic;
};
/**
......@@ -564,7 +564,7 @@ int avfilter_config_links(AVFilterContext *filter);
* @return A reference to the picture. This must be unreferenced with
* 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);
/**
......@@ -590,7 +590,7 @@ int avfilter_poll_frame(AVFilterLink *link);
* portion. The receiving filter will free this reference when
* 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.
......
......@@ -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
* filter chain. This will allow for a buffer pool instead of the constant
* 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));
AVFilterPicRef *ref = av_mallocz(sizeof(AVFilterPicRef));
AVFilterBufferRef *ref = av_mallocz(sizeof(AVFilterBufferRef));
int i, tempsize;
char *buf;
......@@ -65,7 +65,7 @@ AVFilterPicRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms,
return ref;
}
void avfilter_default_start_frame(AVFilterLink *link, AVFilterPicRef *picref)
void avfilter_default_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{
AVFilterLink *out = NULL;
......@@ -168,7 +168,7 @@ int avfilter_default_query_formats(AVFilterContext *ctx)
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);
}
......@@ -183,7 +183,7 @@ void avfilter_null_end_frame(AVFilterLink *link)
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);
}
......
......@@ -26,7 +26,7 @@
#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);
......
......@@ -56,7 +56,7 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
return 0;
}
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{
AspectContext *aspect = link->dst->priv;
......
......@@ -129,10 +129,10 @@ static int config_output(AVFilterLink *link)
return 0;
}
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{
CropContext *crop = link->dst->priv;
AVFilterPicRef *ref2 = avfilter_ref_pic(picref, ~0);
AVFilterBufferRef *ref2 = avfilter_ref_pic(picref, ~0);
int i;
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
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 i, plane;
......@@ -221,11 +221,11 @@ static int config_output(AVFilterLink *outlink)
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;
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),
h + (pad->h - pad->in_h));
int plane;
......@@ -241,10 +241,10 @@ static AVFilterPicRef *get_video_buffer(AVFilterLink *inlink, int perms, int w,
return picref;
}
static void start_frame(AVFilterLink *inlink, AVFilterPicRef *inpicref)
static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
{
PadContext *pad = inlink->dst->priv;
AVFilterPicRef *outpicref = avfilter_ref_pic(inpicref, ~0);
AVFilterBufferRef *outpicref = avfilter_ref_pic(inpicref, ~0);
int plane;
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,
static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
{
PadContext *pad = link->dst->priv;
AVFilterPicRef *outpic = link->dst->outputs[0]->outpic;
AVFilterBufferRef *outpic = link->dst->outputs[0]->outpic;
y += pad->y;
......@@ -427,7 +427,7 @@ static int color_config_props(AVFilterLink *inlink)
static int color_request_frame(AVFilterLink *link)
{
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->pts = av_rescale_q(color->pts++, color->time_base, AV_TIME_BASE_Q);
picref->pos = 0;
......
......@@ -48,11 +48,11 @@ static int config_props(AVFilterLink *inlink)
return 0;
}
static void start_frame(AVFilterLink *inlink, AVFilterPicRef *picref)
static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
{
PixdescTestContext *priv = inlink->dst->priv;
AVFilterLink *outlink = inlink->dst->outputs[0];
AVFilterPicRef *outpicref;
AVFilterBufferRef *outpicref;
int i;
outlink->outpic = avfilter_get_video_buffer(outlink, AV_PERM_WRITE,
......@@ -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)
{
PixdescTestContext *priv = inlink->dst->priv;
AVFilterPicRef *inpic = inlink->cur_pic;
AVFilterPicRef *outpic = inlink->dst->outputs[0]->outpic;
AVFilterBufferRef *inpic = inlink->cur_pic;
AVFilterBufferRef *outpic = inlink->dst->outputs[0]->outpic;
int i, c, w = inlink->w;
for (c = 0; c < priv->pix_desc->nb_components; c++) {
......
......@@ -142,11 +142,11 @@ static int config_props(AVFilterLink *outlink)
return !scale->sws;
}
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{
ScaleContext *scale = link->dst->priv;
AVFilterLink *outlink = link->dst->outputs[0];
AVFilterPicRef *outpicref;
AVFilterBufferRef *outpicref;
scale->hsub = av_pix_fmt_descriptors[link->format].log2_chroma_w;
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)
{
ScaleContext *scale = link->dst->priv;
int out_h;
AVFilterPicRef *cur_pic = link->cur_pic;
AVFilterBufferRef *cur_pic = link->cur_pic;
const uint8_t *data[4];
if (scale->slice_y == 0 && slice_dir == -1)
......
......@@ -57,7 +57,7 @@ static int config_props(AVFilterLink *link)
return 0;
}
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{
SliceContext *slice = link->dst->priv;
......
......@@ -195,8 +195,8 @@ static av_cold void uninit(AVFilterContext *ctx)
static void end_frame(AVFilterLink *link)
{
UnsharpContext *unsharp = link->dst->priv;
AVFilterPicRef *in = link->cur_pic;
AVFilterPicRef *out = link->dst->outputs[0]->outpic;
AVFilterBufferRef *in = link->cur_pic;
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[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)
return 0;
}
static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms,
int w, int h)
{
FlipContext *flip = link->dst->priv;
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);
for (i = 0; i < 4; i ++) {
......@@ -60,7 +60,7 @@ static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
return picref;
}
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
static void start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{
FlipContext *flip = link->dst->priv;
int i;
......
......@@ -18,7 +18,7 @@
#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)
static int request_frame(AVFilterLink *link)
{
BufferSourceContext *c = link->src->priv;
AVFilterPicRef *picref;
AVFilterBufferRef *picref;
if (!c->has_frame) {
av_log(link->src, AV_LOG_ERROR,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册