From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id DF2854A391 for ; Wed, 27 Mar 2024 11:32:25 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6911068D650; Wed, 27 Mar 2024 13:32:24 +0200 (EET) Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02olkn2090.outbound.protection.outlook.com [40.92.49.90]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A8DAA68D647 for ; Wed, 27 Mar 2024 13:32:17 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UH+Ax8zs2a6BcoCRh8OofL7oBlsX8xFqVF0WokbPB2qWxPM0u51QW4GxKYxbjYAa2SVHwAFSeMZvwmxnUaOqDcltTVAHar+HRGInLWJEd/5j64gi2xr2A9d3VFTtF8fz0cEVISTHP+7IkWU6J8waFCTrukF3yB6m+9ODnXcrsNI4zmQlUnFdkPTt+62d22vfaU9aiTaF6KgYhCX8emyIAdHd1s6YVCXxU6dX2Yx9BhBJmAORG52Y2X2oFEFj9MVlggy/nf4cALHsxzgkj4HlR6HiF4Mg3DnuoVm1T8kkpWq2UUtQ/n4TXqeU2QQXzcm5xjBPigj0NfVC4/bzt3XV8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EYdcGpj0DttMy2pfBo0uutEZ9wDpIcppu8FLJiHmPFA=; b=Sy+HFrxS5hKUhf7uWz35pi+GurpzihAZi7cyhbPNFer4cXFOimF8YZy5PtPNHrdd2shhO1W6i+Q55nmCdokCF+O9hxkU1y+7aptUh7QA4Jvjw4OD7JL1/SC+YUXZyhrOIGcR/Ru64+qd3KB+mtoUQlEUPDtLBwJ4kUrP37fL/hXdweEi0dMry2b9GsgMV+wUGrWXhI8G04wSwzgpLep0JClt1GPtijQLZeoObzhUT543iaQFtL0/ZeoBMVeqjoTAMJ0s/WXzxZ35Ry5ngnpdnn1Kz01orerU0RRj2HQxKwT7uWG/Tg0e5tkr5adV28uC9U0K6fiWVYhK+H8T9JpQhQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=EYdcGpj0DttMy2pfBo0uutEZ9wDpIcppu8FLJiHmPFA=; b=ISNklEFaiPtntrNSwDc9Hkzt+L2ZswQkoKh50SaDhPK9TUg/MgwUUW2ywzv3YYOhryPluvM9XUhCDv+HqtgxDYGTyIS8fuWL3ZEaoYNIQV+x52sTAq0oGEisrM2Oc71TpmMocaa6LKVzcXomU1mjvs6+y2/f0dpRG5VycrM+japb5fdvRPICoAvqInuCAGJuvcLjUvC0eOuUByocIYvG+FRQmcvsAkS4Z8OS9wUQRIWCHyhHKyrDiJbjXywU8tH7p0iDEGcp3plMNjHCaKBWfne4YLSehS+esllwE7HBplAX2xowK+Mz+XLf5L8RWO6blgSiQPioRSXQTofS/M85qg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS1P250MB0430.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4a9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.31; Wed, 27 Mar 2024 11:32:14 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.028; Wed, 27 Mar 2024 11:32:14 +0000 Message-ID: Date: Wed, 27 Mar 2024 12:32:11 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240326201749.1543553-1-marth64@proxyid.net> From: Andreas Rheinhardt In-Reply-To: <20240326201749.1543553-1-marth64@proxyid.net> X-TMN: [a7a25VNiItg/H6YfF91/3GKm8biiljQ0UaNgmC9nn10=] X-ClientProxiedBy: ZR0P278CA0014.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::24) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <34a42b60-7874-4676-8fa6-8bb784ae34fe@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS1P250MB0430:EE_ X-MS-Office365-Filtering-Correlation-Id: 921c05cc-f785-4f36-dc50-08dc4e518cfa X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ujx1arZdbQFqBu6DZYT5DQqpc0ay2F+4zZT0fgEi/n1CuWoYOC4S6p0FqbdO+GPVMwBLexwlzM8AFg4eqpUpiOtd+GzezIvjkFdX/3yXtbBJf0R+OLY8cRZGGLRb68QTTPurNbBvBpwGOxMwvxjp5RXzDC1S6QGd+NIPoArbwh4iiTR6pzHAcDt40BeqV+8kpIpSsKgnGpHo7p3yvYlZsmUsfY5dSnE21UXkXYA0rzBYhwV+/D8zPVcB5AAS4L729eiV0O3qtELnqIJyM/0k+wrToim1B/aJ1tUYDzwPEa9f1zkLGMgxoPxXLkFyBS+km5kcymIB0sJhGIGnXgL7nfWCMPyGHlfjIQ5wL4nk24C81slI5E6YsxerwG2oyZmk4Y0QvoBX74kmU2blPl49Z0XQm7S/5oXOvOSeLIggV1aIJpyAWH/lvkLzZjezu/UJa9ZKzjdjFNoed01j5xHb8qgQ6Azk1YvviEk3q5tDezrV8m4uJPT3XdvWyRBYQQ+jdBCOJF7OcAO31NKoE2rL9gKk2xedat1zmfEaeQMByFfvwaQc5RFTnyca7VcCTzd3 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Q3ljWGhzQnBONHJhVlZxU28ybWdoREdoTGxsTlJROEUzMHdtVlFBT1plckls?= =?utf-8?B?SHlWcDV4b0o0aFV3MGVnZ0ZEdWhYbVczc2o1aDJMWHc0VmE1QzllTVRXcmM0?= =?utf-8?B?dEhpUlJSNHJkdEFBRnhGb3hZQzNpc3IyMS95OUZCeEVYZVVPQlNaSSt0b29R?= =?utf-8?B?eDAwRlNFeFlFcWd5SmJtWGNDV1hSeHc4VzJDS1FrbU5JZytCOGRubWtIRmhB?= =?utf-8?B?eldEeUl3ZW9telo2a1lhbUJyejZBWkJIK0VvSmJ6UkppOTFYQVFGc0xxcEVI?= =?utf-8?B?YXd3TFVTZWhCMzFpQmx3MUZSVU90K0VaRUh0QUNtQW5BN1dqTFNCSUNqTjhu?= =?utf-8?B?dURVRlNUK0o2d2NOenpVVDJ5aGduUkFBRkRtczJIMXZXOVE4VXlJbU5MQnZl?= =?utf-8?B?SlFqVWgzbFFZMExlV1M1MHNrUHplek9ER0dXYWJ4WkwwQzZsSnY4MGdORlU2?= =?utf-8?B?blB0SW0wbjFZWTFFaEFHN3pzZGxraFFQL0JCcDA4ZGR2SUhKWGUzUVBZMHBD?= =?utf-8?B?WS9OeFRleXVKcEN5cUs3U3BYd3ZZcHVqdDJRVjRxWmdLQ3IyTmFuRE1xa0hl?= =?utf-8?B?dVZpd216WEVxZS9lUFVGQk9oN0FnaXZqTExpREJVRS9aWTk4amJVbElmQTdx?= =?utf-8?B?Q01KSWpCT0kzWmRKZ1ppVGJIbk5aMTBaQk5xWHNKV2paaEpkUmRXbUxUck8z?= =?utf-8?B?dzVtUEh5UkhLOGN1OUNiWWNkNzRHeHZRRGNnaW1NZGtCT2hna2crTit1bklI?= =?utf-8?B?ZTVhb1NwM3ErTkpNYmk0cWJMMW9QbmJPQjdqNjliZEFxbFUyS0ZmK0QrV3pi?= =?utf-8?B?WHg4UUJwVG1mTkhCcDk4enR2c0tZYkJZNndXL2c5MlpQc0dOc1pySVkxNHJH?= =?utf-8?B?cW5PZTlSUlRyTnh5SUkxbWZ0QTZDejJmWmg0T21jTFcwVlpnUmdXSG51dm5v?= =?utf-8?B?blpJbExpSFBGZFBzUUNEbzZ5eU1xc3I2L1Q2TmhLRXc4WjA4TEtwaUcrR3BJ?= =?utf-8?B?YTNSKy9KVFE3RWk2TVJiQU5IOGx3RWdBaHE1cm1WVlc5WTB6MmUwZk52aXlt?= =?utf-8?B?YW5XYmlTcWlNRk9kTXkrSHpMK1B1aG9pUmhzK1dweHdYdzRxQ0tnMUJKa1py?= =?utf-8?B?MVdEVitKUFY5a0dEcTJlVUlTUUFQc2kvclhHY2xraDc0WEdaVnl6WkRZbU9x?= =?utf-8?B?RVE5aFhWby9CcldjYmozQXJYVUVhUkpqMDF1MGxXYUZWblIzNHE5UGk5dkRN?= =?utf-8?B?OVdONGcxM2U5b0FGdEx4MG5YVmIzVCs1VDhuTDh0bXljZ0FEaWxwL0xrMVVk?= =?utf-8?B?bVhRMEhwMkpuVXBWNjJRdEU4SGpqcVdVa1BUeVZjSUttZkVFL1ZKZTlPN1Yz?= =?utf-8?B?V2tvbUNxU2MzS3FRRHNDbFpOT2hGQis3eEpJTzIycy9Vd08wVzFMMkhqc09p?= =?utf-8?B?U2M0OUg0R2dFcTJpSEExK3U2S1dtczM4QnpHQ2lwM1hYalhYdjlaVzkzZ3lH?= =?utf-8?B?NXNJU3BDVjE2V0NuRGtoKzA4Vm05MXRZeGVrNkxaMXFkT0V3cUU1dWo1bkU0?= =?utf-8?B?SExkMzQ1Q0VNM05VUll1NEQ2UUZ3RXlyalJBeEpuTDVkQU5mdlhLeWpVQXd1?= =?utf-8?B?aURUc0tlL0RSdlRMOWFIQWt1d2ZNS1BLblNhaXpUOWx0VXZPcFFVaUFpZUpj?= =?utf-8?B?dCsrSnIyMFlubGRGVGozbHVHTGhOYnRpcHdTYWlpNVJ0R2VIR3FiOTZ3PT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 921c05cc-f785-4f36-dc50-08dc4e518cfa X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Mar 2024 11:32:14.7173 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS1P250MB0430 Subject: Re: [FFmpeg-devel] [PATCH] avformat/dvdvideodec: remove `if ((ret = ...) < 0)` pattern X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Marth64: > Recent advice plus my own experience agree that this pattern > is error-prone. Instead, set `ret` in its own line and do > the error validation after. Also, explicitly return 0 on success > in dvdvideo_chapters_setup_preindex() > > Signed-off-by: Marth64 > --- > libavformat/dvdvideodec.c | 132 +++++++++++++++++++++++++------------- > 1 file changed, 86 insertions(+), 46 deletions(-) > > diff --git a/libavformat/dvdvideodec.c b/libavformat/dvdvideodec.c > index c94e7f7fe6..000f9c5c9b 100644 > --- a/libavformat/dvdvideodec.c > +++ b/libavformat/dvdvideodec.c > @@ -900,7 +900,7 @@ static int dvdvideo_chapters_setup_preindex(AVFormatContext *s) > { > DVDVideoDemuxContext *c = s->priv_data; > > - int ret = 0, interrupt = 0; > + int ret, interrupt = 0; > int nb_chapters = 0, last_ptt = c->opt_chapter_start; > uint64_t cur_chapter_offset = 0, cur_chapter_duration = 0; > DVDVideoPlaybackState state = {0}; > @@ -909,9 +909,10 @@ static int dvdvideo_chapters_setup_preindex(AVFormatContext *s) > int nav_event; > > if (c->opt_chapter_start == c->opt_chapter_end) > - return ret; > + return 0; > > - if ((ret = dvdvideo_play_open(s, &state)) < 0) > + ret = dvdvideo_play_open(s, &state); > + if (ret < 0) > return ret; > > if (state.pgc->nr_of_programs == 1) > @@ -1058,7 +1059,7 @@ static int dvdvideo_video_stream_setup(AVFormatContext *s) > { > DVDVideoDemuxContext *c = s->priv_data; > > - int ret = 0; > + int ret; > DVDVideoVTSVideoStreamEntry entry = {0}; > video_attr_t video_attr; > > @@ -1068,14 +1069,11 @@ static int dvdvideo_video_stream_setup(AVFormatContext *s) > else > video_attr = c->vts_ifo->vtsi_mat->vts_video_attr; > > - if ((ret = dvdvideo_video_stream_analyze(s, video_attr, &entry)) < 0 || > - (ret = dvdvideo_video_stream_add(s, &entry, AVSTREAM_PARSE_HEADERS)) < 0) { > - > - av_log(s, AV_LOG_ERROR, "Unable to add video stream\n"); > + ret = dvdvideo_video_stream_analyze(s, video_attr, &entry); > + if (ret < 0) > return ret; > - } > > - return 0; > + return dvdvideo_video_stream_add(s, &entry, AVSTREAM_PARSE_HEADERS); > } > > static int dvdvideo_audio_stream_analyze(AVFormatContext *s, audio_attr_t audio_attr, > @@ -1219,7 +1217,7 @@ static int dvdvideo_audio_stream_add_all(AVFormatContext *s) > { > DVDVideoDemuxContext *c = s->priv_data; > > - int ret = 0; > + int ret; > int nb_streams; > > if (c->opt_menu) > @@ -1241,8 +1239,9 @@ static int dvdvideo_audio_stream_add_all(AVFormatContext *s) > if (!(c->play_state.pgc->audio_control[i] & 0x8000)) > continue; > > - if ((ret = dvdvideo_audio_stream_analyze(s, audio_attr, c->play_state.pgc->audio_control[i], > - &entry)) < 0) > + ret = dvdvideo_audio_stream_analyze(s, audio_attr, c->play_state.pgc->audio_control[i], > + &entry); > + if (ret < 0) > goto break_error; > > /* IFO structures can declare duplicate entries for the same startcode */ > @@ -1250,7 +1249,8 @@ static int dvdvideo_audio_stream_add_all(AVFormatContext *s) > if (s->streams[j]->id == entry.startcode) > continue; > > - if ((ret = dvdvideo_audio_stream_add(s, &entry, AVSTREAM_PARSE_HEADERS)) < 0) > + ret = dvdvideo_audio_stream_add(s, &entry, AVSTREAM_PARSE_HEADERS); > + if (ret < 0) > goto break_error; > > continue; > @@ -1302,7 +1302,8 @@ static int dvdvideo_subp_stream_add(AVFormatContext *s, DVDVideoPGCSubtitleStrea > st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE; > st->codecpar->codec_id = AV_CODEC_ID_DVD_SUBTITLE; > > - if ((ret = ff_dvdclut_palette_extradata_cat(entry->clut, FF_DVDCLUT_CLUT_SIZE, st->codecpar)) < 0) > + ret = ff_dvdclut_palette_extradata_cat(entry->clut, FF_DVDCLUT_CLUT_SIZE, st->codecpar); > + if (ret < 0) > return ret; > > if (entry->lang_iso) > @@ -1326,12 +1327,13 @@ static int dvdvideo_subp_stream_add_internal(AVFormatContext *s, uint32_t offset > subp_attr_t subp_attr, > enum DVDVideoSubpictureViewport viewport) > { > - int ret = 0; > + int ret; > DVDVideoPGCSubtitleStreamEntry entry = {0}; > > entry.viewport = viewport; > > - if ((ret = dvdvideo_subp_stream_analyze(s, offset, subp_attr, &entry)) < 0) > + ret = dvdvideo_subp_stream_analyze(s, offset, subp_attr, &entry); > + if (ret < 0) > goto end_error; > > /* IFO structures can declare duplicate entries for the same startcode */ > @@ -1339,7 +1341,8 @@ static int dvdvideo_subp_stream_add_internal(AVFormatContext *s, uint32_t offset > if (s->streams[i]->id == entry.startcode) > return 0; > > - if ((ret = dvdvideo_subp_stream_add(s, &entry, AVSTREAM_PARSE_HEADERS)) < 0) > + ret = dvdvideo_subp_stream_add(s, &entry, AVSTREAM_PARSE_HEADERS); > + if (ret < 0) > goto end_error; > > return 0; > @@ -1363,7 +1366,7 @@ static int dvdvideo_subp_stream_add_all(AVFormatContext *s) > > > for (int i = 0; i < nb_streams; i++) { > - int ret = 0; > + int ret; > uint32_t subp_control; > subp_attr_t subp_attr; > video_attr_t video_attr; > @@ -1387,29 +1390,35 @@ static int dvdvideo_subp_stream_add_all(AVFormatContext *s) > > /* 4:3 */ > if (!video_attr.display_aspect_ratio) { > - if ((ret = dvdvideo_subp_stream_add_internal(s, subp_control >> 24, subp_attr, > - DVDVIDEO_SUBP_VIEWPORT_FULLSCREEN)) < 0) > + ret = dvdvideo_subp_stream_add_internal(s, subp_control >> 24, subp_attr, > + DVDVIDEO_SUBP_VIEWPORT_FULLSCREEN); > + if (ret < 0) > return ret; > > continue; > } > > /* 16:9 */ > - if (( ret = dvdvideo_subp_stream_add_internal(s, subp_control >> 16, subp_attr, > - DVDVIDEO_SUBP_VIEWPORT_WIDESCREEN)) < 0) > + ret = dvdvideo_subp_stream_add_internal(s, subp_control >> 16, subp_attr, > + DVDVIDEO_SUBP_VIEWPORT_WIDESCREEN); > + if (ret < 0) > return ret; > > /* 16:9 letterbox */ > - if (video_attr.permitted_df == 2 || video_attr.permitted_df == 0) > - if ((ret = dvdvideo_subp_stream_add_internal(s, subp_control >> 8, subp_attr, > - DVDVIDEO_SUBP_VIEWPORT_LETTERBOX)) < 0) > + if (video_attr.permitted_df == 2 || video_attr.permitted_df == 0) { > + ret = dvdvideo_subp_stream_add_internal(s, subp_control >> 8, subp_attr, > + DVDVIDEO_SUBP_VIEWPORT_LETTERBOX); > + if (ret < 0) > return ret; > + } > > /* 16:9 pan-and-scan */ > - if (video_attr.permitted_df == 1 || video_attr.permitted_df == 0) > - if ((ret = dvdvideo_subp_stream_add_internal(s, subp_control, subp_attr, > - DVDVIDEO_SUBP_VIEWPORT_PANSCAN)) < 0) > + if (video_attr.permitted_df == 1 || video_attr.permitted_df == 0) { > + ret = dvdvideo_subp_stream_add_internal(s, subp_control, subp_attr, > + DVDVIDEO_SUBP_VIEWPORT_PANSCAN); > + if (ret < 0) > return ret; > + } > } > > return 0; > @@ -1433,7 +1442,7 @@ static int dvdvideo_subdemux_read_data(void *opaque, uint8_t *buf, int buf_size) > AVFormatContext *s = opaque; > DVDVideoDemuxContext *c = s->priv_data; > > - int ret = 0; > + int ret; > int nav_event; > > if (c->play_end) > @@ -1471,7 +1480,7 @@ static int dvdvideo_subdemux_open(AVFormatContext *s) > { > DVDVideoDemuxContext *c = s->priv_data; > extern const FFInputFormat ff_mpegps_demuxer; > - int ret = 0; > + int ret; > > if (!(c->mpeg_buf = av_mallocz(DVDVIDEO_BLOCK_SIZE))) > return AVERROR(ENOMEM); > @@ -1483,7 +1492,8 @@ static int dvdvideo_subdemux_open(AVFormatContext *s) > if (!(c->mpeg_ctx = avformat_alloc_context())) > return AVERROR(ENOMEM); > > - if ((ret = ff_copy_whiteblacklists(c->mpeg_ctx, s)) < 0) { > + ret = ff_copy_whiteblacklists(c->mpeg_ctx, s); > + if (ret < 0) { > avformat_free_context(c->mpeg_ctx); > c->mpeg_ctx = NULL; > > @@ -1506,7 +1516,7 @@ static int dvdvideo_read_header(AVFormatContext *s) > { > DVDVideoDemuxContext *c = s->priv_data; > > - int ret = 0; > + int ret; > > if (c->opt_menu) { > if (c->opt_region || > @@ -1539,12 +1549,25 @@ static int dvdvideo_read_header(AVFormatContext *s) > c->opt_pg = 1; > } > > - if ((ret = dvdvideo_ifo_open(s)) < 0 || > - (ret = dvdvideo_menu_open(s, &c->play_state)) < 0 || > - (ret = dvdvideo_subdemux_open(s)) < 0 || > - (ret = dvdvideo_video_stream_setup(s)) < 0 || > - (ret = dvdvideo_audio_stream_add_all(s)) < 0) > - return ret; > + ret = dvdvideo_ifo_open(s); > + if (ret < 0) > + return ret; > + > + ret = dvdvideo_menu_open(s, &c->play_state); > + if (ret < 0) > + return ret; > + > + ret = dvdvideo_subdemux_open(s); > + if (ret < 0) > + return ret; > + > + ret = dvdvideo_video_stream_setup(s); > + if (ret < 0) > + return ret; > + > + ret = dvdvideo_audio_stream_add_all(s); > + if (ret < 0) > + return ret; > > return 0; > } > @@ -1568,17 +1591,34 @@ static int dvdvideo_read_header(AVFormatContext *s) > } > } > > - if ((ret = dvdvideo_ifo_open(s)) < 0) > + ret = dvdvideo_ifo_open(s); > + if (ret < 0) > return ret; > > - if (!c->opt_pgc && c->opt_preindex && (ret = dvdvideo_chapters_setup_preindex(s)) < 0) > + if (!c->opt_pgc && c->opt_preindex) { > + ret = dvdvideo_chapters_setup_preindex(s); > + if (ret < 0) > + return ret; > + } > + > + ret = dvdvideo_play_open(s, &c->play_state); > + if (ret < 0) > return ret; > > - if ((ret = dvdvideo_play_open(s, &c->play_state)) < 0 || > - (ret = dvdvideo_subdemux_open(s)) < 0 || > - (ret = dvdvideo_video_stream_setup(s)) < 0 || > - (ret = dvdvideo_audio_stream_add_all(s)) < 0 || > - (ret = dvdvideo_subp_stream_add_all(s)) < 0) > + ret = dvdvideo_subdemux_open(s); > + if (ret < 0) > + return ret; > + > + ret = dvdvideo_video_stream_setup(s); > + if (ret < 0) > + return ret; > + > + ret = dvdvideo_audio_stream_add_all(s); > + if (ret < 0) > + return ret; > + > + ret = dvdvideo_subp_stream_add_all(s); > + if (ret < 0) > return ret; When I argued against the "if ((ret = ...) < 0)" pattern, I meant single checks. In chained cases like the above the compactness outweighs the potential precedence problem. > > if (!c->opt_pgc && !c->opt_preindex) _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".