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 9A19546ECF for ; Thu, 24 Aug 2023 19:54:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 296BE68C64F; Thu, 24 Aug 2023 22:54:36 +0300 (EEST) Received: from mail-oa1-f49.google.com (mail-oa1-f49.google.com [209.85.160.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EDA4D68C230 for ; Thu, 24 Aug 2023 22:54:29 +0300 (EEST) Received: by mail-oa1-f49.google.com with SMTP id 586e51a60fabf-1ccb6a69b13so122985fac.2 for ; Thu, 24 Aug 2023 12:54:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692906868; x=1693511668; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=RShzfSvr+QZ0emPiUfHFBsow8f17wf9BDQ+y0z8wkRs=; b=iEcMOAbi8Mz8b3pwThY51ETGNw8zjrV8pQsKb6DQFOgdWgsmKErov29UT2Y/NyjU1/ Fa5pPWhyKTU8HedOCjL7AiW2gaMlif1DjAFH+dA4GwOPAnrGGSs6G4aGl5c11STDdYdT 4ImY6AyVrmTtfTOmaB3s87qACgcU64UzigT4x28qDXV0s2dHeUasPw2vlfIzMzgfIvMk WqTthmcwga4NVE3N93R4JLyKjfvYlr1Eu/ZI5osDIVLynAkpeIq1KTIq4yiUVziuEhDo BnYRN1EfEubSmHcaMJXSQCP3Z55uU55C8uXJPd4e+lyS6OfVM8ArqEV8aX4fcGJJEqWu 8I5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692906868; x=1693511668; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=RShzfSvr+QZ0emPiUfHFBsow8f17wf9BDQ+y0z8wkRs=; b=YmyPRdPmalWLXo5gtZImDBNYvG955wL0zwrfvEVMR//tfG9KWwUORIsBORSvl6hELQ j5VB7CBGZz9UHpgggNNxfPYSnRxxNXBoKxm2YOU80UwM6mc0mQ/4CMIA3e4/sFWU6awb 1mC0kDPJD+rmwZJmxoHmlPiERcHi3tC+81d6V08har1VqirMEF872U5NtglLgSXE4Xc8 cuKwRQICkCgBw5WRpckpfRMy0YoNRr1VinXmOqZK4SS3a2XWq0kS+j2h+vzDPBSTkFIW yx41pV4SKxdQkJQ73RamwSDcxvwHiTES9/e6uL4sVoh9cGzx3ll719ESemPPziD2Pcor XZAQ== X-Gm-Message-State: AOJu0YwxquDVjyGAyJyTDRd4y+DeQ+nqCLy1lghogPgv3LhXX6silp9W K7PqmEb6iEoBOTCNAM6+YfE2XU/uDQE= X-Google-Smtp-Source: AGHT+IFezydFUulcj0JWMirKenMdnz4xNNdeKa6dsIG1FEtFqazFOEjxitcOGTLWtEQxyaohkgAeMQ== X-Received: by 2002:a05:6870:470c:b0:1cc:e169:96bf with SMTP id b12-20020a056870470c00b001cce16996bfmr757678oaq.39.1692906867839; Thu, 24 Aug 2023 12:54:27 -0700 (PDT) Received: from [192.168.0.16] (host197.190-225-105.telecom.net.ar. [190.225.105.197]) by smtp.gmail.com with ESMTPSA id n5-20020a056870a44500b001cc6b64d5f3sm170248oal.44.2023.08.24.12.54.26 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 24 Aug 2023 12:54:27 -0700 (PDT) Message-ID: <7a88e877-5697-80fa-924d-0b0175643804@gmail.com> Date: Thu, 24 Aug 2023 16:54:28 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.14.0 To: ffmpeg-devel@ffmpeg.org References: Content-Language: en-US From: James Almer In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH] OSQ lossless audio format 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 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On 8/24/2023 6:52 AM, Paul B Mahol wrote: > Patches attached. > > Stereo decoding have some issues with some predictors so not yet bitexact. > > Please comment. > +static av_cold int osq_close(AVCodecContext *avctx) > +{ > + OSQContext *s = avctx->priv_data; > + > + av_freep(&s->bitstream); > + s->bitstream_size = 0; > + > + for (int ch = 0; ch < avctx->ch_layout.nb_channels; ch++) FFMIN(avctx->ch_layout.nb_channels, 2); This being a FF_CODEC_CAP_INIT_CLEANUP decoder, osq_close() could be called before osq_init() has a chance to validate nb_channels. > + av_freep(&s->decode_buffer[ch]); > + > + return 0; > +} > + > static av_cold int osq_init(AVCodecContext *avctx) > +{ > + OSQContext *s = avctx->priv_data; > + > + if (avctx->extradata_size < 48) > + return AVERROR(EINVAL); > + > + if (avctx->extradata[0] != 1) { > + av_log(avctx, AV_LOG_ERROR, "Unsupported version.\n"); > + return AVERROR_INVALIDDATA; > + } > + > + avctx->sample_rate = AV_RL32(avctx->extradata + 4); > + if (avctx->sample_rate < 1) > + return AVERROR_INVALIDDATA; > + > + avctx->ch_layout.nb_channels = avctx->extradata[3]; You'd need to uninit ch_layout first, as the user may have filled it with something (as is the case with the lavf demuxer). > + if (avctx->ch_layout.nb_channels < 1) > + return AVERROR_INVALIDDATA; > + > + switch (avctx->extradata[2]) { > + case 8: avctx->sample_fmt = AV_SAMPLE_FMT_U8P; break; > + case 16: avctx->sample_fmt = AV_SAMPLE_FMT_S16P; break; > + case 20: > + case 24: > + case 28: > + case 32: avctx->sample_fmt = AV_SAMPLE_FMT_S32P; break; > + default: return AVERROR_INVALIDDATA; > + } > + > + s->nb_samples = AV_RL64(avctx->extradata + 16); > + s->frame_samples = AV_RL16(avctx->extradata + 8); > + s->max_framesize = (s->frame_samples * 16 + 1024) * avctx->ch_layout.nb_channels; Do you even need to propagate this header using extradata? You can set codecpar's sample_fmt and frame_size in the demuxer, much like you're doing for sample_rate and ch_layout. There doesn't seem to be a value that can't be propagated using the proper existing fields here. > + > + s->bitstream = av_calloc(s->max_framesize + AV_INPUT_BUFFER_PADDING_SIZE, sizeof(*s->bitstream)); av_mallocz(). sizeof(*s->bitstream) is 1. > + if (!s->bitstream) > + return AVERROR(ENOMEM); > + > + for (int ch = 0; ch < avctx->ch_layout.nb_channels; ch++) { > + s->decode_buffer[ch] = av_calloc(s->frame_samples + 4, > + sizeof(*s->decode_buffer[ch])); > + if (!s->decode_buffer[ch]) > + return AVERROR(ENOMEM); > + } > + > + s->pkt = avctx->internal->in_pkt; > + > + return 0; > +} _______________________________________________ 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".