Commit ce326c11 authored by Anton Khirnov's avatar Anton Khirnov

avconv: check for get_filtered_frame() failure.

parent 2636e691
...@@ -2015,8 +2015,8 @@ static int transcode_video(InputStream *ist, AVPacket *pkt, int *got_output, int ...@@ -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 ...@@ -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 ...@@ -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;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment