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 317E544061 for ; Fri, 24 Feb 2023 18:29:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 80B6968C193; Fri, 24 Feb 2023 20:29:07 +0200 (EET) Received: from out162-62-58-216.mail.qq.com (out162-62-58-216.mail.qq.com [162.62.58.216]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8994268C12D for ; Fri, 24 Feb 2023 20:28:57 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1677263334; bh=u1LJKzURC6Lagk+HAOpJwaYzmlqBKyLNmUYxVMqspq8=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=W5pECRj/5WOPH6859q4tJEYPyxYUobOQS+hroc8RhdNaNN0JJ4aL+AjAPh6QqQmhU n7kkn5T2aWk+SMNuafpLEw1BYvyidVtQtUd1p4GZfTrvsXky5V99RWOKzxHKpA1ogK lWezvPfpbidY6QsiAvNnTbf+bskHOCKqmxFaKv5M= Received: from localhost.localdomain ([113.118.101.228]) by newxmesmtplogicsvrszb1-0.qq.com (NewEsmtp) with SMTP id 7333FEEC; Sat, 25 Feb 2023 02:28:51 +0800 X-QQ-mid: xmsmtpt1677263333tj5pyh4ce Message-ID: X-QQ-XMAILINFO: MmpliBmRb3iC70PQSPk0D2/i8LglwcwItyDVb8pBqp+LX9NRVZadqJfK3UacA2 pnR+PqwmV/HoJO8lKudSkMnMsxknUAbAUHSlPJTk2eXb+T1XD+iBkhbmCfMBruY920yI4GEw1nLD MQJM3WeepSBO2JSJ32xmDPJMbI73+xd6N1LtNKe+Sfe09K0L5JyTsdrzFtXqNEW/i76ybWNnV0Cb bbejO0IG21c5ty0XILI8isQ6gBRkFVZ5G8LtA48le0bv/DjmENKWsfzmbj4WkG9bKyJWTi2sRohT S8rR89/nSatUaY06yMAtOKZkmIp2B4r8nN0Y7PKVkPydUnxDcHuRR5pTYphoRKWcJ4mr69VMMr/N ZVl56mdXXkzcZCL0iNVEKZkvJX7m+owOEwos5hyOkRCH8+Ic3Z3nBuEbgdEaTdZBzIdtgCmdH7Uk AsZXJJDIjWNm7RFw/VVU2ajuisMHDpIUlivFwFyh4CNt6RR5SutJmXya14bC1VqrVmpXhOvL9PTt bH91vb0zk5ITUmzUH2jZF34P81g+6kQSCPbwr9wvpTO5oI1SR2Xx1cRY0w6Zffokjy0cjroDbt65 uf9XseE/suIUXjGLysBuIiKJCimPkA8td06ra/JLZwhChqu8oKfuZ/r0PDqNtff4cZZtIworOGHl lsh/HH9NCVYJkXPFDY2EQ5n5xbws6kntPAFHVZx53yf91zUvWSjZGEgKkiQ/Hb20ksm34+r+0DGj GK2Gx1+iXE794Wx6/KHm151gaYKCnubjjGEOlPfQd1VnQWYRmuixIyONQdeURn1W8lWLBF6RjUlC GbP/DoW+E6nvDKE8ErVMBrj/+Xvtve9A/WSVWN3ZmSknJLK4w467Nobse92tLwHZcc7qfymXp1jc ocS+RH4ivFii5LuGPF1LflY2F6vzTqZCy4kD+O6PRFReUsu+LzR/riVEBUltL2n9mMwbOCwwhS+Z iiKCyRLZmRWiurBQoaGu1eF8wiT8RHNvh3efkcbttgi5yTkI2+daLbWkNIgwCOqoGtAM086rU= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sat, 25 Feb 2023 02:28:45 +0800 X-OQ-MSGID: <20230224182849.426345-5-quinkblack@foxmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230224182849.426345-1-quinkblack@foxmail.com> References: <20230224182849.426345-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 4/8] avformat/mov: fix ISO/IEC 23003-5 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: 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: From: Zhao Zhili Missing floating-point formats support. Signed-off-by: Zhao Zhili --- libavformat/mov.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index a9911c0f79..e75cf2f4b7 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1591,6 +1591,10 @@ static int mov_read_pcmc(MOVContext *c, AVIOContext *pb, MOVAtom atom) { int format_flags; int version, flags; + int pcm_sample_size; + AVFormatContext *fc = c->fc; + AVStream *st; + MOVStreamContext *sc; if (atom.size < 6) { av_log(c->fc, AV_LOG_ERROR, "Empty pcmC box\n"); @@ -1608,6 +1612,49 @@ static int mov_read_pcmc(MOVContext *c, AVIOContext *pb, MOVAtom atom) } format_flags = avio_r8(pb); + pcm_sample_size = avio_r8(pb); + + if (fc->nb_streams < 1) + return AVERROR_INVALIDDATA; + + st = fc->streams[fc->nb_streams - 1]; + sc = st->priv_data; + + if (sc->format == MKTAG('f', 'p', 'c', 'm')) { + switch (pcm_sample_size) { + case 32: + st->codecpar->codec_id = AV_CODEC_ID_PCM_F32BE; + break; + case 64: + st->codecpar->codec_id = AV_CODEC_ID_PCM_F64BE; + break; + default: + av_log(fc, AV_LOG_ERROR, "invalid pcm_sample_size %d for 'fpcm'\n", + pcm_sample_size); + return AVERROR_INVALIDDATA; + } + } else if (sc->format == MKTAG('i', 'p', 'c', 'm')) { + switch (pcm_sample_size) { + case 16: + st->codecpar->codec_id = AV_CODEC_ID_PCM_S16BE; + break; + case 24: + st->codecpar->codec_id = AV_CODEC_ID_PCM_S24BE; + break; + case 32: + st->codecpar->codec_id = AV_CODEC_ID_PCM_S32BE; + break; + default: + av_log(fc, AV_LOG_ERROR, "invalid pcm_sample_size %d for 'ipcm'\n", + pcm_sample_size); + return AVERROR_INVALIDDATA; + } + } else { + av_log(fc, AV_LOG_ERROR, "'pcmC' with invalid sample entry '%s'\n", + av_fourcc2str(sc->format)); + return AVERROR_INVALIDDATA; + } + if (format_flags & 1) // indicates little-endian format. If not present, big-endian format is used set_last_stream_little_endian(c->fc); -- 2.34.1 _______________________________________________ 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".