mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
lavfi: check all ff_get_video_buffer() calls for errors.
This commit is contained in:
parent
1dc4205018
commit
8f3a3ce730
@ -92,6 +92,9 @@ int av_buffersrc_write_frame(AVFilterContext *buffer_filter, AVFrame *frame)
|
|||||||
frame->format);
|
frame->format);
|
||||||
buf = ff_get_video_buffer(buffer_filter->outputs[0], AV_PERM_WRITE,
|
buf = ff_get_video_buffer(buffer_filter->outputs[0], AV_PERM_WRITE,
|
||||||
c->w, c->h);
|
c->w, c->h);
|
||||||
|
if (!buf)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
av_image_copy(buf->data, buf->linesize, frame->data, frame->linesize,
|
av_image_copy(buf->data, buf->linesize, frame->data, frame->linesize,
|
||||||
c->pix_fmt, c->w, c->h);
|
c->pix_fmt, c->w, c->h);
|
||||||
break;
|
break;
|
||||||
|
@ -441,6 +441,9 @@ static int source_request_frame(AVFilterLink *outlink)
|
|||||||
AVFilterBufferRef *buf_out;
|
AVFilterBufferRef *buf_out;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (!picref)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
picref->video->pixel_aspect = (AVRational) {1, 1};
|
picref->video->pixel_aspect = (AVRational) {1, 1};
|
||||||
picref->pts = frei0r->pts++;
|
picref->pts = frei0r->pts++;
|
||||||
picref->pos = -1;
|
picref->pos = -1;
|
||||||
|
@ -262,6 +262,9 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *inlink, int perms, int
|
|||||||
h + (pad->h - pad->in_h));
|
h + (pad->h - pad->in_h));
|
||||||
int plane;
|
int plane;
|
||||||
|
|
||||||
|
if (!picref)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
picref->video->w = w;
|
picref->video->w = w;
|
||||||
picref->video->h = h;
|
picref->video->h = h;
|
||||||
|
|
||||||
|
@ -52,6 +52,9 @@ static AVFilterBufferRef *get_video_buffer(AVFilterLink *link, int perms,
|
|||||||
return ff_default_get_video_buffer(link, perms, w, h);
|
return ff_default_get_video_buffer(link, perms, w, h);
|
||||||
|
|
||||||
picref = ff_get_video_buffer(link->dst->outputs[0], perms, w, h);
|
picref = ff_get_video_buffer(link->dst->outputs[0], perms, w, h);
|
||||||
|
if (!picref)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
for (i = 0; i < 4; i ++) {
|
for (i = 0; i < 4; i ++) {
|
||||||
int vsub = i == 1 || i == 2 ? flip->vsub : 0;
|
int vsub = i == 1 || i == 2 ? flip->vsub : 0;
|
||||||
|
|
||||||
|
@ -173,6 +173,9 @@ static int return_frame(AVFilterContext *ctx, int is_second)
|
|||||||
if (is_second) {
|
if (is_second) {
|
||||||
yadif->out = ff_get_video_buffer(link, AV_PERM_WRITE | AV_PERM_PRESERVE |
|
yadif->out = ff_get_video_buffer(link, AV_PERM_WRITE | AV_PERM_PRESERVE |
|
||||||
AV_PERM_REUSE, link->w, link->h);
|
AV_PERM_REUSE, link->w, link->h);
|
||||||
|
if (!yadif->out)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
avfilter_copy_buffer_ref_props(yadif->out, yadif->cur);
|
avfilter_copy_buffer_ref_props(yadif->out, yadif->cur);
|
||||||
yadif->out->video->interlaced = 0;
|
yadif->out->video->interlaced = 0;
|
||||||
}
|
}
|
||||||
@ -239,6 +242,8 @@ static int start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
|
|||||||
|
|
||||||
yadif->out = ff_get_video_buffer(ctx->outputs[0], AV_PERM_WRITE | AV_PERM_PRESERVE |
|
yadif->out = ff_get_video_buffer(ctx->outputs[0], AV_PERM_WRITE | AV_PERM_PRESERVE |
|
||||||
AV_PERM_REUSE, link->w, link->h);
|
AV_PERM_REUSE, link->w, link->h);
|
||||||
|
if (!yadif->out)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
avfilter_copy_buffer_ref_props(yadif->out, yadif->cur);
|
avfilter_copy_buffer_ref_props(yadif->out, yadif->cur);
|
||||||
yadif->out->video->interlaced = 0;
|
yadif->out->video->interlaced = 0;
|
||||||
|
@ -145,6 +145,9 @@ static int color_request_frame(AVFilterLink *link)
|
|||||||
AVFilterBufferRef *buf_out;
|
AVFilterBufferRef *buf_out;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (!picref)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
picref->video->pixel_aspect = (AVRational) {1, 1};
|
picref->video->pixel_aspect = (AVRational) {1, 1};
|
||||||
picref->pts = color->pts++;
|
picref->pts = color->pts++;
|
||||||
picref->pos = -1;
|
picref->pos = -1;
|
||||||
|
@ -135,6 +135,9 @@ static int request_frame(AVFilterLink *outlink)
|
|||||||
if (test->max_pts >= 0 && test->pts > test->max_pts)
|
if (test->max_pts >= 0 && test->pts > test->max_pts)
|
||||||
return AVERROR_EOF;
|
return AVERROR_EOF;
|
||||||
picref = ff_get_video_buffer(outlink, AV_PERM_WRITE, test->w, test->h);
|
picref = ff_get_video_buffer(outlink, AV_PERM_WRITE, test->w, test->h);
|
||||||
|
if (!picref)
|
||||||
|
return AVERROR(ENOMEM);
|
||||||
|
|
||||||
picref->pts = test->pts++;
|
picref->pts = test->pts++;
|
||||||
picref->pos = -1;
|
picref->pos = -1;
|
||||||
picref->video->key_frame = 1;
|
picref->video->key_frame = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user