Received: by 2002:a05:7412:da14:b0:e2:908c:2ebd with SMTP id fe20csp456867rdb; Fri, 6 Oct 2023 08:22:02 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEEdMj+U8eUxXwHLPnQDNi8Pdd2Nu+zWmxt2hwNGmagVeFrJtn7ESD3Di0weC1S2NEdfCc/ X-Received: by 2002:a17:90b:1c0f:b0:261:2824:6b8c with SMTP id oc15-20020a17090b1c0f00b0026128246b8cmr7087002pjb.13.1696605721867; Fri, 06 Oct 2023 08:22:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696605721; cv=none; d=google.com; s=arc-20160816; b=wkVu5/F9vYpFYy02QyA9bLp+XPW2PpM2JPDxF1MxyiD9BS2NdHL5v1ePLDrsKnfCHK /g0Ro0GRmNLpODM3t5QFUjwr6noNiiry0gIH5hRmoZmNFGyoOUV234QCjGWqXBH1KTD8 PVQpy1XC9AyaPSydV0ZiBYblq/21l3l3R56sxAtdT4+aHcZ2btX4Dbz4iYp+88Hf5PZt wGWktG5AmJGnD0kmBA9z4mW40ND736crvwwmS0aFf5mmMGC0MzvW6J9WagctOwywxiTK 0C6XbxvAlD5TL48y0tpF4uTDEVSEUev7W/NI7Q4Vl3aqZz12cmZIG9S3HsDHmch8KCaQ QSCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :feedback-id:references:in-reply-to:message-id:subject:from:to:date :dkim-signature; bh=ON7ZqjhEcRQ3MXowqXGZHD79quHHAK5cE5iuqzkNAHw=; fh=1k0KE6Nbv1YgqO/RsDf4B6lcgwBTi+MizEZAq5LDENM=; b=cBS9CLla+5355euvIfofoV0Mrrof03iFGLw2zQjI1RAYCYBmJV5oqmcBimaVBhhDD5 wuusSLCmb53vhNx1I3q+zUpjpDPc0CcmmQjybW5weTB2M9TlQ/esnAQn/nzYq+Dp6aj9 Bf2yvuGeJM8T5e9ElUMYeFCPNkKKclIdDGtFJx6jUKe6dAzSSk1bNFpfuYgfkQ1wLYU6 7ZpfddkzPxnnaPajMA7gPCY8IF4FUcEJrsMYyQUI+jBxASpQUoHfzaWboK4HHj42Ef9F xRj2rBkxxElz1NGEMHRRwtFo++FXkFY7hwHRMIy5cgb99pCCkuNdp97gpa7hCZiWOr52 trRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail3 header.b=PiB4rXCc; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id na15-20020a17090b4c0f00b0025eeb3cc4b2si4332341pjb.9.2023.10.06.08.22.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Oct 2023 08:22:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@protonmail.com header.s=protonmail3 header.b=PiB4rXCc; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=protonmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 24D578373436; Fri, 6 Oct 2023 08:21:59 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232691AbjJFPVs (ORCPT + 99 others); Fri, 6 Oct 2023 11:21:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33952 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232718AbjJFPVr (ORCPT ); Fri, 6 Oct 2023 11:21:47 -0400 Received: from mail-0201.mail-europe.com (mail-0201.mail-europe.com [51.77.79.158]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B1959F for ; Fri, 6 Oct 2023 08:21:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1696605701; x=1696864901; bh=ON7ZqjhEcRQ3MXowqXGZHD79quHHAK5cE5iuqzkNAHw=; h=Date:To:From:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=PiB4rXCcBnPe9izaoLeH0fTUaQD07KqM0HgW9JE69xlRJ4zZK1gisw0PzIWRBt1/j X9hDWTvYpsJRCw2DPqG4ac/lkAx5YUlMMW/90Dtdqsk+9sdUUjs9JKTqE26U1xtVCX 2ioE31sHKwIfebFZ+tb0WvVk34wclBiFa3HaHaqVyR1ZSuPhGzaTG+cFVV414/LhrD YMd+t2u2H7ssHtIIHH6z0AAwS4s4FPHvNHJtk/2VLzkhuy45qMLVJA0vURsiJTFbvU zZR4VMHKsSuTwCxGz+Ph1WBVJaP9eiGU9IpD+Ou0ggrsONAeXHf6HD0r68mvDjVllq t4xEkoUDO2n+w== Date: Fri, 06 Oct 2023 15:21:36 +0000 To: linux-bluetooth@vger.kernel.org, Arkadiusz Bokowy , Marcel Holtmann , =?utf-8?Q?Pali_Roh=C3=A1r?= From: =?utf-8?Q?Barnab=C3=A1s_P=C5=91cze?= Subject: Re: [PATCH SBC 1/1] sbc: Fix mSBC reinitialization Message-ID: In-Reply-To: <20230804192525.67067-1-arkadiusz.bokowy@gmail.com> References: <20230804192525.67067-1-arkadiusz.bokowy@gmail.com> Feedback-ID: 20568564:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=3.0 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_SBL_CSS, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Fri, 06 Oct 2023 08:21:59 -0700 (PDT) X-Spam-Level: ** Hi 2023. augusztus 4., p=C3=A9ntek 21:25 keltez=C3=A9ssel, Arkadiusz Bokowy =C3=ADrta: > Commit 10310fb has introduced a function for mSBC reinitialization. > However, it did not set msbc private flag, which is checked e.g. by > sbc_set_defaults() and sbc_get_frame_length() functions. >=20 > This commit fixes this, so now after reinitialization this library > properly packs/unpacks mSBC frames and the sbc_get_frame_length() > function returns correct frame length. I would like to see this issue fixed. Is there any way we can move forward? If there are any issues preventing the merging of this change, I would be happy to address them if Arkadiusz has no time. Regards, Barnab=C3=A1s P=C5=91cze > --- > sbc/sbc.c | 71 ++++++++++++++++++++++++++----------------------------- > 1 file changed, 33 insertions(+), 38 deletions(-) >=20 > diff --git a/sbc/sbc.c b/sbc/sbc.c > index d059906..c35b564 100644 > --- a/sbc/sbc.c > +++ b/sbc/sbc.c > @@ -1010,17 +1010,13 @@ static void sbc_set_defaults(sbc_t *sbc, unsigned= long flags) > { > =09struct sbc_priv *priv =3D sbc->priv; >=20 > -=09if (priv->msbc) { > -=09=09priv->pack_frame =3D msbc_pack_frame; > -=09=09priv->unpack_frame =3D msbc_unpack_frame; > -=09} else { > -=09=09priv->pack_frame =3D sbc_pack_frame; > -=09=09priv->unpack_frame =3D sbc_unpack_frame; > -=09} > +=09priv->pack_frame =3D sbc_pack_frame; > +=09priv->unpack_frame =3D sbc_unpack_frame; >=20 > =09sbc->flags =3D flags; > =09sbc->frequency =3D SBC_FREQ_44100; > =09sbc->mode =3D SBC_MODE_STEREO; > +=09sbc->allocation =3D SBC_AM_LOUDNESS; > =09sbc->subbands =3D SBC_SB_8; > =09sbc->blocks =3D SBC_BLK_16; > =09sbc->bitpool =3D 32; > @@ -1033,6 +1029,30 @@ static void sbc_set_defaults(sbc_t *sbc, unsigned = long flags) > #endif > } >=20 > +static void sbc_set_defaults_msbc(sbc_t *sbc, unsigned long flags) > +{ > +=09struct sbc_priv *priv =3D sbc->priv; > + > +=09priv->msbc =3D true; > +=09priv->pack_frame =3D msbc_pack_frame; > +=09priv->unpack_frame =3D msbc_unpack_frame; > + > +=09sbc->flags =3D flags; > +=09sbc->frequency =3D SBC_FREQ_16000; > +=09sbc->mode =3D SBC_MODE_MONO; > +=09sbc->allocation =3D SBC_AM_LOUDNESS; > +=09sbc->subbands =3D SBC_SB_8; > +=09sbc->blocks =3D MSBC_BLOCKS; > +=09sbc->bitpool =3D 26; > +#if __BYTE_ORDER =3D=3D __LITTLE_ENDIAN > +=09sbc->endian =3D SBC_LE; > +#elif __BYTE_ORDER =3D=3D __BIG_ENDIAN > +=09sbc->endian =3D SBC_BE; > +#else > +#error "Unknown byte order" > +#endif > +} > + > SBC_EXPORT int sbc_init(sbc_t *sbc, unsigned long flags) > { > =09if (!sbc) > @@ -1056,33 +1076,13 @@ SBC_EXPORT int sbc_init(sbc_t *sbc, unsigned long= flags) >=20 > SBC_EXPORT int sbc_init_msbc(sbc_t *sbc, unsigned long flags) > { > -=09struct sbc_priv *priv; > - > -=09if (!sbc) > -=09=09return -EIO; > - > -=09memset(sbc, 0, sizeof(sbc_t)); > - > -=09sbc->priv_alloc_base =3D malloc(sizeof(struct sbc_priv) + SBC_ALIGN_M= ASK); > -=09if (!sbc->priv_alloc_base) > -=09=09return -ENOMEM; > - > -=09sbc->priv =3D (void *) (((uintptr_t) sbc->priv_alloc_base + > -=09=09=09SBC_ALIGN_MASK) & ~((uintptr_t) SBC_ALIGN_MASK)); > - > -=09memset(sbc->priv, 0, sizeof(struct sbc_priv)); > - > -=09priv =3D sbc->priv; > -=09priv->msbc =3D true; > +=09int err; >=20 > -=09sbc_set_defaults(sbc, flags); > +=09err =3D sbc_init(sbc, flags); > +=09if (err < 0) > +=09=09return err; >=20 > -=09sbc->frequency =3D SBC_FREQ_16000; > -=09sbc->blocks =3D MSBC_BLOCKS; > -=09sbc->subbands =3D SBC_SB_8; > -=09sbc->mode =3D SBC_MODE_MONO; > -=09sbc->allocation =3D SBC_AM_LOUDNESS; > -=09sbc->bitpool =3D 26; > +=09sbc_set_defaults_msbc(sbc, flags); >=20 > =09return 0; > } > @@ -1095,12 +1095,7 @@ SBC_EXPORT int sbc_reinit_msbc(sbc_t *sbc, unsigne= d long flags) > =09if (err < 0) > =09=09return err; >=20 > -=09sbc->frequency =3D SBC_FREQ_16000; > -=09sbc->blocks =3D MSBC_BLOCKS; > -=09sbc->subbands =3D SBC_SB_8; > -=09sbc->mode =3D SBC_MODE_MONO; > -=09sbc->allocation =3D SBC_AM_LOUDNESS; > -=09sbc->bitpool =3D 26; > +=09sbc_set_defaults_msbc(sbc, flags); >=20 > =09return 0; > } > -- > 2.39.2 >