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 8567A40587 for ; Tue, 26 Jul 2022 06:17:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2885B68B7D1; Tue, 26 Jul 2022 09:17:21 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2105.outbound.protection.outlook.com [40.92.90.105]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DC3FB68B508 for ; Tue, 26 Jul 2022 09:17:14 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dq4xk+uqV5JKvG703T0P2n6fj4CUMWcwH4NTaPHzCMAdk1b4qDLKAVRhNQtFx7RaMwIDD33h0kjkwsbixBDe6NSSDUL+D/NTijuxL1kBjQTdgmURqLDInUyLcQWt8A2RFe0Hf8/rFsp0It6XiR/8+8sCJH2wHotzy5Vc4enEsyHSU8UGEI4i4xKX44hBokDIujLPGcslvjsfKy3/P5zf8IQgH0aoloqi4tzTxlytPtw44lXrZVIAI1cQfl6t9hTyBzJ357qzm3aL3sW/kzIBHM3DSxthQcSrLJpjnx2R4pMJIjus5/pwn1GWVloV+PZrmAauWRCMxBZIh/FLWJsG0w== 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=xoJBxm6bTt3Eu44zftEfyFObPpf5TUwtuGqA2ezDLOk=; b=iWSB0GlGStwm4SWtZPv4c+X1mHZn+ClrjE4R3H0Qnd97kPk7VFu0lmBkt7NkWIt2FLzusLeMx46n33Xtlnw1tR1Dl+YGORlImy2+MHcvQjPISeNVLXcJWQuf9LaiIqOIdYvF3dcKOycrpjsCqe1+wjZsDy10HBU1JFSFBSm3kbp6kpHAnkG4jxq4r9y9y+QRkY12XGELyQfCJkWBfujsJz2ahI5AZlcgwbi284pyFFzNPHOXfdrs6KKbUqZqIV9TBmmKuSTxqWBQZKkpsiPDsuy7Qg8anp2ht+gdLLjYbY1wolXUVtVfZjL2vlZ2ZNeLSJGDPIHX/aPyWpXRttpirg== 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=xoJBxm6bTt3Eu44zftEfyFObPpf5TUwtuGqA2ezDLOk=; b=gW/SmMegqKg/0k2lH64b1+L3n7f6g3vEim6KNIHlzbYk7JuOMEvUDL00hjdmh80LrdNKMgh9Aa7nIkYsHc5A1J89Zq+3SkKSr4ctZUYUG/JfU/q2/bs0vk3zURjvVWOCTSjs1HglM3U3SWW56llUQK+9KzhDqt0dME5oB1FNgfyLD964yoRLr7ObBYlfTx2XPotXlLXZ23Df3QTqIM39ZzhpXrkkwvwgv7/e9lfnO3HCMJ6D+STjzuzg0cph2mYzx1txfH1QnPAf5+NflC6Nl98iGIclhEsS6+Md6y2PMvuyboOsIs0ivcEUUaiaz6g/BrLt2kbnMs7jTdn+13yieQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by DB7PR01MB4869.eurprd01.prod.exchangelabs.com (2603:10a6:10:55::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5458.20; Tue, 26 Jul 2022 06:17:13 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5458.025; Tue, 26 Jul 2022 06:17:13 +0000 Message-ID: Date: Tue, 26 Jul 2022 08:17:10 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220725081645.12834-1-pal@sandflow.com> From: Andreas Rheinhardt In-Reply-To: <20220725081645.12834-1-pal@sandflow.com> X-TMN: [BWS+XGM7dQJhizsPQunO0FbbSr1VSYZd] X-ClientProxiedBy: ZR0P278CA0197.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::8) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2c18dfe8-27dc-446e-1420-08da6ece7a75 X-MS-TrafficTypeDiagnostic: DB7PR01MB4869:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qmUYWCSluUF39kF+cfKjBzSCXt6gsadP2bs0XlbncD0moiTX+2WY4LQfs9diafQmvD129DV/zU52zcGM060qMOTVpE1qFWs8mpaJ3sptzbrit+oXWdfVqstJb2h0Nzm0dkYdd5A3bWJoLsbdxXrVVKj4M+sLisQkM7IlvEoHSI2VZ69ioq3j3dd997f7eX8yhuZZLSJR5gm3qmu3RoqFf0sMG9Y4U96rrsSOvmqQOhpN0MYCtKmCrAQYgZyLI1ckJGWQfKJ9G/DjAekpPbznB4o9uZxFI4mOpbGhz9h+QPJWSj2Prp/IUN60k0/HJLJph6N1YMDHABYCDWs3s1X0N06/FnH7riBmxaKMBGx4FMdqCu6KR+l/9JHiQuL9bVhDI5wjBp0omKI3vgMZl9WR1PI4jUvlMR+exYfgY0oaZ857Gx65jErLkGj3QzYSJoKVmTQ9rIQ5Hh5l9dArx22a83DJZnTg1ZsDqevfPEHoJ5/D1Yb5RZ4uOQ7LFhTRlhzoiu1NsMvylxZJJ8sdl7iG/2lOOxaaJjwnnAe2U/Zy15zllG5CKFJT/pFUUKizEAB14iyq1vkTZ/pB10KjAnwffTT51bsdqmgSHnLz/Pf/5GOWFABcoBJaCfv+73XayqxOnxBpDPeZfK0v7m0/sE51bDVYAldHgsVvO6geiL+0K0ipKuRJmTQvYq6cuaAQYA7h X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UVVEWHhUUmNjallWRzMxRkh3N0hjbVR5TzA4TjZBcXg2SFRqa25LZmFNbU11?= =?utf-8?B?QW9vMkVGWmZJc3l4dkFsL2c3bTBPMGpJdGpJTS9JNERoUWJlclUyTkxBQXZB?= =?utf-8?B?Z2pQbGxkTy9VOG5ZdGtBa2lWck91L0l5N3NMa0FWdVVVWHU1RUJhY1NRZCs0?= =?utf-8?B?UGRkay9kLzFaZkNDVXd6UnhYelRueHh3a0NJVm9FUXZHczArUE1ZUk0wNUpD?= =?utf-8?B?UUJOVUZFY3B5SWVFMUUrbGtreXhLTTBvZEtKZzdVMXZCSlM0TldmV2ZURVVL?= =?utf-8?B?R0tBWWNRNENtS1FGNDFYMExVRTJDNllndWFSUGNWTG1UcjhHT1FqaEZKclJj?= =?utf-8?B?K0tJQzV3Qm45dVhOTC9sblpYRlY1a2FGT3ByRkdLUmY1RnZhVUZaOUZZdncz?= =?utf-8?B?OHE1c3duWjVqOVJscUlhV0FnRVdlWGpVOVRKd0RVY0FTV2wxTVpGd24wTkp4?= =?utf-8?B?NFR3SWEyRFJPT1AzZTB5cnA1NWlGbW5qejBLdDRPMHlkNnNEcEpJa3FCU0Y0?= =?utf-8?B?THlTbGhJdmx0MHUzbzVsMTF1ZW8rWExKaXdwRjZSY2d6REFhOUloMWlyWVVt?= =?utf-8?B?aHBWRE1yZG8vOExqQUdYVWhIRGlsNHVFYmxmUFhNb1JKVGtkOWllMlpBWnl6?= =?utf-8?B?T1NvNGZybmxEL1VJOUJEd3lDWVViQzZNYVRDQUJrQml3TUFtZEFoQVM3V05L?= =?utf-8?B?M0RIYURZVGdwZWtpTnliWG9xSVZ0WGN4Tjh2a0V1T0RqMHJ2NUlFMkhWV2ZD?= =?utf-8?B?UlhSUmhFQmxrUWFzMVE0c0VUZ0h3TU14NjhRWlQrWE0wMmdQbFAyUzF6bWJV?= =?utf-8?B?TE90Z0t6Yngzck5mNzU0TTlnMXU4akd2NEpncFZhaER2TjFIbjZ2YnRKcTNV?= =?utf-8?B?Y2xXUTVJTndhMkJudlV5anE4TVhVdEJJL3c0UzVaMUNzOFRMdHFxWXh3UmM5?= =?utf-8?B?TG04bHV6SUIvM3Z0Mmx5Q1FOYXFOTXpuWEQrNGJmNGc0cVhGZTB0MmNMeUhn?= =?utf-8?B?L3c0SmRPT3FvN3VLMTEwL0I2K0hjQm5haHM1WFdjQnhRcmRLemhDQnZidGpl?= =?utf-8?B?TjNwMHovdTYzNTZ0T0RVanBvTk95d0RqOE1UM3ZQZXdlQjdncXRmYXRPM0dC?= =?utf-8?B?R3k1RWZWeFYxdWhibjJzSmhwd21tWTdCYWw3dW0xMHdFcnUzM2VwS2RVSVNR?= =?utf-8?B?UHFDbEdKU3A3TkFCcXliVDcxRlY4SmVKQmFGQ1doWnZ0QnoyajBwWk5TMWh4?= =?utf-8?B?d0IyUHE4eFZ6enE1dk1WcU9HZ2FQeGRwVjRBZVJyTmZaVzErdFMrYTYvSTZo?= =?utf-8?B?TUMzTXlPU0cyVzZBTkx3OFFQY2FUQk1IcXh0VE1Cbmp5MVpQRG4yOHp2WVVJ?= =?utf-8?B?VWZVN3VsS0lYVjhrSm9TOHl5MlI1WVlmeW0rajV6bFlOYmxSV3Z6OXBJalFI?= =?utf-8?B?Y3ZpeE00S0pLQnBiMlpzMXB2dFJEbENSNlp4QXJobzEwNDVDRzY2T3NLQmdL?= =?utf-8?B?ZEJSRHBPUUtIaHJkZVlKZURnd1F5WUorZzJvVUNtanB2RWY0WjFPTUxzbEZk?= =?utf-8?B?TDFIUzFaQjhybmZHYzA5NUdsb09YbXpUUTU3VFNET1lkTFhSdndibC9HK2Rq?= =?utf-8?B?Rk1WbHFDNEVDczQ1TjVzelU5NFNZNTVQSWlCQTZqaHdQc1E0NDBoc2tyR290?= =?utf-8?B?SWF4Yk43VWs0cFdMWkdWcUtLVTRXczFyTC82TjIySndOWmM3VFA5S0J1NkZF?= =?utf-8?Q?JmODTshbNUZ+fO1h0o=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c18dfe8-27dc-446e-1420-08da6ece7a75 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Jul 2022 06:17:13.0501 (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: DB7PR01MB4869 Subject: Re: [FFmpeg-devel] [PATCH v3 1/2] avformat: refactor ff_stream_encode_params_copy() to ff_stream_params_copy() 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: pal@sandflow.com: > From: Pierre-Anthony Lemieux > > As discussed at https://ffmpeg.org/pipermail/ffmpeg-devel/2022-July/298491.html. > Note that ff_stream_params_copy() does not copy the index field, which is > usually set by avformat_new_stream(). > > --- > libavformat/avformat.c | 37 +++++++++++++++++++++++++++++++++++++ > libavformat/fifo.c | 2 +- > libavformat/internal.h | 10 ++++++++++ > libavformat/mux.h | 9 --------- > libavformat/mux_utils.c | 28 ---------------------------- > libavformat/segment.c | 2 +- > libavformat/tee.c | 2 +- > libavformat/webm_chunk.c | 2 +- > 8 files changed, 51 insertions(+), 41 deletions(-) > > diff --git a/libavformat/avformat.c b/libavformat/avformat.c > index 30d6ea6a49..c426dbfa45 100644 > --- a/libavformat/avformat.c > +++ b/libavformat/avformat.c > @@ -235,6 +235,43 @@ int ff_stream_side_data_copy(AVStream *dst, const AVStream *src) > return 0; > } > > +int ff_stream_params_copy(AVStream *dst, const AVStream *src) > +{ > + int ret; > + > + dst->id = src->id; > + dst->time_base = src->time_base; > + dst->start_time = src->start_time; > + dst->duration = src->duration; > + dst->nb_frames = src->nb_frames; > + dst->disposition = src->disposition; > + dst->discard = src->discard; > + dst->sample_aspect_ratio = src->sample_aspect_ratio; > + dst->avg_frame_rate = src->avg_frame_rate; > + dst->event_flags = src->event_flags; > + dst->r_frame_rate = src->r_frame_rate; > + dst->pts_wrap_bits = src->pts_wrap_bits; > + > + av_dict_free(&dst->metadata); > + ret = av_dict_copy(&dst->metadata, src->metadata, 0); > + if (ret < 0) > + return ret; > + > + ret = avcodec_parameters_copy(dst->codecpar, src->codecpar); > + if (ret < 0) > + return ret; > + > + ret = ff_stream_side_data_copy(dst, src); > + if (ret < 0) > + return ret; > + > + ret = av_packet_ref(&dst->attached_pic, &src->attached_pic); This will allocate a buffer of size AV_INPUT_BUFFER_PADDING_SIZE in dst->attached_pic (and set the size of the data of said packet to 0) if the size of the data of src->attached_pic is zero (in particular, if it is truely blank). This is not desired. > + if (ret < 0) > + return ret; > + > + return 0; > +} > + > AVProgram *av_new_program(AVFormatContext *ac, int id) > { > AVProgram *program = NULL; > diff --git a/libavformat/fifo.c b/libavformat/fifo.c > index ead2bdc5cf..fef116d040 100644 > --- a/libavformat/fifo.c > +++ b/libavformat/fifo.c > @@ -509,7 +509,7 @@ static int fifo_mux_init(AVFormatContext *avf, const AVOutputFormat *oformat, > if (!st) > return AVERROR(ENOMEM); > > - ret = ff_stream_encode_params_copy(st, avf->streams[i]); > + ret = ff_stream_params_copy(st, avf->streams[i]); > if (ret < 0) > return ret; > } > diff --git a/libavformat/internal.h b/libavformat/internal.h > index b6b8fbf56f..774ff57698 100644 > --- a/libavformat/internal.h > +++ b/libavformat/internal.h > @@ -625,6 +625,16 @@ enum AVCodecID ff_get_pcm_codec_id(int bps, int flt, int be, int sflags); > */ > int ff_stream_side_data_copy(AVStream *dst, const AVStream *src); > > +/** > + * Copy all stream parameters from source to destination stream, with the > + * exception of the index field, which is usually set by avformat_new_stream(). > + * > + * @param dst pointer to destination AVStream > + * @param src pointer to source AVStream > + * @return >=0 on success, AVERROR code on error > + */ > +int ff_stream_params_copy(AVStream *dst, const AVStream *src); > + > /** > * Wrap ffurl_move() and log if error happens. > * > diff --git a/libavformat/mux.h b/libavformat/mux.h > index c01da82194..1bfcaf795f 100644 > --- a/libavformat/mux.h > +++ b/libavformat/mux.h > @@ -113,15 +113,6 @@ int ff_format_shift_data(AVFormatContext *s, int64_t read_start, int shift_size) > */ > int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **options); > > -/** > - * Copy encoding parameters from source to destination stream > - * > - * @param dst pointer to destination AVStream > - * @param src pointer to source AVStream > - * @return >=0 on success, AVERROR code on error > - */ > -int ff_stream_encode_params_copy(AVStream *dst, const AVStream *src); > - > /** > * Parse creation_time in AVFormatContext metadata if exists and warn if the > * parsing fails. > diff --git a/libavformat/mux_utils.c b/libavformat/mux_utils.c > index eb8ea3d560..2fa2ab5b0f 100644 > --- a/libavformat/mux_utils.c > +++ b/libavformat/mux_utils.c > @@ -121,34 +121,6 @@ int ff_format_output_open(AVFormatContext *s, const char *url, AVDictionary **op > return 0; > } > > -int ff_stream_encode_params_copy(AVStream *dst, const AVStream *src) > -{ > - int ret; > - > - dst->id = src->id; > - dst->time_base = src->time_base; > - dst->nb_frames = src->nb_frames; > - dst->disposition = src->disposition; > - dst->sample_aspect_ratio = src->sample_aspect_ratio; > - dst->avg_frame_rate = src->avg_frame_rate; > - dst->r_frame_rate = src->r_frame_rate; > - > - av_dict_free(&dst->metadata); > - ret = av_dict_copy(&dst->metadata, src->metadata, 0); > - if (ret < 0) > - return ret; > - > - ret = avcodec_parameters_copy(dst->codecpar, src->codecpar); > - if (ret < 0) > - return ret; > - > - ret = ff_stream_side_data_copy(dst, src); > - if (ret < 0) > - return ret; > - > - return 0; > -} > - > int ff_parse_creation_time_metadata(AVFormatContext *s, int64_t *timestamp, int return_seconds) > { > AVDictionaryEntry *entry; > diff --git a/libavformat/segment.c b/libavformat/segment.c > index fa435d9f32..a8f3e94714 100644 > --- a/libavformat/segment.c > +++ b/libavformat/segment.c > @@ -169,7 +169,7 @@ static int segment_mux_init(AVFormatContext *s) > > if (!(st = avformat_new_stream(oc, NULL))) > return AVERROR(ENOMEM); > - ret = ff_stream_encode_params_copy(st, ist); > + ret = ff_stream_params_copy(st, ist); > if (ret < 0) > return ret; > opar = st->codecpar; > diff --git a/libavformat/tee.c b/libavformat/tee.c > index f1f2a9d2a5..dbfad604d0 100644 > --- a/libavformat/tee.c > +++ b/libavformat/tee.c > @@ -289,7 +289,7 @@ static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave) > goto end; > } > > - ret = ff_stream_encode_params_copy(st2, st); > + ret = ff_stream_params_copy(st2, st); > if (ret < 0) > goto end; > } > diff --git a/libavformat/webm_chunk.c b/libavformat/webm_chunk.c > index d69db3a004..39f21fce7a 100644 > --- a/libavformat/webm_chunk.c > +++ b/libavformat/webm_chunk.c > @@ -94,7 +94,7 @@ static int webm_chunk_init(AVFormatContext *s) > if (!(st = avformat_new_stream(oc, NULL))) > return AVERROR(ENOMEM); > > - if ((ret = ff_stream_encode_params_copy(st, ost)) < 0) > + if ((ret = ff_stream_params_copy(st, ost)) < 0) > return ret; > > if (wc->http_method) _______________________________________________ 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".