diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-07-22 22:57:02 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-07-22 23:56:21 +0200 |
commit | 88beb2df982aa4de257f742ff41f777927cc5173 (patch) | |
tree | 15427851afeaa2fee531f53808237948b81b2e44 /libavfilter/vf_pixdesctest.c | |
parent | 9023de342f88e961a3741753aff68925eebf884e (diff) | |
parent | df53a4a7c1c496363e3fc165b431940ccd0cb8a0 (diff) | |
download | ffmpeg-streaming-88beb2df982aa4de257f742ff41f777927cc5173.zip ffmpeg-streaming-88beb2df982aa4de257f742ff41f777927cc5173.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
FATE: fix the asyncts test
build: Drop gcc-specific warning flag from header compilation rule
FATE: add a test for the asyncts audio filter.
matroskadec: return more correct error code on read error.
buffersrc: check ff_get_audio_buffer() for errors.
lavfi: check all ff_get_video_buffer() calls for errors.
lavfi: check all avfilter_ref_buffer() calls for errors.
vf_select: avoid an unnecessary avfilter_ref_buffer().
buffersrc: avoid creating unnecessary buffer reference
lavfi: use avfilter_unref_bufferp() where appropriate.
vf_fps: add more error checks.
vf_fps: fix a memleak on malloc failure.
lavfi: check all ff_start_frame/draw_slice/end_frame calls for errors
lavfi: add error handling to end_frame().
lavfi: add error handling to draw_slice().
lavfi: add error handling to start_frame().
Conflicts:
Makefile
ffplay.c
libavfilter/buffersrc.c
libavfilter/vf_boxblur.c
libavfilter/vf_drawtext.c
libavfilter/vf_fade.c
libavfilter/vf_frei0r.c
libavfilter/vf_hflip.c
libavfilter/vf_overlay.c
libavfilter/vf_pad.c
libavfilter/vf_scale.c
libavfilter/video.c
libavfilter/vsrc_color.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_pixdesctest.c')
-rw-r--r-- | libavfilter/vf_pixdesctest.c | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/libavfilter/vf_pixdesctest.c b/libavfilter/vf_pixdesctest.c index 12a6a2f..2e09d8c 100644 --- a/libavfilter/vf_pixdesctest.c +++ b/libavfilter/vf_pixdesctest.c @@ -51,16 +51,18 @@ static int config_props(AVFilterLink *inlink) return 0; } -static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) +static int start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) { PixdescTestContext *priv = inlink->dst->priv; AVFilterLink *outlink = inlink->dst->outputs[0]; - AVFilterBufferRef *outpicref; - int i; + AVFilterBufferRef *outpicref, *for_next_filter; + int i, ret = 0; + + outpicref = ff_get_video_buffer(outlink, AV_PERM_WRITE, + outlink->w, outlink->h); + if (!outpicref) + return AVERROR(ENOMEM); - outlink->out_buf = ff_get_video_buffer(outlink, AV_PERM_WRITE, - outlink->w, outlink->h); - outpicref = outlink->out_buf; avfilter_copy_buffer_ref_props(outpicref, picref); for (i = 0; i < 4; i++) { @@ -78,10 +80,22 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref) priv->pix_desc->flags & PIX_FMT_PSEUDOPAL) memcpy(outpicref->data[1], picref->data[1], AVPALETTE_SIZE); - ff_start_frame(outlink, avfilter_ref_buffer(outpicref, ~0)); + for_next_filter = avfilter_ref_buffer(outpicref, ~0); + if (for_next_filter) + ret = ff_start_frame(outlink, for_next_filter); + else + ret = AVERROR(ENOMEM); + + if (ret < 0) { + avfilter_unref_bufferp(&outpicref); + return ret; + } + + outlink->out_buf = outpicref; + return 0; } -static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) +static int draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) { PixdescTestContext *priv = inlink->dst->priv; AVFilterBufferRef *inpic = inlink->cur_buf; @@ -108,7 +122,7 @@ static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) } } - ff_draw_slice(inlink->dst->outputs[0], y, h, slice_dir); + return ff_draw_slice(inlink->dst->outputs[0], y, h, slice_dir); } AVFilter avfilter_vf_pixdesctest = { |