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 ESMTPS id 54AB94D7F9 for ; Mon, 24 Feb 2025 13:52:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B79C268CAEA; Mon, 24 Feb 2025 15:52:05 +0200 (EET) Received: from out203-205-221-149.mail.qq.com (out203-205-221-149.mail.qq.com [203.205.221.149]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 15E1968C5B1 for ; Mon, 24 Feb 2025 15:51:56 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1740405104; bh=W34O1+W08ZxDgGXhr6pt9ZjyUdD0Kg0asXarTjQeWyA=; h=From:To:Cc:Subject:Date; b=K5DGxJFXNX5+KKEi+xN7bz/vZxnD8zYnmZHRwYKXrgTVoLuV6LoHWJDh4AmQ88mfu SCZnn5O35f28fXu/ieqvr7Mwpz8ugv+rNUXyREql2xYhFOtKQkZ4kNMTEWEZ6BkzdY ERupWzAmeMcos5+JzGyIxcgYzJN4g07KwSExUL7o= Received: from localhost.localdomain ([119.147.10.242]) by newxmesmtplogicsvrszc11-0.qq.com (NewEsmtp) with SMTP id CEB9A87A; Mon, 24 Feb 2025 21:51:43 +0800 X-QQ-mid: xmsmtpt1740405103twchcq93f Message-ID: X-QQ-XMAILINFO: Nq1uWKlIb9DM4gZcubkjiz2IPMHYUuC7oaAPxvucPTBgCyos772oYpX5E+vHjh N5087LxDNFSQQTAmpGSCWuKX0Q+i5pvponnzs7Shq8WjzjxeYCMLojkbR6ckeMEVstBDdmqh9gw4 cisBU+TFWoFsNG7ZPjecIjUyrgQh513C4f8fypdQg/4N9XYQ8NHdi2N3fQC939duBme+6ZoDfTGn 4fArpAoSYJXE7gmVTOBGK7+4JPCZjGYOVeOHyJqANkPt4pIuMYZaaiCQ6TKYLHzC9cntaqCNIT6y IfiTpf3nQzrDhvMmLh6/NDor3CPCpgKBbgB+3g+Yvo1h9T/LxE/FWl88H7hZl9AJmNrME1Je8pni ny6vgsTJI4tgS52raxAL6f/hUbcs4BElWy1KFQKMBzs3+BLeDBVImHoyrGOGnRefAqbKG4u1J/QL rmCGzCywJngzibkqOgd/Bb7IEWaQAsWLJ6h2gHCpDiUMw71GizqkyO/JiImDyY8lCzJhoR1kaFGm n8VgMhcWWqsUJppWYBDA1yFJO4F/bSNfT13IMjYk6WgW3GY1ZvBNnjOFk4t4jOpQZ8uYbpEjwi8e KaO1tdSnNUiqeQeSOoybP05Nv1PYzGFp7KO9Uf/pAr0bqN8sxv3GbnrO7cedHnWOCoHkBkz2L3Oj rt0TMx0nFs4jr3RfDcYAWZXwCHTKMHKjzuvT3bid+tOoYdRubzYWCaM7llrp5QtcV9Uw0bPzuRGQ MTfuCA97BszfdwuFBgK4CxIHW8o71iGBM+p9kMqHGA7AF526NNwdcTQHTKvzO2d0vSaf6yH4RqyS QwQjbAx3UNVp+bmhm4mNaFso5JTDQklO9RulVzx1Xs6ASUW0ZjtEA4VkBsHWRF2K3xlBj04E70Dw vwTQ6L3Z03DJi0ZJFGIOsRol1gqFEHMJHBv+Onc9yVuqCndKg3+LbVYNS1cDHpsFE6HctsS+PwAy 2rfVootTumLMyYAxUvz9j1Z1pA7pzy X-QQ-XMRINFO: NI4Ajvh11aEj8Xl/2s1/T8w= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Mon, 24 Feb 2025 21:51:32 +0800 X-OQ-MSGID: <20250224135137.81434-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.46.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/3] avformat/movenc: Add AVS3 support 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 Cc: Zhao Zhili Content-Type: multipart/mixed; boundary="===============8877065082958522949==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --===============8877065082958522949== Content-Type: text/plain; charset=y Content-Transfer-Encoding: 8bit From: Zhao Zhili 'avs3' is registered at mp4ra.org. The Avs3ConfigurationBox 'av3c' inside 'avs3' hasn't been registered yet, but is specified by the AVS3 spec. --- libavformat/movenc.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 76dce9e6e5..a6fb48d4ad 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -1540,6 +1540,37 @@ static int mov_write_avcc_tag(AVIOContext *pb, MOVTrack *track) return update_size(pb, pos); } +/* AVS3 Intelligent Media Coding + * Information Technology – Intelligent Media Coding – Part 6: Intelligent Media Format + */ +static int mov_write_av3c(AVIOContext *pb, const uint8_t *data, int len) +{ + if (len < 4) + return AVERROR_INVALIDDATA; + + if (data[0] == 1) { + // In Avs3DecoderConfigurationRecord format + avio_write(pb, data, len); + return 0; + } + + avio_w8(pb, 1); // version + avio_wb16(pb, len); // sequence_header_length + avio_write(pb, data, len); // sequence_header + avio_w8(pb, 0xFC); // Only support library_dependency_idc = 0 + + return 0; +} + +static int mov_write_av3c_tag(AVIOContext *pb, MOVTrack *track) +{ + int64_t pos = avio_tell(pb); + avio_wb32(pb, 0); + ffio_wfourcc(pb, "av3c"); + mov_write_av3c(pb, track->vos_data, track->vos_len); + return update_size(pb, pos); +} + static int mov_write_vpcc_tag(AVFormatContext *s, AVIOContext *pb, MOVTrack *track) { int64_t pos = avio_tell(pb); @@ -2738,6 +2769,8 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex } else if (track->par->codec_id == AV_CODEC_ID_R10K) { if (track->par->codec_tag == MKTAG('R','1','0','k')) mov_write_dpxe_tag(pb, track); + } else if (track->par->codec_id == AV_CODEC_ID_AVS3) { + mov_write_av3c_tag(pb, track); } else if (track->vos_len > 0) mov_write_glbl_tag(pb, track); @@ -8646,6 +8679,8 @@ static const AVCodecTag codec_mp4_tags[] = { { AV_CODEC_ID_PCM_F64BE, MOV_MP4_FPCM_TAG }, { AV_CODEC_ID_PCM_F64LE, MOV_MP4_FPCM_TAG }, + { AV_CODEC_ID_AVS3, MKTAG('a', 'v', 's', '3') }, + { AV_CODEC_ID_NONE, 0 }, }; #if CONFIG_MP4_MUXER || CONFIG_PSP_MUXER -- 2.46.0 --===============8877065082958522949== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --===============8877065082958522949==--