From patchwork Sun Mar 22 03:47:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 18337 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 2BCC7449B66 for ; Sun, 22 Mar 2020 05:51:16 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A79C968B696; Sun, 22 Mar 2020 05:48:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0507668B589 for ; Sun, 22 Mar 2020 05:48:48 +0200 (EET) Received: by mail-wm1-f67.google.com with SMTP id r7so10431147wmg.0 for ; Sat, 21 Mar 2020 20:48:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=nR16Je0kTgMU3aW9/iw0o92SMHb8ViNmCFzCB24BroI=; b=G6GqEaNSol1oWD6np8n932P5Ri3RORnIYov/9hhHmXRBp98xq6QfHqW5Fk4STvcXDT 7WGJQleEVQkXCsv/poar4XXlfXmTfRcBXstc3IkJpJaI/BaDvlmI9MvAchELJCTnzpmv HibKCdW1RAwXADxjdpt4CQGHv6gcrJF2vJiCLFOBzkxcEjvkFcG4PIjXzhapOMg86efJ K+LiP0q5sNvO+QPuJ+WaXwquVMfr+VSakhOb8/IeW9ARphaYx9wK7goEOmqqZ2ujyBpz rFGMgs0GS0c6pPWCGOk0kTI54S47xJTcIXESsskavjmi1kvgY4I7T0JAaXK0hG3zjteY VjfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nR16Je0kTgMU3aW9/iw0o92SMHb8ViNmCFzCB24BroI=; b=gMyWZtC/UOdHIqA5OI7zkBJPtkC4/Db8pSlPcrmOEOAdvq5gS2QdsBBQs060gZq4NG 3fUpES8aHhYbHjPkhkjRE9LtZ8tG+wtSH13zRirW70+p7kx4RUf3BPIxcnkRxewHRMEp BvAR95Rve+/Doik9cKZ1GrtXAaBw1IThz/g8ElBDt4jmWQ50dA5rjwMC7WDMZLqytD5C 7yZF3I/wBay2GMx8r+GuU2GCIon7zTDX+iS5p7R6iXNcaQtWH8XaYNBgsAL7Bz5nIekd RqqnaaqcIRayXlMrk9wa80EdN+XPnqIa6fAzuscke/4KL8rzeri/mBuisdls4KIqHepL XYkA== X-Gm-Message-State: ANhLgQ3296K1faANcVKdfrwgUD1N3NLGoLntImEhk5ipNqucFIm+LBtO cnbp2nQhueTtGCeQYjWzpFSpqYvv X-Google-Smtp-Source: ADFU+vtyFbPDAO44x0VBIdMXlnr+tj1WX6YcwcKM9eq4C9edXsljQlNWVO4niRJ+QqLPlkZ6fd04bQ== X-Received: by 2002:a7b:cc8a:: with SMTP id p10mr19124026wma.10.1584848927976; Sat, 21 Mar 2020 20:48:47 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc1ab57.dynamic.kabel-deutschland.de. [188.193.171.87]) by smtp.gmail.com with ESMTPSA id k204sm1530371wma.17.2020.03.21.20.48.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 21 Mar 2020 20:48:47 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 22 Mar 2020 04:47:55 +0100 Message-Id: <20200322034756.29907-20-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200322034756.29907-1-andreas.rheinhardt@gmail.com> References: <20200322034756.29907-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 20/21] avformat/mpeg: Simplify cleanup after reading vobsub header fails X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" by setting the FF_INPUTFORMAT_HEADER_CLEANUP flag. Furthermore, also remove an unnecessary check for NULL before avformat_close_input(). Signed-off-by: Andreas Rheinhardt --- libavformat/mpeg.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c index eba5852266..f21507dc63 100644 --- a/libavformat/mpeg.c +++ b/libavformat/mpeg.c @@ -720,8 +720,7 @@ static int vobsub_read_close(AVFormatContext *s) for (i = 0; i < s->nb_streams; i++) ff_subtitles_queue_clean(&vobsub->q[i]); - if (vobsub->sub_ctx) - avformat_close_input(&vobsub->sub_ctx); + avformat_close_input(&vobsub->sub_ctx); return 0; } @@ -765,17 +764,17 @@ static int vobsub_read_header(AVFormatContext *s) return AVERROR(ENOMEM); } - av_bprint_init(&header, 0, INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE); - if ((ret = ff_copy_whiteblacklists(vobsub->sub_ctx, s)) < 0) - goto end; + return ret; ret = avformat_open_input(&vobsub->sub_ctx, vobsub->sub_name, iformat, NULL); if (ret < 0) { av_log(s, AV_LOG_ERROR, "Unable to open %s as MPEG subtitles\n", vobsub->sub_name); - goto end; + return ret; } + av_bprint_init(&header, 0, INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE); + while (!avio_feof(s->pb)) { char line[MAX_LINE_SIZE]; int len = ff_get_line(s->pb, line, sizeof(line)); @@ -908,8 +907,6 @@ static int vobsub_read_header(AVFormatContext *s) memcpy(par->extradata, header.str, header.len); } end: - if (ret < 0) - vobsub_read_close(s); av_bprint_finalize(&header, NULL); return ret; } @@ -1045,5 +1042,6 @@ AVInputFormat ff_vobsub_demuxer = { .flags = AVFMT_SHOW_IDS, .extensions = "idx", .priv_class = &vobsub_demuxer_class, + .flags_internal = FF_INPUTFORMAT_HEADER_CLEANUP, }; #endif