avconv: check for get_filtered_frame() failure.
This commit is contained in:
parent
2636e691ce
commit
ce326c1130
10
avconv.c
10
avconv.c
@ -2015,8 +2015,8 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
|||||||
decoded_frame->pts, decoded_frame->sample_aspect_ratio);
|
decoded_frame->pts, decoded_frame->sample_aspect_ratio);
|
||||||
|
|
||||||
if (!ist->filtered_frame && !(ist->filtered_frame = avcodec_alloc_frame())) {
|
if (!ist->filtered_frame && !(ist->filtered_frame = avcodec_alloc_frame())) {
|
||||||
av_free(buffer_to_free);
|
ret = AVERROR(ENOMEM);
|
||||||
return AVERROR(ENOMEM);
|
goto fail;
|
||||||
} else
|
} else
|
||||||
avcodec_get_frame_defaults(ist->filtered_frame);
|
avcodec_get_frame_defaults(ist->filtered_frame);
|
||||||
filtered_frame = ist->filtered_frame;
|
filtered_frame = ist->filtered_frame;
|
||||||
@ -2024,7 +2024,10 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
|||||||
frame_available = avfilter_poll_frame(ost->output_video_filter->inputs[0]);
|
frame_available = avfilter_poll_frame(ost->output_video_filter->inputs[0]);
|
||||||
while (frame_available) {
|
while (frame_available) {
|
||||||
AVRational ist_pts_tb;
|
AVRational ist_pts_tb;
|
||||||
get_filtered_video_frame(ost->output_video_filter, filtered_frame, &ost->picref, &ist_pts_tb);
|
if ((ret = get_filtered_video_frame(ost->output_video_filter,
|
||||||
|
filtered_frame, &ost->picref,
|
||||||
|
&ist_pts_tb)) < 0)
|
||||||
|
goto fail;
|
||||||
if (ost->picref)
|
if (ost->picref)
|
||||||
filtered_frame->pts = av_rescale_q(ost->picref->pts, ist_pts_tb, AV_TIME_BASE_Q);
|
filtered_frame->pts = av_rescale_q(ost->picref->pts, ist_pts_tb, AV_TIME_BASE_Q);
|
||||||
if (ost->picref->video && !ost->frame_aspect_ratio)
|
if (ost->picref->video && !ost->frame_aspect_ratio)
|
||||||
@ -2045,6 +2048,7 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fail:
|
||||||
av_free(buffer_to_free);
|
av_free(buffer_to_free);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user