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 539CA4A1CC for ; Sat, 23 Mar 2024 22:41:17 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 10F6F68D333; Sun, 24 Mar 2024 00:41:15 +0200 (EET) Received: from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net [217.70.183.197]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EE15D68D23B for ; Sun, 24 Mar 2024 00:41:07 +0200 (EET) Received: by mail.gandi.net (Postfix) with ESMTPSA id 1B3B71C0002 for ; Sat, 23 Mar 2024 22:41:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=niedermayer.cc; s=gm1; t=1711233667; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=2Sj/VrNKNjf6lVtq3emXRt0VCERHKmOJUXd4S33VshQ=; b=Xbzgjg3pxPQ0K1aIHXJczDA5bzfDtos2SZDDjGMdPV6xP16CC1dcTQo/2VGX8nUDtGueMC PHU+/vWWOUHQ2YRStlt0KkULYMAmZbBztZRMu1EfpaxCWT9CayrkNHBogO3X7pG24/mo0j cJpN34Yk3DieZRmC2a9rABf+RMSd1UxPqPGA5gyjar1LkJmhghohnXq0rFXoYC57f7DSIC f3VTTCOeyV2fmOnhytFAQB2bu8SIxMe58r7SxlOKQaghNmpPba6v59a4tejLm45UXDI+AN AIAu2s0pByXS1ZzH4CpjPqSwHMu9GFO4ux8IaX8erkR9HThHs7J8G5oTT5VC/g== Date: Sat, 23 Mar 2024 23:41:06 +0100 From: Michael Niedermayer To: FFmpeg development discussions and patches Message-ID: <20240323224106.GE6420@pb2> References: <20240322170106.2243608-1-asoulier@google.com> MIME-Version: 1.0 In-Reply-To: <20240322170106.2243608-1-asoulier@google.com> X-GND-Sasl: michael@niedermayer.cc Subject: Re: [FFmpeg-devel] [PATCH 1/6] avcodec/liblc3: Add encoding/decoding support of LC3 audio codec 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-Type: multipart/mixed; boundary="===============1280021952006072133==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --===============1280021952006072133== Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="VXfnC/piqBOX5bJX" Content-Disposition: inline --VXfnC/piqBOX5bJX Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Mar 22, 2024 at 05:01:00PM +0000, Antoine Soulier via ffmpeg-devel = wrote: > The LC3 audio codec is the default codec of Bluetooth LE audio. > This is a wrapper over the liblc3 library (https://github.com/google/libl= c3). >=20 > Signed-off-by: Antoine Soulier > Signed-off-by: Antoine SOULIER > --- > libavcodec/Makefile | 3 + > libavcodec/allcodecs.c | 3 + > libavcodec/codec_desc.c | 14 +++ > libavcodec/codec_id.h | 2 + > libavcodec/liblc3dec.c | 146 ++++++++++++++++++++++++++++++ > libavcodec/liblc3enc.c | 191 ++++++++++++++++++++++++++++++++++++++++ > 6 files changed, 359 insertions(+) > create mode 100644 libavcodec/liblc3dec.c > create mode 100644 libavcodec/liblc3enc.c >=20 > diff --git a/libavcodec/Makefile b/libavcodec/Makefile > index 708434ac76..7d2cf3076d 100644 > --- a/libavcodec/Makefile > +++ b/libavcodec/Makefile > @@ -1123,6 +1123,9 @@ OBJS-$(CONFIG_LIBILBC_ENCODER) +=3D libi= lbc.o > OBJS-$(CONFIG_LIBJXL_DECODER) +=3D libjxldec.o libjxl.o > OBJS-$(CONFIG_LIBJXL_ENCODER) +=3D libjxlenc.o libjxl.o > OBJS-$(CONFIG_LIBKVAZAAR_ENCODER) +=3D libkvazaar.o > +OBJS-$(CONFIG_LIBLC3_ENCODER) +=3D liblc3enc.o > +OBJS-$(CONFIG_LIBLC3_LC3_DECODER) +=3D liblc3dec.o > +OBJS-$(CONFIG_LIBLC3_LC3PLUS_DECODER) +=3D liblc3dec.o > OBJS-$(CONFIG_LIBMP3LAME_ENCODER) +=3D libmp3lame.o > OBJS-$(CONFIG_LIBOPENCORE_AMRNB_DECODER) +=3D libopencore-amr.o > OBJS-$(CONFIG_LIBOPENCORE_AMRNB_ENCODER) +=3D libopencore-amr.o > diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c > index 2386b450a6..29aedaeac6 100644 > --- a/libavcodec/allcodecs.c > +++ b/libavcodec/allcodecs.c > @@ -776,6 +776,9 @@ extern const FFCodec ff_libilbc_encoder; > extern const FFCodec ff_libilbc_decoder; > extern const FFCodec ff_libjxl_decoder; > extern const FFCodec ff_libjxl_encoder; > +extern const FFCodec ff_liblc3_encoder; > +extern const FFCodec ff_liblc3_lc3_decoder; > +extern const FFCodec ff_liblc3_lc3plus_decoder; > extern const FFCodec ff_libmp3lame_encoder; > extern const FFCodec ff_libopencore_amrnb_encoder; > extern const FFCodec ff_libopencore_amrnb_decoder; > diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c > index 3bab86db62..230bba2a09 100644 > --- a/libavcodec/codec_desc.c > +++ b/libavcodec/codec_desc.c > @@ -3425,6 +3425,20 @@ static const AVCodecDescriptor codec_descriptors[]= =3D { > .long_name =3D NULL_IF_CONFIG_SMALL("QOA (Quite OK Audio)"), > .props =3D AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, > }, > + { > + .id =3D AV_CODEC_ID_LC3, > + .type =3D AVMEDIA_TYPE_AUDIO, > + .name =3D "lc3", > + .long_name =3D NULL_IF_CONFIG_SMALL("LC3 (Low Complexity Communi= cation Codec)"), > + .props =3D AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, > + }, > + { > + .id =3D AV_CODEC_ID_LC3_PLUS, > + .type =3D AVMEDIA_TYPE_AUDIO, > + .name =3D "lc3_plus", > + .long_name =3D NULL_IF_CONFIG_SMALL("LC3plus (Low Complexity Com= munication Codec plus)"), > + .props =3D AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY, > + }, > =20 > /* subtitle codecs */ > { > diff --git a/libavcodec/codec_id.h b/libavcodec/codec_id.h > index c8dc21da74..7e4cb39049 100644 > --- a/libavcodec/codec_id.h > +++ b/libavcodec/codec_id.h > @@ -543,6 +543,8 @@ enum AVCodecID { > AV_CODEC_ID_AC4, > AV_CODEC_ID_OSQ, > AV_CODEC_ID_QOA, > + AV_CODEC_ID_LC3, > + AV_CODEC_ID_LC3_PLUS, > =20 > /* subtitle codecs */ > AV_CODEC_ID_FIRST_SUBTITLE =3D 0x17000, ///< A dummy ID poi= nting at the start of subtitle codecs. > diff --git a/libavcodec/liblc3dec.c b/libavcodec/liblc3dec.c > new file mode 100644 > index 0000000000..e97cecc68f > --- /dev/null > +++ b/libavcodec/liblc3dec.c > @@ -0,0 +1,146 @@ > +/* > + * LC3 decoder wrapper > + * Copyright (C) 2024 Antoine Soulier > + * > + * This file is part of FFmpeg. > + * > + * Permission to use, copy, modify, and/or distribute this software for = any > + * purpose with or without fee is hereby granted, provided that the above > + * copyright notice and this permission notice appear in all copies. > + * > + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANT= IES > + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF > + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE F= OR > + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES > + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN > + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT = OF > + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. > + */ > + > +#include this breaks build libavcodec/liblc3enc.c:20:10: fatal error: lc3.h: No such file or directory #include ^~~~~~~ configure enables this even before the configure patch thx [...] --=20 Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB It is dangerous to be right in matters on which the established authorities are wrong. -- Voltaire --VXfnC/piqBOX5bJX Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EABEIAB0WIQSf8hKLFH72cwut8TNhHseHBAsPqwUCZf9afwAKCRBhHseHBAsP q39SAJ0QZ9EknAtlOjrZ+VQOhn5/m/UX3QCfelcIpw3HKbwOS5zlTrjWTfF2z4I= =95pU -----END PGP SIGNATURE----- --VXfnC/piqBOX5bJX-- --===============1280021952006072133== 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". --===============1280021952006072133==--