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 D1E80421FA for ; Thu, 16 Dec 2021 21:24:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 547D768A466; Thu, 16 Dec 2021 23:24:26 +0200 (EET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2055.outbound.protection.outlook.com [40.92.90.55]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A738568AE4A for ; Thu, 16 Dec 2021 23:24:19 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g0Y77gYu8B3SzhoG++836SBXHSkvnq1UgvzzDSMsfAJoKsLTfbQ0ZGJ3xBtIGoZQ9nYLU6JIdvuN3p5SjrKpul2wZahw6TNES/Llce30JvPFLDImsgZIZHULVM/aoG5chXkZGCzceMkVxndTBIzJ4lUijx4ziMbOYD5AS7FVHk0n0vaxRab4KEG2dsyGXJt1ckC9b59l+DClmuJ0pZdOi8W3g5UOIM7AsY+/b51w95eOTMwNYiJZFhGoTVtR1aHl9jm+509o1x0o3CijcNxb5UNMR9lfFPVO3S4HhlAoWmn7NCNtHvDtVAV001aOHpZfuk5LUJxvrfDWTe9XNDkIkQ== 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=rqPT+R6l0x3ot2vfDkD+ZlhzIx0hr2K3NvaBXdy37A4=; b=UlTBORiji+rQwEdqC87WNFMrKS1x9vMiPlJhR4xhshgAIgWcb7snn1/gDL+SCyNpp+TVGCiZ7/9yNEJzUtxy92YccwVSNKJdhRr3tddzEA7DLPGjj0E8/fqSi5LdIrh51qBecVtP9RkeFcMbwFXe9kMnQVl4gKLMPwXHMWU9mOTf6FFqy7vA0CsGDbbSNYegJg+zbMxL3SQ+5y63xmV2RaCobAcPlqVUJOeVn25rSAVwNsQgWSQhUGQx1I4fZmtkqYFCXC+4H/neqtn3Hd39VYUnMLsncBw4ow+VjRB3qVpIXuN9R1PYHsw67IVkI94A+gF2hiAJ1rErG8SmfrILHA== 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=rqPT+R6l0x3ot2vfDkD+ZlhzIx0hr2K3NvaBXdy37A4=; b=NzWbZdaO+82IvOr0yn2k+7yvNJqQih3CGpvheA3ugrH2BabJPRsNXionDCGuBIOJpQ5noPsd0SAiuOQsCMLjZXSQQq0jwnaf8VxS/NtUy72UfNmVXr6hRiHchpsBfRoV82oisl0F/lRwk02hC4P1MDGT6WEYZRa3vStViGQTWzQ+K5Zj1bPI87X4dmMEj2MOoYA1l3GUSvmV/DWt4XXyFCIZ6tg1AG9UulM1ZhP1gkqvyeFdW4OTzpxPRLeDYkGwNKhTk0toXoIilJ0U0imM/VEve/S3bkMo/xUU6blqud4Ab1HNUJrOzqmDR3k274Lzks1uoXHUSBa0ATFAkPM5ow== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM7PR03MB6481.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4801.14; Thu, 16 Dec 2021 21:24:18 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%6]) with mapi id 15.20.4801.015; Thu, 16 Dec 2021 21:24:18 +0000 Message-ID: Date: Thu, 16 Dec 2021 22:24:17 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211213152042.5900-1-anton@khirnov.net> <20211213152042.5900-9-anton@khirnov.net> From: Andreas Rheinhardt In-Reply-To: <20211213152042.5900-9-anton@khirnov.net> X-TMN: [M3xFcvR0nOy9yssk/yr3QM1i6W0BYWP/] X-ClientProxiedBy: AM3PR05CA0141.eurprd05.prod.outlook.com (2603:10a6:207:3::19) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <8a4afa51-1e90-96de-2867-2aa0c1b528e7@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 07159cb5-3056-4fcd-7f08-08d9c0da6b1d X-MS-TrafficTypeDiagnostic: AM7PR03MB6481:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uxO5pbIEUOp/YhQ/7yq3PLg/t5jAcw0zfauAsLnKGgRLGrI35+5gFwgTplT6+kXqusiPDE5uUV9LN2mTjIVm2nEXLg8TssIjqa2SIVIFvY+rxhxuOC3QJanUAChw4aDHsmPNCHxe7MXXaE0poy+0CZ6cFAfFkU5+7upf7RRQWQAWHrGaco9kMgL7x1jqPP2a7cCzAy2Dt7Im2w5qDKOft5a8tEzRTWqY5MqtcMOyXfSRgHy/Ou3GWEnDdEglStt+N9h9tSY4LIsSIbCrYScUJ5RP4wh3yZAXk6icMzznXRyiV9Xa/5pyIbClXcdxwCjfXjtumZevsWWiP6SRWEdpgHihZ+/g0BOu423V6stxv5O1szMHDm1HZy7rw7ISDK74e7UA11GIfbvin+CdYGN8kvR9g90Jj5MBFtPyLQfYKkFfs3i8e1Jii0WMGb+ZE/bI1hdADz81Li146PYVPYlZ4wmHpREOLJEY/Q6b3sE2GwkISysPmop3zfY1+6ZKqPUL65V/ddKH/v1+6iXdH33FpAhhs8SK/soEg5X3ZM/BHUOT3Jw3LEXZ/4tCkPmyYbnq0CTAApeqpnTUgcJTyiHwLQ== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YVFYRG9DY1hqZ05JTUxEZnU1R0RoZS9UZ3JNRHhSdmVoSHNMeWRmSHNLaW41?= =?utf-8?B?MGRmdHUxRGtITFF0eU5xMjRPcmpzUUJyVU80NUxYbFl0WVV0cDdnOGlJQmZG?= =?utf-8?B?akh3OU1iaVRCeldGY05kc09rODFrOGl5cldZVGdFVE5qdVhldlhtYnJzSWZn?= =?utf-8?B?VW1hejJYeUJUcFdmTlVrZVd6Qzk1aTV3U3lnZXRPQ0NzUjZSNndhamUzYWpn?= =?utf-8?B?RmRJYnZMNkgvdktxRE9IMElQM2pTUTJscjZ6aFhzSm9rOHZhREQ2aDUzYWZJ?= =?utf-8?B?dXRQend2VmZHbi9zZjAra0IvYW02SGFTWEhhVGFQVHRLSWNIY1A4QkdRUFpE?= =?utf-8?B?V051WDV1enQ2MGxkNTJlZEVTMlFOdkNheHBBQkVLOFF5RzE5YXJDZ1BtZ05h?= =?utf-8?B?QTRkYTF0MkFIZFp5Ri9Bei81aXk1THJZSnRxYUZBb0t2eDgvMkNNdVNUY3hy?= =?utf-8?B?c0lTZERCTUxNUkdVQUdlZGIzZTVHOHhzV1gzRXQ3eUJhNTdvdEpKbG55V0NF?= =?utf-8?B?dzNzUy9zTTBRRHV0UlV0TW5IM1JkcmJ0TThYMC9heEdlZm5qWGp2VDlBTEZD?= =?utf-8?B?RTZxSkFsa09TWTFsVHBaa3BBYVp1TkNMU2RQcmdBSHJyZU9LTlg2WEl3OWVa?= =?utf-8?B?c0pSUkQ5VTlHNXk0TUY3Q3hrTjVHVm15ZVRrV0laV0V4ZWlQQUxGb3dEVzg1?= =?utf-8?B?R3Nub3ZpSkNLdC8rb2taYTVlcnBPblIxaVFoVlpsekQ4em9EN2ZNb0M1QTVM?= =?utf-8?B?czNISGUzYmtBSGV5TVgwc2R0clZKU1Q4NjdzR0l4VGxoK3N5OHdwSm9ERkJC?= =?utf-8?B?Nys1enVabnN0VUJhYytFRHQyTVJSV2lDRmU2Y2pkWmRCd0xwZ2ZGbHdxdlFM?= =?utf-8?B?ZjN1ejJYckFVWE1qVXZPaWVQd2JlZ0t6SXFjaXNPbFp1aUxqT3MwbWZvNXJN?= =?utf-8?B?NjEvdGhHNVNyTXkyMTJWUXJsaDNiTTlPTG9kT2ZmUG9KbjhYSlZEVVEzUzZI?= =?utf-8?B?ckF4UEMrZi85RDFHNUNaSGIvWmduZ3MweElhZHhON3lMWElsREJjUUU3dzZN?= =?utf-8?B?Q3lCTGdPaThGY3ZydVVpNzFST0pFUEVTQ21DcTc0RWZaWkVneHF6Y0tYV3l0?= =?utf-8?B?WU5sRGZEZUVMTlFGSXVIbUZCd09FZm82VEI1K3k1NW5wbkZGdFFlYmVBdGxH?= =?utf-8?B?TTJxUUVpTTVjNythaytXQjJrenFZTzltNnNjU1ZUd085OXpzM3VuWkx5dmxP?= =?utf-8?B?azFEYzZHYkNTSWRMWGYzSG9OVGxIREpQUnNYNUIxK3dTc0ZZUT09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07159cb5-3056-4fcd-7f08-08d9c0da6b1d X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Dec 2021 21:24:18.4165 (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: AM7PR03MB6481 Subject: Re: [FFmpeg-devel] [PATCH 09/24] ffmpeg_mux: add private muxer context 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: Anton Khirnov: > Move header_written into it, which is not (and should not be) used by > any code outside of ffmpeg_mux. > > In the future this context will contain more muxer-private state that > should not be visible to other code. > --- > fftools/ffmpeg.h | 6 ++++-- > fftools/ffmpeg_mux.c | 26 ++++++++++++++++++++++---- > fftools/ffmpeg_opt.c | 6 ++++++ > 3 files changed, 32 insertions(+), 6 deletions(-) > > diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h > index c28acad4f1..279a99cc48 100644 > --- a/fftools/ffmpeg.h > +++ b/fftools/ffmpeg.h > @@ -573,9 +573,12 @@ typedef struct OutputStream { > int64_t error[4]; > } OutputStream; > > +typedef struct Muxer Muxer; > + > typedef struct OutputFile { > int index; > > + Muxer *mux; > const AVOutputFormat *format; > > AVFormatContext *ctx; > @@ -586,8 +589,6 @@ typedef struct OutputFile { > uint64_t limit_filesize; /* filesize limit expressed in bytes */ > > int shortest; > - > - int header_written; > } OutputFile; > > extern InputStream **input_streams; > @@ -686,6 +687,7 @@ int hw_device_setup_for_filter(FilterGraph *fg); > > int hwaccel_decode_init(AVCodecContext *avctx); > > +int of_muxer_init(OutputFile *of); > /* open the muxer when all the streams are initialized */ > int of_check_init(OutputFile *of); > int of_write_trailer(OutputFile *of); > diff --git a/fftools/ffmpeg_mux.c b/fftools/ffmpeg_mux.c > index 9787fe7f78..cf85db674e 100644 > --- a/fftools/ffmpeg_mux.c > +++ b/fftools/ffmpeg_mux.c > @@ -32,6 +32,10 @@ > > #include "ffmpeg.h" > > +struct Muxer { > + int header_written; > +}; > + > static void close_all_output_streams(OutputStream *ost, OSTFinished this_stream, OSTFinished others) > { > int i; > @@ -64,7 +68,7 @@ void of_write_packet(OutputFile *of, AVPacket *pkt, OutputStream *ost, > ost->frame_number++; > } > > - if (!of->header_written) { > + if (!of->mux->header_written) { > AVPacket *tmp_pkt; > /* the muxer is not initialized yet, buffer the packet */ > if (!av_fifo_space(ost->muxing_queue)) { > @@ -195,7 +199,7 @@ static int print_sdp(void) > AVFormatContext **avc; > > for (i = 0; i < nb_output_files; i++) { > - if (!output_files[i]->header_written) > + if (!output_files[i]->mux->header_written) > return 0; > } > > @@ -259,7 +263,7 @@ int of_check_init(OutputFile *of) > return ret; > } > //assert_avoptions(of->opts); > - of->header_written = 1; > + of->mux->header_written = 1; > > av_dump_format(of->ctx, of->index, of->ctx->url, 1); > nb_output_dumped++; > @@ -296,7 +300,7 @@ int of_write_trailer(OutputFile *of) > { > int ret; > > - if (!of->header_written) { > + if (!of->mux->header_written) { > av_log(NULL, AV_LOG_ERROR, > "Nothing was written into output file %d (%s), because " > "at least one of its streams received no packets.\n", > @@ -327,5 +331,19 @@ void of_close(OutputFile **pof) > avformat_free_context(s); > av_dict_free(&of->opts); > > + av_freep(&of->mux); > + > av_freep(pof); > } > + > +int of_muxer_init(OutputFile *of) > +{ > + Muxer *mux = av_mallocz(sizeof(*mux)); > + > + if (!mux) > + return AVERROR(ENOMEM); > + > + of->mux = mux; > + > + return 0; > +} > diff --git a/fftools/ffmpeg_opt.c b/fftools/ffmpeg_opt.c > index 433102bb49..5b42b450f3 100644 > --- a/fftools/ffmpeg_opt.c > +++ b/fftools/ffmpeg_opt.c > @@ -2886,6 +2886,12 @@ loop_end: > exit_program(1); > } > > + err = of_muxer_init(of); > + if (err < 0) { > + av_log(NULL, AV_LOG_FATAL, "Error initializing the muxer\n"); Totally confusing error message: A user will think that it is the actual muxer and not some struct Muxer that could not be initialized. > + exit_program(1); > + } > + > return 0; > } > > _______________________________________________ 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".