On Thu, Sep 10, 2020 at 11:48:57PM +0200, Andreas Rheinhardt wrote: > init_subtitles() sometimes returned directly upon error without cleaning > up after itself. The easiest way to trigger this is by using > picture-based subtitles; it is also possible to run into this in case of > missing decoders or allocation failures. > > Furthermore, return the proper error code in case of missing decoder. > > Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> > --- > libavfilter/vf_subtitles.c | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-)
ok > > diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c > index 1bd42391e0..2d3145bf2d 100644 > --- a/libavfilter/vf_subtitles.c > +++ b/libavfilter/vf_subtitles.c > @@ -384,13 +384,15 @@ static av_cold int init_subtitles(AVFilterContext *ctx) > if (!dec) { > av_log(ctx, AV_LOG_ERROR, "Failed to find subtitle codec %s\n", > avcodec_get_name(st->codecpar->codec_id)); > - return AVERROR(EINVAL); > + ret = AVERROR_DECODER_NOT_FOUND; > + goto end; > } > dec_desc = avcodec_descriptor_get(st->codecpar->codec_id); > if (dec_desc && !(dec_desc->props & AV_CODEC_PROP_TEXT_SUB)) { > av_log(ctx, AV_LOG_ERROR, > "Only text based subtitles are currently supported\n"); > - return AVERROR_PATCHWELCOME; > + ret = AVERROR_PATCHWELCOME; > + goto end; > } > if (ass->charenc) > av_dict_set(&codec_opts, "sub_charenc", ass->charenc, 0); > @@ -398,8 +400,10 @@ static av_cold int init_subtitles(AVFilterContext *ctx) > av_dict_set(&codec_opts, "sub_text_format", "ass", 0); > > dec_ctx = avcodec_alloc_context3(dec); > - if (!dec_ctx) > - return AVERROR(ENOMEM); > + if (!dec_ctx) { > + ret = AVERROR(ENOMEM); > + goto end; > + } > > ret = avcodec_parameters_to_context(dec_ctx, st->codecpar); > if (ret < 0) > -- > 2.20.1 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".