Re: [FFmpeg-devel] [PATCH 2/9] sbc: implement SBC decoder (low-complexity subband codec)

2018-02-22 Thread Rostislav Pehlivanov
On 21 February 2018 at 22:37, Aurelien Jacobs  wrote:

> This was originally based on libsbc, and was fully integrated into ffmpeg.
> ---
>  doc/general.texi |   2 +
>  libavcodec/Makefile  |   1 +
>  libavcodec/allcodecs.c   |   1 +
>  libavcodec/avcodec.h |   1 +
>  libavcodec/codec_desc.c  |   7 +
>  libavcodec/sbc.c | 271 +++
>  libavcodec/sbc.h | 121 ++
>  libavcodec/sbcdec.c  | 411 ++
> +
>  libavcodec/sbcdec_data.c | 127 +++
>  libavcodec/sbcdec_data.h |  44 +
>  10 files changed, 986 insertions(+)
>  create mode 100644 libavcodec/sbc.c
>  create mode 100644 libavcodec/sbc.h
>  create mode 100644 libavcodec/sbcdec.c
>  create mode 100644 libavcodec/sbcdec_data.c
>  create mode 100644 libavcodec/sbcdec_data.h
>
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

Looks good to me, couldn't find an issue.
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/9] sbc: implement SBC decoder (low-complexity subband codec)

2017-12-23 Thread Aurelien Jacobs
Updated to match new identifier for CRC (AV_CRC_8_EBU).

>From c168e5e7b288edc2730a4a14614ead5c22d67289 Mon Sep 17 00:00:00 2001
From: Aurelien Jacobs 
Date: Sun, 17 Dec 2017 19:53:35 +0100
Subject: [PATCH 2/9] sbc: implement SBC decoder (low-complexity subband codec)

This was originally based on libsbc, and was fully integrated into ffmpeg.
---
 doc/general.texi |   2 +
 libavcodec/Makefile  |   2 +
 libavcodec/allcodecs.c   |   2 +
 libavcodec/avcodec.h |   2 +
 libavcodec/codec_desc.c  |  14 ++
 libavcodec/sbc.c | 280 
 libavcodec/sbc.h | 121 
 libavcodec/sbcdec.c  | 466 +++
 libavcodec/sbcdec_data.c | 127 +
 libavcodec/sbcdec_data.h |  44 +
 10 files changed, 1060 insertions(+)
 create mode 100644 libavcodec/sbc.c
 create mode 100644 libavcodec/sbc.h
 create mode 100644 libavcodec/sbcdec.c
 create mode 100644 libavcodec/sbcdec_data.c
 create mode 100644 libavcodec/sbcdec_data.h

diff --git a/doc/general.texi b/doc/general.texi
index 26919c9287..ed137f999f 100644
--- a/doc/general.texi
+++ b/doc/general.texi
@@ -1102,6 +1102,8 @@ following image formats are supported:
 @tab Real low bitrate AC-3 codec
 @item RealAudio Lossless @tab @tab  X
 @item RealAudio SIPR / ACELP.NET @tab @tab  X
+@item SBC (low-complexity subband codec) @tab @tab  X
+@tab Used in Bluetooth A2DP
 @item Shorten@tab @tab  X
 @item Sierra VMD audio   @tab @tab  X
 @tab Used in Sierra VMD files.
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index ca72138c02..c46d102227 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -581,6 +581,8 @@ OBJS-$(CONFIG_SUBVIEWER_DECODER)   += subviewerdec.o ass.o
 OBJS-$(CONFIG_SUNRAST_DECODER) += sunrast.o
 OBJS-$(CONFIG_SUNRAST_ENCODER) += sunrastenc.o
 OBJS-$(CONFIG_LIBRSVG_DECODER) += librsvgdec.o
+OBJS-$(CONFIG_SBC_DECODER) += sbcdec.o sbcdec_data.o sbc.o
+OBJS-$(CONFIG_MSBC_DECODER)+= sbcdec.o sbcdec_data.o sbc.o
 OBJS-$(CONFIG_SVQ1_DECODER)+= svq1dec.o svq1.o svq13.o h263data.o
 OBJS-$(CONFIG_SVQ1_ENCODER)+= svq1enc.o svq1.o  h263data.o  \
   h263.o ituh263enc.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index ed1e7ab06e..9e2480d2d4 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -379,6 +379,7 @@ static void register_all(void)
 REGISTER_DECODER(MP3ON4FLOAT,   mp3on4float);
 REGISTER_DECODER(MPC7,  mpc7);
 REGISTER_DECODER(MPC8,  mpc8);
+REGISTER_DECODER(MSBC,  msbc);
 REGISTER_ENCDEC (NELLYMOSER,nellymoser);
 REGISTER_DECODER(ON2AVC,on2avc);
 REGISTER_ENCDEC (OPUS,  opus);
@@ -392,6 +393,7 @@ static void register_all(void)
 REGISTER_DECODER(SHORTEN,   shorten);
 REGISTER_DECODER(SIPR,  sipr);
 REGISTER_DECODER(SMACKAUD,  smackaud);
+REGISTER_DECODER(SBC,   sbc);
 REGISTER_ENCDEC (SONIC, sonic);
 REGISTER_ENCODER(SONIC_LS,  sonic_ls);
 REGISTER_DECODER(TAK,   tak);
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index ce089b7c4a..5b7ec8541d 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -634,6 +634,8 @@ enum AVCodecID {
 AV_CODEC_ID_ATRAC3PAL,
 AV_CODEC_ID_DOLBY_E,
 AV_CODEC_ID_APTX,
+AV_CODEC_ID_SBC,
+AV_CODEC_ID_MSBC,
 
 /* subtitle codecs */
 AV_CODEC_ID_FIRST_SUBTITLE = 0x17000,  ///< A dummy ID pointing at the start of subtitle codecs.
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index c3688de1d6..a69897d379 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -2866,6 +2866,20 @@ static const AVCodecDescriptor codec_descriptors[] = {
 .long_name = NULL_IF_CONFIG_SMALL("aptX (Audio Processing Technology for Bluetooth)"),
 .props = AV_CODEC_PROP_LOSSY,
 },
+{
+.id= AV_CODEC_ID_SBC,
+.type  = AVMEDIA_TYPE_AUDIO,
+.name  = "sbc",
+.long_name = NULL_IF_CONFIG_SMALL("SBC (low-complexity subband codec)"),
+.props = AV_CODEC_PROP_LOSSY,
+},
+{
+.id= AV_CODEC_ID_MSBC,
+.type  = AVMEDIA_TYPE_AUDIO,
+.name  = "msbc",
+.long_name = NULL_IF_CONFIG_SMALL("mSBC (wideband speech mono SBC)"),
+.props = AV_CODEC_PROP_LOSSY,
+},
 
 /* subtitle codecs */
 {
diff --git a/libavcodec/sbc.c b/libavcodec/sbc.c
new file mode 100644
index 00..af3e9a3fa8
--- /dev/null
+++ b/libavcodec/sbc.c
@@ -0,0 +1,280 @@
+/*
+ * Bluetooth low-complexity, subband codec (SBC)
+ *
+ * Copyright (C) 2017  Aurelien Jacobs 
+ * Copyright (C) 2012-2013  Intel Corporation
+ *