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 3AEFD4AB95 for ; Tue, 14 May 2024 11:41:02 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AFD4668D699; Tue, 14 May 2024 14:40:59 +0300 (EEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2040.outbound.protection.outlook.com [40.92.91.40]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8CF6668D196 for ; Tue, 14 May 2024 14:40:53 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fyyI4V9/KXydL/BWQe9Tw0CnVILwhMlZosBUtrbKQ5O6pKH4+840oVsRu8H/hLUnVuDdshD+XdbEZi0IJOjNSblmkRKZWDGFB/DZ0BGeNyakqK1yjcNB5otVmXOff/kKgP2Nve25THfYkb+28WWeEN9ubINpwpg6edZYCpot/YPeZVbL8Q3OD4CIPXnuOntkPRGMdqrT3UXqvMZGuMhMC6sBMcYlq/5ddSNXnnUKiWw3VMRJgb4LsEKvknwah9DXCCNIvmhN3ycv4oB93PN3hJL8mxHnNK468AqGOKAVpH+fUBfvK2LtShI3pEM6BKMdYOPSP14NclCcpPqu7oUMCw== 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=dO5ZtZOTPh8Vq9dIlolOAEK1ZtxCRTbd370hGZHSqe0=; b=cYeDrRA66ZoXcR9Tu1KMcwB0t7ZH3FWj4C/xgTndLbCFp2rLQquCgmo4D7zZMRsM6R7NjqwrmY278KSM3EkvG0iIJDSn9zhKNld2U6uI43DX849jMkQIcMsR6NoqTPcYjCbLg1QkU8o3mBGpcruJyQ0MM0Erpx25WAWBD07GfSKNwPB5S3aOmambMs85fhUAtx2ftjPu0dzIKD6r5LA5Yzzu9QlS5RiMzCmylB7/huPuxAV33waQkfjcX71bbAtADeRV1t1m3lWnGK83FSP9VgeEwkqHaXAlZVh/B3f5Jj3qzxCdDh4ZzfWobBI0lGHnOkIzv8bCxniGx65pusejKw== 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=dO5ZtZOTPh8Vq9dIlolOAEK1ZtxCRTbd370hGZHSqe0=; b=AzGAT13nR2hcMGmVk7w0DLyb4tZHMaYkXV7Zi8slF7HbiTi6cowy69e0ArKtAYLeuf9nis2VxuHHfE0CeGsGkEr4lcU7wIkUngXVsHqB2JxK3OrhahqjinMrE2XKB7TmArSV2xa3Drq96A0E+1fJjn1R/Qjilis2jndWj6prn6IR2kad0+a3dh8w9fIUtcLcr9MUBufLLxeU/aLsOwTK4kZnh2yvFg4r8H6do7uCJxFNElV6sjwDP2IfZ7mFTtbYoXiMzsHhc8M272VZi9OczeMx+eAMK7uO3L6jmUVh8oQ/0eovo7AoaQyelaizip0Lo1tTXv0/Yl4B0loOiZJZCQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0345.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.55; Tue, 14 May 2024 11:40:51 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::384d:40d4:ecb7:1c9%4]) with mapi id 15.20.7544.052; Tue, 14 May 2024 11:40:51 +0000 Message-ID: Date: Tue, 14 May 2024 13:40:48 +0200 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240514113314.1821249-1-hiccupzhu@gmail.com> Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: <20240514113314.1821249-1-hiccupzhu@gmail.com> X-TMN: [tgeVNQRehOuvYINYj2I592K9suLCWAT3q4fISv1RzCg=] X-ClientProxiedBy: ZR2P278CA0003.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::6) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <9d5dcef2-5de9-46fe-976a-29abb730471b@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0345:EE_ X-MS-Office365-Filtering-Correlation-Id: 97019568-29e4-4d38-5d37-08dc740ab488 X-Microsoft-Antispam: BCL:0;ARA:14566002|461199019|440099019|3412199016; X-Microsoft-Antispam-Message-Info: lKQsHsuZBOr4TNzh3f/Qxu1vLooRsWgDK5krWyG9M2cDUuZ8FtffVel4fknnELuw1HnxnjS/HBZaW+MHswVgw30a1zwuOu3ek0oM59EThsobOZTygGxN2Pe3V2V5+6DEXohZuBpiCkRu2LVZlQvQQP2wR5q9DBeKV93xpBSgOfuawqy6tPdW61gl2YHEtEW1R3J7eisKkiMDyBg8d/E21LUp3KyRco180VqW3VhXfCYoBZhjzmhKTmPjQYNN5MX6jlLvKMiSt5oOhn/lcghaEgBRQuNZTLA3uUc90HuCoAlm5oZJ/Hs2VDBawXdOErdL41Agx9WKQ9wFWQvZjyhRbzlmnkYSWdcG16U5l5TffCpZ5cqHirkqFwwuyk3N2f3mQWDnzHLu97eyAdPQCL5BiDbI49iToEoHLgdm1UAtXuEYaOfiuHoseIGssozOJsZf8xHE9w6rnngEuATsh4sx9w1301l1HyBtY9ZNvvzUbq7N9ax2GuSOw2o7Fvjh0vz74WZ3K6hQqE1pWvg+81tSEvJllItpNFm3NKWvfBhNhv8j43B24BrcvH/oHHOisZdh X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b3VjYWNnWmtxZlpUdXRQaUFWdjZnaE5PbzhPQUlPUTdQZ05pQzltWnY2Zi9R?= =?utf-8?B?enJnYXhrUTNHZEkvSk5PSlVXUE9SZFJrUGE1MURzQWRhd2lQclA0UlVmYlFJ?= =?utf-8?B?Rk4zeXBiL0NpSEl4RVRwdnE4RUhqK2JzOFBqYlpZVWtHMm1yWGVKTGsxdjY3?= =?utf-8?B?eWpEa0wvc2FKT2NLVURDRGZIckN4STNnd1V5MjN3TXpGTXNWOTBzNnhCUkxp?= =?utf-8?B?dDJCQ3JFb1pFOGY5NHJ4aEVyQkluZFdvenA5ekV5UGpCUGc3MFd6ZndyTXBw?= =?utf-8?B?bDBNdFRPVVNxNmdTVSt5WUx3eFVncE5xT3dwakd6c2tOQVhMK1VONFIwOWd5?= =?utf-8?B?SC9rUEE0OVV2ZnZ6UEFTTEhCRGdKT21BdkQveUhpQ2RsNGQxMERnQ2RNU1lR?= =?utf-8?B?SjV5S0ZWYXk5aVZCRmJlWFBoTGxmRU9GdTN5WU91cVU2UzV0a1h4OUZjK0JQ?= =?utf-8?B?NDNzMm9IeUc3b0ROdFVkb0NTTVNuendEZzYwYVducVRraDlwNGdYR09vQkZn?= =?utf-8?B?YnZiaW0xVjgwa1hYS2RGUDZaSXlVeU5EdnR5eTBSZ1ZTMzdTMjRsSkEwM0tm?= =?utf-8?B?NktRRi9LRFd2OFRzVFRuMFh4bFV5anlBU1l1RnZid1FCdUZPeEM2MmkrbEk0?= =?utf-8?B?YWVtODJOTW9FMnh5ekk0aExPNlZRNnc1TWhFRlpnRlRoVVc4ZUlXUGw2YmJv?= =?utf-8?B?VnZ4ZnRhaUtZem5tYmhVdUlkQ2V6dFMrOTd1S2lSSGZpWmtoNXFFQ2c5MC9L?= =?utf-8?B?aE9BeHJ1WkRqejd6U2JyYnNnRGoxcjJUdTFQTjJMSnh3UDFpUVQ5Qk1ST3pJ?= =?utf-8?B?aTlhcCtQRG9QQmsrcE4yMGN1UkVBLzJySVR4K200cmFmYlh4N1FlL2pKWkJJ?= =?utf-8?B?WXJHRGswWldsRm5uV0Q0Zms1NFpJRWhncW52TEpQQXlkR3MwQUZpb3ZoRzY5?= =?utf-8?B?WSszN0F0aS8rYk12TytWS2NsaVgzWVdVMitsUWNsdVZ5dkZySkpQYy9Lc3NU?= =?utf-8?B?REh5OVlUQnVXZHM3VlB6ZlVIQUJUamRjdmxLYWVIWWRQRE1JVW9nWFNYVzha?= =?utf-8?B?eGVOYVIxU1BTcVh3alY1UHBtNW9VdFhSbkRWNGRqcVpuOEVubzlGMlh5a3VL?= =?utf-8?B?WVZsL3NvaWhIb0lFUjBwNWIydG4yUHY3SjhKMWRib0RjaEVEd0hnZys5QWpl?= =?utf-8?B?Ky90VjBKUGZHQ1ZKbDArQ1dxSmx0R2xhazFmQWQrbk4vQ2RyckMyNmI2bTFF?= =?utf-8?B?elpWV3ZCZkx6WUdOOVlodUlNMVdQYzVGSWc1MFBLY0JCSU9ibThaSHE5RnRN?= =?utf-8?B?aXhwMVBXTEhyNy9sSlBHVkdiNGgwTVQ3SkdJV0lkSit2dk56Ym9CbTM0enpn?= =?utf-8?B?b2IyaUlmWTBmT1hJRG9Bb1pSR01sa1BRRkZTYTBON2lOazYzQ2piTlE4b0l0?= =?utf-8?B?dC8yM2ptQlFlb2FyeUdiM04wYnJqSHA2Z3duTkVWMHUrTlRqcG1kNElWS3hq?= =?utf-8?B?UUJGekd6YmxVblprMC9Qak4rdEtNdWppbFlDM1dZZnh2cURrNHhIUllzd0xV?= =?utf-8?B?MDBER01TWFUzWURVKzdOWXdjWW1SdENyQU5HR0xKRDlKTjF2bHRONXJtczJl?= =?utf-8?B?V1c3dDdOdXgyTko5cEJTLytrdEYzS2RuaHhDVndRK3RmWEtvU1hFRGVxQXJO?= =?utf-8?B?N09hU2xFUFZENHdGMXJWa2VKSURIOUpMS1BpWHQ2alBsQjg4d0VoRjV3PT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 97019568-29e4-4d38-5d37-08dc740ab488 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 May 2024 11:40:50.9722 (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: AS8P250MB0345 Subject: Re: [FFmpeg-devel] [PATCH] avformat/pcmdec: add pts and dts calculation for pcmdec 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: Shiqi Zhu: > Signed-off-by: Shiqi Zhu > --- > libavformat/pcmdec.c | 37 +++++++++++++++++++++++++++++++++++-- > 1 file changed, 35 insertions(+), 2 deletions(-) > > diff --git a/libavformat/pcmdec.c b/libavformat/pcmdec.c > index 2f6508b75a..d879aefaad 100644 > --- a/libavformat/pcmdec.c > +++ b/libavformat/pcmdec.c > @@ -36,6 +36,7 @@ typedef struct PCMAudioDemuxerContext { > AVClass *class; > int sample_rate; > AVChannelLayout ch_layout; > + int64_t nb_samples; > } PCMAudioDemuxerContext; > > static int pcm_read_header(AVFormatContext *s) > @@ -46,6 +47,7 @@ static int pcm_read_header(AVFormatContext *s) > uint8_t *mime_type = NULL; > int ret; > > + s1->nb_samples = 0; > st = avformat_new_stream(s, NULL); > if (!st) > return AVERROR(ENOMEM); > @@ -104,6 +106,37 @@ static int pcm_read_header(AVFormatContext *s) > return 0; > } > > +static int pcm_dec_read_packet(AVFormatContext *s, AVPacket *pkt) > +{ > + PCMAudioDemuxerContext *s1 = s->priv_data; > + AVCodecParameters *par = s->streams[0]->codecpar; > + int ret; > + > + ret = ff_pcm_read_packet(s, pkt); > + if (ret < 0) > + return ret; > + > + pkt->time_base = s->streams[0]->time_base; > + pkt->dts = pkt->pts = s1->nb_samples; > + s1->nb_samples += pkt->size / par->block_align; > + > + return ret; > +} > + > +static int pcm_dec_read_seek(AVFormatContext *s, > + int stream_index, int64_t timestamp, int flags) > +{ > + PCMAudioDemuxerContext *s1 = s->priv_data; > + int ret; > + > + ret = ff_pcm_read_seek(s, stream_index, timestamp, flags); > + if (ret < 0) > + return ret; > + > + s1->nb_samples = ffstream(s->streams[0])->cur_dts; > + return ret; > +} > + > static const AVOption pcm_options[] = { > { "sample_rate", "", offsetof(PCMAudioDemuxerContext, sample_rate), AV_OPT_TYPE_INT, {.i64 = 44100}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM }, > { "ch_layout", "", offsetof(PCMAudioDemuxerContext, ch_layout), AV_OPT_TYPE_CHLAYOUT, {.str = "mono"}, 0, 0, AV_OPT_FLAG_DECODING_PARAM }, > @@ -126,8 +159,8 @@ const FFInputFormat ff_pcm_ ## name_ ## _demuxer = { \ > .p.priv_class = &pcm_demuxer_class, \ > .priv_data_size = sizeof(PCMAudioDemuxerContext), \ > .read_header = pcm_read_header, \ > - .read_packet = ff_pcm_read_packet, \ > - .read_seek = ff_pcm_read_seek, \ > + .read_packet = pcm_dec_read_packet, \ > + .read_seek = pcm_dec_read_seek, \ > .raw_codec_id = codec, \ > __VA_ARGS__ \ > }; A quick test shows that PTS and DTS are already set generically for pcm formats (unless the AVFMT_FLAG_NOFILLIN flag is set). If it is not in your usecase, then you should provide details about this (preferably by opening a ticket on trac). - Andreas _______________________________________________ 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".