From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 7A6924C27D for ; Thu, 9 Oct 2025 11:24:30 +0000 (UTC) Authentication-Results: ffbox; dkim=fail (body hash mismatch (got b'wz38VZMo/1mAT2kHS5xyXxuJxtpYs2B1Mz7RtBBIsvs=', expected b'LCtctosK0hHGhuV0DxXUUedjLUsoE9nc+x6AFn7TzII=')) header.d=sobey.com header.a=rsa-sha256 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ffmpeg.org; i=@ffmpeg.org; q=dns/txt; s=mail; t=1760009062; h=date : message-id : mime-version : to : reply-to : subject : list-id : list-archive : list-archive : list-help : list-owner : list-post : list-subscribe : list-unsubscribe : from : cc : content-type : content-transfer-encoding : from; bh=Y1MikgyI8/5g9OmiLdRCca4VXzoXpKdtzYybqtHJlos=; b=qWE8SBP8S1ugR8w+KLFZgjDzuIYCNgQE6n7equAAflsF8+liL2+KUWPOGH3ehxMw6pFm1 icJNqAErq0eaeUsSbkWXQkXGiNEBA/Bb2qC/e3i/KJ/Ovz0HQ1Wp/Fo+5QjNBPMR/sLLD9k aVEzyPzTgtbi7u9U0vM8pXrJ6mlf4+dQEuBlSVseXRLG66cvCy0IYYJXI2iOQOWRMMHsU+v DgbhRAGpCOW+pb+7EyItZmhjsBawm3eaQJN8a6FmwiJAEe+o/6yOWFXmLNyXBLASxjuuB5V UE3IUfj58QA5r+KaMS7z9Nc2DKWi9Pwd5W9N0gg15QjvMzmmIO7DejUde4YQ== Received: from [172.18.0.2] (unknown [172.19.0.4]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id B11C268F19F; Thu, 9 Oct 2025 14:24:22 +0300 (EEST) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=ffmpeg.org; s=arc; t=1760009046; b=RpIKVl+850Ye53wvCYw6+xIS1h1+heiVUveXlnxa3iTuXhJfEB70pL6t8tu5PiJ/pfcI9 iHTdpIM/DqVvHL32MZfVArNUnkOnfXObxmp/5jKpgA5nDGAVZFtz5XliLVmlNpA76ON+aZ+ Xe23uijwQZQhYa+aM+kwMn/SVV+/4BRE5JXhWgWMesJ0O+374ZCigcVV5Aa69nOEX1u5Trw eVa73hypFGOSoGmKPIN++G55x0+Qe6LPOI1rynl9db1fFl5gbm1ZBoLypkNqPrM/LqRZKod Z178MqB+ix7wHs2r7HaxNYRRNjxnE/o0VQ5Je4LHLRQwEUJLmmmRdHh+wgKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=ffmpeg.org; s=arc; t=1760009046; h=from : sender : reply-to : subject : date : message-id : to : cc : mime-version : content-type : content-transfer-encoding : content-id : content-description : resent-date : resent-from : resent-sender : resent-to : resent-cc : resent-message-id : in-reply-to : references : list-id : list-help : list-unsubscribe : list-subscribe : list-post : list-owner : list-archive; bh=wz38VZMo/1mAT2kHS5xyXxuJxtpYs2B1Mz7RtBBIsvs=; b=J4JG7qZX6B/XgZDhVodDrv9m0HrPMyRqk8h0gOAMIXrFUm5RyLfgpo5rceKLi+j+Kr1pk Z/6J3TVUWiv4TcZRAvxrT0lWtj4FD8FvRiT6uShVWZpHmiL7C4nmYDa7YurQKiqzQ7tkEYU FnC3DXjBQxvLKfGg1kQ+HRmLWtCC4rvRbIe6BwEKkpGvKVV7XMP1PFkFaeuTyKo9QDcWbHf SqogqibBZmNzBa9d0wCz4N8mLEyUghyV/pLQiWpL03wv5MYGOUDlvq542qyH9v/quvxQ/Sd QYwqe1e/Pawg9W41dut8qGwfrsM/PFlpFPvWor8WlWKPODgtraCUZPhuxQ+g== ARC-Authentication-Results: i=1; ffmpeg.org; dkim=pass header.d=sobey.com; arc=none; dmarc=none Authentication-Results: ffmpeg.org; dkim=pass header.d=sobey.com; arc=none (Message is not ARC signed); dmarc=none Received: from lf-2-34.ptr.blmpb.com (lf-2-34.ptr.blmpb.com [101.36.218.34]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 5039668EFFA for ; Thu, 9 Oct 2025 14:23:53 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=feishu2508080057; d=sobey.com; t=1760009027; h=from:subject: mime-version:from:date:message-id:subject:to:cc:reply-to:content-type: mime-version:in-reply-to:message-id; bh=LCtctosK0hHGhuV0DxXUUedjLUsoE9nc+x6AFn7TzII=; b=06RJMvKoMThYwFuo/8aeNmDvQjnskQIFjtgE+Xn3H25gqzHFP7+enD6mtBfYJ0ihQYVcht MhzUBBTdMiOLT65HYn0Y/YhDbFOPsq5+D4afm5qWG/5w19anGQGgnClm9vEpGFsAx7hNuz LF13iKHJ6NACBAmXjNf2C5DSIAV2SFJAXfMO0Z/03jOHXyz3GKdxyVrLvGITIA8HOioICt FMJ+rUIF7lrNi5buVnNN0lEPVK4K1T22I0JQiyiikVceNlH6OPtlk2uz5AOHhQZzsi24Du Em19uYZJJX18suHQN+eMUheaGyoN3cI5hE16R/w+1tj1e8xcXo2NJDdT96QSzQ== Date: Thu, 9 Oct 2025 19:21:09 +0800 Message-Id: <20251009112109.11309-1-zhangxu@sobey.com> Mime-Version: 1.0 X-Lms-Return-Path: To: X-Mailer: git-send-email 2.25.1 X-Original-From: ZhangXu Received: from DEV-ZX.localdomain ([182.150.63.207]) by smtp.feishu.cn with ESMTPS; Thu, 09 Oct 2025 19:23:44 +0800 Message-ID-Hash: IS75EQSGTE74Z7DIKLLMPOEHHKBC3OM5 X-Message-ID-Hash: IS75EQSGTE74Z7DIKLLMPOEHHKBC3OM5 X-MailFrom: SRS0=jpwj=4S=sobey.com=zhangxu@ffmpeg.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-ffmpeg-devel.ffmpeg.org-0; header-match-ffmpeg-devel.ffmpeg.org-1; header-match-ffmpeg-devel.ffmpeg.org-2; header-match-ffmpeg-devel.ffmpeg.org-3; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list Reply-To: FFmpeg development discussions and patches Subject: [FFmpeg-devel] [PATCH] libavformat/asfdec_f: add asf video average framerate support List-Id: FFmpeg development discussions and patches Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: ZhangXu via ffmpeg-devel Cc: zhangxu Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Archived-At: List-Archive: List-Post: From: zhangxu Refer to Advanced Systems Format (ASF) Specification Parse AverageTimePerFrame from ExtendedStreamPropertiesObject Signed-off-by: ZhangXu --- libavformat/asfdec_f.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libavformat/asfdec_f.c b/libavformat/asfdec_f.c index 3b46fe01f6..aaff5278d9 100644 --- a/libavformat/asfdec_f.c +++ b/libavformat/asfdec_f.c @@ -63,6 +63,8 @@ typedef struct ASFStream { int64_t packet_pos; + int64_t avg_time_dur; ///< the average time duration + uint16_t stream_language_index; int palette_changed; @@ -481,6 +483,7 @@ static int asf_read_ext_stream_properties(AVFormatContext *s) int ext_len, payload_ext_ct, stream_ct, i; uint32_t leak_rate, stream_num; unsigned int stream_languageid_index; + uint64_t stream_avg_time_dur; avio_rl64(pb); // starttime avio_rl64(pb); // endtime @@ -498,7 +501,10 @@ static int asf_read_ext_stream_properties(AVFormatContext *s) if (stream_num < 128) asf->streams[stream_num].stream_language_index = stream_languageid_index; - avio_rl64(pb); // avg frametime in 100ns units + stream_avg_time_dur = avio_rl64(pb); // avg frametime in 100ns units + if (stream_num < 128) + asf->streams[stream_num].avg_time_dur = stream_avg_time_dur; + stream_ct = avio_rl16(pb); // stream-name-count payload_ext_ct = avio_rl16(pb); // payload-extension-system-count @@ -838,6 +844,10 @@ static int asf_read_header(AVFormatContext *s) i, st->codecpar->codec_type, asf->dar[i].num, asf->dar[i].den, st->sample_aspect_ratio.num, st->sample_aspect_ratio.den); + //this field set for video + if (asf->streams[i].avg_time_dur && st->codecpar->codec_type == AVMEDIA_TYPE_VIDEO) + av_reduce(&st->avg_frame_rate.num, &st->avg_frame_rate.den, 10000000, asf->streams[i].avg_time_dur, INT_MAX); + // copy and convert language codes to the frontend if (asf->streams[i].stream_language_index < 128) { const char *rfc1766 = asf->stream_languages[asf->streams[i].stream_language_index]; -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list -- ffmpeg-devel@ffmpeg.org To unsubscribe send an email to ffmpeg-devel-leave@ffmpeg.org