Unified · Split
| @@ -729,7 +729,8 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame) · 728 unmodified lines | ||
| 729 | 729 | { |
| 730 | 730 | int (*filter_frame)(AVFilterLink *, AVFrame *); |
| 731 | 731 | AVFilterPad *dst = link->dstpad; |
| 732 | − AVFrame *out; | |
| 732 | + AVFrame *out = NULL; | |
| 733 | + int ret; | |
| 733 | 734 | |
| 734 | 735 | FF_DPRINTF_START(NULL, filter_frame); |
| 735 | 736 | ff_dlog_link(NULL, link, 1); |
| @@ -748,13 +749,18 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame) · 12 unmodified lines | ||
| 748 | 749 | case AVMEDIA_TYPE_AUDIO: |
| 749 | 750 | out = ff_get_audio_buffer(link, frame->nb_samples); |
| 750 | 751 | break; |
| 751 | − default: return AVERROR(EINVAL); | |
| 752 | + default: | |
| 753 | + ret = AVERROR(EINVAL); | |
| 754 | + goto fail; | |
| 752 | 755 | } |
| 753 | 756 | if (!out) { |
| 754 | − av_frame_free(&frame); | |
| 755 | − return AVERROR(ENOMEM); | |
| 757 | + ret = AVERROR(ENOMEM); | |
| 758 | + goto fail; | |
| 756 | 759 | } |
| 757 | − av_frame_copy_props(out, frame); | |
| 760 | + | |
| 761 | + ret = av_frame_copy_props(out, frame); | |
| 762 | + if (ret < 0) | |
| 763 | + goto fail; | |
| 758 | 764 | |
| 759 | 765 | switch (link->type) { |
| 760 | 766 | case AVMEDIA_TYPE_VIDEO: |
| @@ -767,7 +773,9 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame) · 6 unmodified lines | ||
| 767 | 773 | av_get_channel_layout_nb_channels(frame->channel_layout), |
| 768 | 774 | frame->format); |
| 769 | 775 | break; |
| 770 | − default: return AVERROR(EINVAL); | |
| 776 | + default: | |
| 777 | + ret = AVERROR(EINVAL); | |
| 778 | + goto fail; | |
| 771 | 779 | } |
| 772 | 780 | |
| 773 | 781 | av_frame_free(&frame); |
| @@ -775,6 +783,11 @@ int ff_filter_frame(AVFilterLink *link, AVFrame *frame) · 1 unmodified line | ||
| 775 | 783 | out = frame; |
| 776 | 784 | |
| 777 | 785 | return filter_frame(link, out); |
| 786 | + | |
| 787 | +fail: | |
| 788 | + av_frame_free(&out); | |
| 789 | + av_frame_free(&frame); | |
| 790 | + return ret; | |
| 778 | 791 | } |
| 779 | 792 | |
| 780 | 793 | const AVClass *avfilter_get_class(void) |