Opened 3 years ago

Closed 3 years ago

#8081 closed enhancement (duplicate)

support of g729b codec

Reported by: Aleksandr Ustinov Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: g729
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
ffmpeg can't decode g729b codec. I would be nice to have decoder for this codec. Sample file, original codec and reference output attached.

How to reproduce:
ffmpeg -i 662478440-short.wav a1.wav

ffmpeg version N-41686-g91459bd Copyright (c) 2000-2014 the FFmpeg developers
  built on Apr 30 2015 12:25:50 with gcc 4.9.2 (Ubuntu 4.9.2-0ubuntu1~14.04)
  configuration: --extra-cflags=-I/home/alex/work/ffmpeg/include --extra-ldflags='-L/home/alex/work/ffmpeg/lib -L/usr/lib64' --bindir=/home/alex/bin --extra-libs=-ldl --enable-gpl --enable-nonfree --enable-version3 --enable-libfdk_aac --enable-libmp3lame --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libopencore-amrnb --enable-libvo-amrwbenc --enable-libopencore-amrwb --enable-libspeex
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
[wav @ 0x3292c80] Estimating duration from bitrate, this may be inaccurate
[wav @ 0x3292c80] Could not find codec parameters for stream 0 (Audio: none (5[1][0][0] / 0x0135), 8000 Hz, 2 channels, 17 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
662478440-short.wav: could not find codec parameters
Guessed Channel Layout for  Input Stream #0.0 : stereo
Input #0, wav, from '662478440-short.wav':
  Duration: 00:00:20.17, bitrate: 17 kb/s
    Stream #0:0: Audio: none (5[1][0][0] / 0x0135), 8000 Hz, 2 channels, 17 kb/s
No decoder for stream #0:0, filtering impossible
Error opening filters!

Any help are very appreciated!
Thank you.

Attachments (2)

662478440-short.wav (43.0 KB ) - added by Aleksandr Ustinov 3 years ago.
sample file
662478440-short.wav.result.wav (625.0 KB ) - added by Aleksandr Ustinov 3 years ago.
reference decoded output

Download all attachments as: .zip

Change History (18)

by Aleksandr Ustinov, 3 years ago

Attachment: 662478440-short.wav added

sample file

by Aleksandr Ustinov, 3 years ago

reference decoded output

comment:1 by Carl Eugen Hoyos, 3 years ago

Keywords: g729 added
Priority: normalwish
Type: sponsoring requestenhancement
Version: unspecifiedgit-master

Could you confirm that the output file was created from the wav file you attached (and that you did not record and decode at the same time)? I am asking because the output file seems short to me.

comment:2 by Aleksandr Ustinov, 3 years ago

Yes, it is converted by original codec. It's easy to check. g729b has constant bitrate 17.7kbps and 8khz PCM 16 bit stereo is 256kbps. So result should be about 14x times bigger.

comment:3 by Carl Eugen Hoyos, 3 years ago

Could you confirm that the output file was created from the wav file you attached?

comment:4 by Aleksandr Ustinov, 3 years ago

yes. Are there any specific way to confirm that?

Last edited 3 years ago by Aleksandr Ustinov (previous) (diff)

comment:5 by Carl Eugen Hoyos, 3 years ago

The TwoCC lists call this "Sipro ACELP.KELVIN"

in reply to:  4 ; comment:6 by Carl Eugen Hoyos, 3 years ago

Replying to AlexanderU:

yes. Are there any specific way to confirm that?

My question was if you used the file that you attached here to create the output file (that you also attached). Afaik, the difference between G.729 and G.729B is that G.729B is able to send (via network) the information that the sender is silent which is a shorter package than an actual audio package, this cannot be done in a wav file, see ticket #7604. If your file would contain such 2-byte Silence Insertion Descriptor packets, the output file would have to be longer (but it is too short even if the input does not contain any Silence Insertion Descriptor packets).
My suspicion is that ACELP.KELVIN uses other coefficients than G.729 or has other small differences.

comment:7 by Aleksandr Ustinov, 3 years ago

Yes, from search in network it looks like second name of the same codec. I may be wrong about this but our customer claims it's g729b. In the same time I already found difference with ITU g729b specification at least in silence word so probably TwoCC name more correct.

in reply to:  6 comment:8 by Aleksandr Ustinov, 3 years ago

Replying to cehoyos:

Replying to AlexanderU:

yes. Are there any specific way to confirm that?

My question was if you used the file that you attached here to create the output file (that you also attached). Afaik, the difference between G.729 and G.729B is that G.729B is able to send (via network) the information that the sender is silent which is a shorter package than an actual audio package, this cannot be done in a wav file, see ticket #7604. If your file would contain such 2-byte Silence Insertion Descriptor packets, the output file would have to be longer (but it is too short even if the input does not contain any Silence Insertion Descriptor packets).
My suspicion is that ACELP.KELVIN uses other coefficients than G.729 or has other small differences.

I agree with you. ACELP.KELVIN looks like modification of g729. I don't know how deep modification is. Sample file contains stream with 11 bytes per packet. g729 has 10 bytes per packet and g729b has 12 bytes per packet (2 silence insertion descriptor + 10 bytes of data)

comment:9 by Carl Eugen Hoyos, 3 years ago

Thank you for the analysis, please test the following patch with more samples:

diff --git a/configure b/configure
index 34c2adb4a4..b23009994a 100755
--- a/configure
+++ b/configure
@@ -2632,6 +2632,7 @@ ac3_decoder_select="ac3_parser ac3dsp bswapdsp fmtconvert mdct"
 ac3_fixed_decoder_select="ac3_parser ac3dsp bswapdsp mdct"
 ac3_encoder_select="ac3dsp audiodsp mdct me_cmp"
 ac3_fixed_encoder_select="ac3dsp audiodsp mdct me_cmp"
+acelp_kelvin_decoder_select="g729_decoder"
 adpcm_g722_decoder_select="g722dsp"
 adpcm_g722_encoder_select="g722dsp"
 aic_decoder_select="golomb idctdsp"
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index d2f9a39ce5..5936cdc467 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -32,6 +32,7 @@
 extern AVCodec ff_a64multi_encoder;
 extern AVCodec ff_a64multi5_encoder;
 extern AVCodec ff_aasc_decoder;
+extern AVCodec ff_acelp_kelvin_decoder;
 extern AVCodec ff_aic_decoder;
 extern AVCodec ff_alias_pix_encoder;
 extern AVCodec ff_alias_pix_decoder;
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index d234271c5b..7ec4014d8b 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -629,6 +629,7 @@ enum AVCodecID {
     AV_CODEC_ID_ON2AVC,
     AV_CODEC_ID_DSS_SP,
     AV_CODEC_ID_CODEC2,
+    AV_CODEC_ID_ACELP_KELVIN,
 
     AV_CODEC_ID_FFWAVESYNTH = 0x15800,
     AV_CODEC_ID_SONIC,
diff --git a/libavcodec/codec_desc.c b/libavcodec/codec_desc.c
index 4d033c20ff..716e278b93 100644
--- a/libavcodec/codec_desc.c
+++ b/libavcodec/codec_desc.c
@@ -2834,6 +2834,12 @@ static const AVCodecDescriptor codec_descriptors[] = {
         .long_name = NULL_IF_CONFIG_SMALL("codec2 (very low bitrate speech codec)"),
         .props     = AV_CODEC_PROP_LOSSY,
     },
+    {
+        .id        = AV_CODEC_ID_ACELP_KELVIN,
+        .name      = "ACELP.KELVIN",
+        .long_name = NULL_IF_CONFIG_SMALL("Sipro ACELP.KELVIN"),
+        .props     = AV_CODEC_PROP_LOSSY,
+    },
     {
         .id        = AV_CODEC_ID_FFWAVESYNTH,
         .type      = AVMEDIA_TYPE_AUDIO,
diff --git a/libavcodec/g729_parser.c b/libavcodec/g729_parser.c
index 9982dbfffc..5a57025d62 100644
--- a/libavcodec/g729_parser.c
+++ b/libavcodec/g729_parser.c
@@ -45,9 +45,10 @@ static int g729_parse(AVCodecParserContext *s1, AVCodecContext *avctx,
     int next;
 
     if (!s->block_size) {
-        av_assert1(avctx->codec_id == AV_CODEC_ID_G729);
         /* FIXME: replace this heuristic block_size with more precise estimate */
         s->block_size = (avctx->bit_rate < 8000) ? G729D_6K4_BLOCK_SIZE : G729_8K_BLOCK_SIZE;
+        if (avctx->codec_id == AV_CODEC_ID_ACELP_KELVIN)
+            s->block_size++;
         s->block_size *= avctx->channels;
         s->duration   = avctx->frame_size;
     }
@@ -76,7 +77,7 @@ static int g729_parse(AVCodecParserContext *s1, AVCodecContext *avctx,
 }
 
 AVCodecParser ff_g729_parser = {
-    .codec_ids      = { AV_CODEC_ID_G729 },
+    .codec_ids      = { AV_CODEC_ID_G729, AV_CODEC_ID_ACELP_KELVIN },
     .priv_data_size = sizeof(G729ParseContext),
     .parser_parse   = g729_parse,
     .parser_close   = ff_parse_close,
diff --git a/libavcodec/g729dec.c b/libavcodec/g729dec.c
index 2e4756b805..7c7f4d49f2 100644
--- a/libavcodec/g729dec.c
+++ b/libavcodec/g729dec.c
@@ -424,7 +424,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
     if ((ret = ff_get_buffer(avctx, frame, 0)) < 0)
         return ret;
 
-    if (buf_size % (G729_8K_BLOCK_SIZE * avctx->channels) == 0) {
+    if (buf_size % ((G729_8K_BLOCK_SIZE + (avctx->codec_id == AV_CODEC_ID_ACELP_KELVIN)) * avctx->channels) == 0) {
         packet_type = FORMAT_G729_8K;
         format = &format_g729_8k;
         //Reset voice decision
@@ -445,6 +445,8 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
         int bad_pitch = 0;     ///< parity check failed
         int is_periodic = 0;   ///< whether one of the subframes is declared as periodic or not
         out_frame = (int16_t*)frame->data[c];
+        if (avctx->codec_id == AV_CODEC_ID_ACELP_KELVIN)
+            buf++;
 
         for (i = 0; i < buf_size; i++)
             frame_erasure |= buf[i];
@@ -727,7 +729,7 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr,
     }
 
     *got_frame_ptr = 1;
-    return packet_type == FORMAT_G729_8K ? G729_8K_BLOCK_SIZE * avctx->channels : G729D_6K4_BLOCK_SIZE * avctx->channels;
+    return packet_type == FORMAT_G729_8K ? (G729_8K_BLOCK_SIZE + (avctx->codec_id == AV_CODEC_ID_ACELP_KELVIN)) * avctx->channels : G729D_6K4_BLOCK_SIZE * avctx->channels;
 }
 
 static av_cold int decode_close(AVCodecContext *avctx)
@@ -749,3 +751,15 @@ AVCodec ff_g729_decoder = {
     .close          = decode_close,
     .capabilities   = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DR1,
 };
+
+AVCodec ff_acelp_kelvin_decoder = {
+    .name           = "ACELP.KELVIN",
+    .long_name      = NULL_IF_CONFIG_SMALL("Sipro ACELP.KELVIN"),
+    .type           = AVMEDIA_TYPE_AUDIO,
+    .id             = AV_CODEC_ID_ACELP_KELVIN,
+    .priv_data_size = sizeof(G729Context),
+    .init           = decoder_init,
+    .decode         = decode_frame,
+    .close          = decode_close,
+    .capabilities   = AV_CODEC_CAP_SUBFRAMES | AV_CODEC_CAP_DR1,
+};
diff --git a/libavformat/riff.c b/libavformat/riff.c
index e755ad8d5f..27518216a6 100644
--- a/libavformat/riff.c
+++ b/libavformat/riff.c
@@ -534,6 +534,7 @@ const AVCodecTag ff_codec_wav_tags[] = {
     { AV_CODEC_ID_AAC,             0x00ff },
     { AV_CODEC_ID_G723_1,          0x0111 },
     { AV_CODEC_ID_SIPR,            0x0130 },
+    { AV_CODEC_ID_ACELP_KELVIN,    0x0135 },
     { AV_CODEC_ID_WMAV1,           0x0160 },
     { AV_CODEC_ID_WMAV2,           0x0161 },
     { AV_CODEC_ID_WMAPRO,          0x0162 },
Last edited 3 years ago by Carl Eugen Hoyos (previous) (diff)

comment:10 by Aleksandr Ustinov, 3 years ago

Thank you very much!

Unfortunately I can't check because i have problems with building.
I get latest version of ffmpeg from git by command:

git clone https://github.com/FFmpeg/FFmpeg.git

Then I apply your path to directory:

cd FFmpeg
patch -s -p0 < patch.diff

I checked all the changes applied.
Then I do configure

./configure
make

After I try to convert media via command and get the answer:

$./ffmpeg -i 663001843.wav 663001843.wav.result.wav
ffmpeg version N-94575-gcff3090 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 20160609
  configuration: 
  libavutil      56. 33.100 / 56. 33.100
  libavcodec     58. 55.100 / 58. 55.100
  libavformat    58. 31.101 / 58. 31.101
  libavdevice    58.  9.100 / 58.  9.100
  libavfilter     7. 58.100 /  7. 58.100
  libswscale      5.  6.100 /  5.  6.100
  libswresample   3.  6.100 /  3.  6.100
[wav @ 0x2aca480] Estimating duration from bitrate, this may be inaccurate
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, wav, from '663001843.wav':
  Duration: 00:18:34.63, bitrate: 17 kb/s
    Stream #0:0: Audio: ACELP.KELVIN (5[1][0][0] / 0x0135), 8000 Hz, stereo, 17 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (? (?) -> pcm_s16le (native))
Decoder (codec ACELP.KELVIN) not found for input stream #0:0

May be I need to turn something on at configuration options? I do not see decoder related with g729_decoder after configuration.
Here is the output from ./configure

install prefix            /usr/local
source path               .
C compiler                gcc
C library                 glibc
ARCH                      x86 (generic)
big-endian                no
runtime cpu detection     yes
standalone assembly       yes
x86 assembler             yasm
MMX enabled               yes
MMXEXT enabled            yes
3DNow! enabled            yes
3DNow! extended enabled   yes
SSE enabled               yes
SSSE3 enabled             yes
AESNI enabled             yes
AVX enabled               yes
AVX2 enabled              yes
AVX-512 enabled           yes
XOP enabled               yes
FMA3 enabled              yes
FMA4 enabled              yes
i686 features enabled     yes
CMOV is fast              yes
EBX available             yes
EBP available             yes
debug symbols             yes
strip symbols             yes
optimize for size         no
optimizations             yes
static                    yes
shared                    no
postprocessing support    no
network support           yes
threading support         pthreads
safe bitstream reader     yes
texi2html enabled         no
perl enabled              yes
pod2man enabled           yes
makeinfo enabled          yes
makeinfo supports HTML    yes

External libraries:
alsa                    iconv                   libxcb_shape            libxcb_xfixes           zlib
bzlib                   libxcb                  libxcb_shm              lzma

External libraries providing hardware acceleration:
v4l2_m2m                vaapi                   vdpau

Libraries:
avcodec                 avfilter                avutil                  swscale
avdevice                avformat                swresample

Programs:
ffmpeg                  ffprobe

Enabled decoders:
aac                     avrn                    flic                    mp3on4                  pictor                  truemotion1
aac_fixed               avrp                    flv                     mp3on4float             pixlet                  truemotion2
aac_latm                avs                     fmvc                    mpc7                    pjs                     truemotion2rt
aasc                    avui                    fourxm                  mpc8                    png                     truespeech
ac3                     ayuv                    fraps                   mpeg1_v4l2m2m           ppm                     tscc
ac3_fixed               bethsoftvid             frwu                    mpeg1video              prores                  tscc2
adpcm_4xm               bfi                     g2m                     mpeg2_v4l2m2m           prosumer                tta
adpcm_adx               bink                    g723_1                  mpeg2video              psd                     twinvq
adpcm_afc               binkaudio_dct           g729                    mpeg4                   ptx                     txd
adpcm_agm               binkaudio_rdft          gdv                     mpeg4_v4l2m2m           qcelp                   ulti
adpcm_aica              bintext                 gif                     mpegvideo               qdm2                    utvideo
adpcm_ct                bitpacked               gremlin_dpcm            mpl2                    qdmc                    v210
adpcm_dtk               bmp                     gsm                     msa1                    qdraw                   v210x
adpcm_ea                bmv_audio               gsm_ms                  mscc                    qpeg                    v308
adpcm_ea_maxis_xa       bmv_video               h261                    msmpeg4v1               qtrle                   v408
adpcm_ea_r1             brender_pix             h263                    msmpeg4v2               r10k                    v410
adpcm_ea_r2             c93                     h263_v4l2m2m            msmpeg4v3               r210                    vb
adpcm_ea_r3             cavs                    h263i                   msrle                   ra_144                  vble
adpcm_ea_xas            ccaption                h263p                   mss1                    ra_288                  vc1
adpcm_g722              cdgraphics              h264                    mss2                    ralf                    vc1_v4l2m2m
adpcm_g726              cdxl                    h264_v4l2m2m            msvideo1                rasc                    vc1image
adpcm_g726le            cfhd                    hap                     mszh                    rawvideo                vcr1
adpcm_ima_amv           cinepak                 hcom                    mts2                    realtext                vmdaudio
adpcm_ima_apc           clearvideo              hevc                    mvc1                    rl2                     vmdvideo
adpcm_ima_dat4          cljr                    hnm4_video              mvc2                    roq                     vmnc
adpcm_ima_dk3           cllc                    hq_hqa                  mwsc                    roq_dpcm                vorbis
adpcm_ima_dk4           comfortnoise            hqx                     mxpeg                   rpza                    vp3
adpcm_ima_ea_eacs       cook                    huffyuv                 nellymoser              rscc                    vp4
adpcm_ima_ea_sead       cpia                    hymt                    nuv                     rv10                    vp5
adpcm_ima_iss           cscd                    iac                     on2avc                  rv20                    vp6
adpcm_ima_oki           cyuv                    idcin                   opus                    rv30                    vp6a
adpcm_ima_qt            dca                     idf                     paf_audio               rv40                    vp6f
adpcm_ima_rad           dds                     iff_ilbm                paf_video               s302m                   vp7
adpcm_ima_smjpeg        dfa                     ilbc                    pam                     sami                    vp8
adpcm_ima_wav           dirac                   imc                     pbm                     sanm                    vp8_v4l2m2m
adpcm_ima_ws            dnxhd                   imm4                    pcm_alaw                sbc                     vp9
adpcm_ms                dolby_e                 indeo2                  pcm_bluray              scpr                    vplayer
adpcm_mtaf              dpx                     indeo3                  pcm_dvd                 screenpresso            vqa
adpcm_psx               dsd_lsbf                indeo4                  pcm_f16le               sdx2_dpcm               wavpack
adpcm_sbpro_2           dsd_lsbf_planar         indeo5                  pcm_f24le               sgi                     wcmv
adpcm_sbpro_3           dsd_msbf                interplay_acm           pcm_f32be               sgirle                  webp
adpcm_sbpro_4           dsd_msbf_planar         interplay_dpcm          pcm_f32le               sheervideo              webvtt
adpcm_swf               dsicinaudio             interplay_video         pcm_f64be               shorten                 wmalossless
adpcm_thp               dsicinvideo             jacosub                 pcm_f64le               sipr                    wmapro
adpcm_thp_le            dss_sp                  jpeg2000                pcm_lxf                 smackaud                wmav1
adpcm_vima              dst                     jpegls                  pcm_mulaw               smacker                 wmav2
adpcm_xa                dvaudio                 jv                      pcm_s16be               smc                     wmavoice
adpcm_yamaha            dvbsub                  kgv1                    pcm_s16be_planar        smvjpeg                 wmv1
agm                     dvdsub                  kmvc                    pcm_s16le               snow                    wmv2
aic                     dvvideo                 lagarith                pcm_s16le_planar        sol_dpcm                wmv3
alac                    dxa                     loco                    pcm_s24be               sonic                   wmv3image
alias_pix               dxtory                  lscr                    pcm_s24daud             sp5x                    wnv1
als                     dxv                     m101                    pcm_s24le               speedhq                 wrapped_avframe
amrnb                   eac3                    mace3                   pcm_s24le_planar        srgc                    ws_snd1
amrwb                   eacmv                   mace6                   pcm_s32be               srt                     xan_dpcm
amv                     eamad                   magicyuv                pcm_s32le               ssa                     xan_wc3
anm                     eatgq                   mdec                    pcm_s32le_planar        stl                     xan_wc4
ansi                    eatgv                   metasound               pcm_s64be               subrip                  xbin
ape                     eatqi                   microdvd                pcm_s64le               subviewer               xbm
apng                    eightbps                mimic                   pcm_s8                  subviewer1              xface
aptx                    eightsvx_exp            mjpeg                   pcm_s8_planar           sunrast                 xl
aptx_hd                 eightsvx_fib            mjpegb                  pcm_u16be               svq1                    xma1
arbc                    escape124               mlp                     pcm_u16le               svq3                    xma2
ass                     escape130               mmvideo                 pcm_u24be               tak                     xpm
asv1                    evrc                    motionpixels            pcm_u24le               targa                   xsub
asv2                    exr                     movtext                 pcm_u32be               targa_y216              xwd
atrac1                  ffv1                    mp1                     pcm_u32le               tdsc                    y41p
atrac3                  ffvhuff                 mp1float                pcm_u8                  text                    ylc
atrac3al                ffwavesynth             mp2                     pcm_vidc                theora                  yop
atrac3p                 fic                     mp2float                pcm_zork                thp                     yuv4
atrac3pal               fits                    mp3                     pcx                     tiertexseqvideo         zero12v
atrac9                  flac                    mp3adu                  pgm                     tiff                    zerocodec
aura                    flashsv                 mp3adufloat             pgmyuv                  tmv                     zlib
aura2                   flashsv2                mp3float                pgssub                  truehd                  zmbv

Enabled encoders:
a64multi                cljr                    ljpeg                   pcm_s16be_planar        prores_aw               v210
a64multi5               comfortnoise            magicyuv                pcm_s16le               prores_ks               v308
aac                     dca                     mjpeg                   pcm_s16le_planar        qtrle                   v408
ac3                     dnxhd                   mjpeg_vaapi             pcm_s24be               r10k                    v410
ac3_fixed               dpx                     mlp                     pcm_s24daud             r210                    vc2
adpcm_adx               dvbsub                  movtext                 pcm_s24le               ra_144                  vorbis
adpcm_g722              dvdsub                  mp2                     pcm_s24le_planar        rawvideo                vp8_v4l2m2m
adpcm_g726              dvvideo                 mp2fixed                pcm_s32be               roq                     vp8_vaapi
adpcm_g726le            eac3                    mpeg1video              pcm_s32le               roq_dpcm                wavpack
adpcm_ima_qt            ffv1                    mpeg2_vaapi             pcm_s32le_planar        rv10                    webvtt
adpcm_ima_wav           ffvhuff                 mpeg2video              pcm_s64be               rv20                    wmav1
adpcm_ms                fits                    mpeg4                   pcm_s64le               s302m                   wmav2
adpcm_swf               flac                    mpeg4_v4l2m2m           pcm_s8                  sbc                     wmv1
adpcm_yamaha            flashsv                 msmpeg4v2               pcm_s8_planar           sgi                     wmv2
alac                    flashsv2                msmpeg4v3               pcm_u16be               snow                    wrapped_avframe
alias_pix               flv                     msvideo1                pcm_u16le               sonic                   xbm
amv                     g723_1                  nellymoser              pcm_u24be               sonic_ls                xface
apng                    gif                     opus                    pcm_u24le               srt                     xsub
aptx                    h261                    pam                     pcm_u32be               ssa                     xwd
aptx_hd                 h263                    pbm                     pcm_u32le               subrip                  y41p
ass                     h263_v4l2m2m            pcm_alaw                pcm_u8                  sunrast                 yuv4
asv1                    h263p                   pcm_dvd                 pcm_vidc                svq1                    zlib
asv2                    h264_v4l2m2m            pcm_f32be               pcx                     targa                   zmbv
avrp                    h264_vaapi              pcm_f32le               pgm                     text
avui                    hevc_vaapi              pcm_f64be               pgmyuv                  tiff
ayuv                    huffyuv                 pcm_f64le               png                     truehd
bmp                     jpeg2000                pcm_mulaw               ppm                     tta
cinepak                 jpegls                  pcm_s16be               prores                  utvideo

Enabled hwaccels:
h263_vaapi              hevc_vaapi              mpeg1_vdpau             mpeg4_vaapi             vc1_vdpau               wmv3_vaapi
h264_vaapi              hevc_vdpau              mpeg2_vaapi             mpeg4_vdpau             vp8_vaapi               wmv3_vdpau
h264_vdpau              mjpeg_vaapi             mpeg2_vdpau             vc1_vaapi               vp9_vaapi

Enabled parsers:
aac                     cook                    dvdsub                  h264                    png                     vorbis
aac_latm                dca                     flac                    hevc                    pnm                     vp3
ac3                     dirac                   g723_1                  mjpeg                   rv30                    vp8
adx                     dnxhd                   g729                    mlp                     rv40                    vp9
av1                     dpx                     gif                     mpeg4video              sbc                     xma
avs2                    dvaudio                 gsm                     mpegaudio               sipr
bmp                     dvbsub                  h261                    mpegvideo               tak
cavsvideo               dvd_nav                 h263                    opus                    vc1

Enabled demuxers:
aa                      data                    ifv                     microdvd                pcm_u16le               sup
aac                     daud                    ilbc                    mjpeg                   pcm_u24be               svag
ac3                     dcstr                   image2                  mjpeg_2000              pcm_u24le               swf
acm                     dfa                     image2_alias_pix        mlp                     pcm_u32be               tak
act                     dhav                    image2_brender_pix      mlv                     pcm_u32le               tedcaptions
adf                     dirac                   image2pipe              mm                      pcm_u8                  thp
adp                     dnxhd                   image_bmp_pipe          mmf                     pcm_vidc                threedostr
ads                     dsf                     image_dds_pipe          mov                     pjs                     tiertexseq
adx                     dsicin                  image_dpx_pipe          mp3                     pmp                     tmv
aea                     dss                     image_exr_pipe          mpc                     pva                     truehd
afc                     dts                     image_gif_pipe          mpc8                    pvf                     tta
aiff                    dtshd                   image_j2k_pipe          mpegps                  qcp                     tty
aix                     dv                      image_jpeg_pipe         mpegts                  r3d                     txd
amr                     dvbsub                  image_jpegls_pipe       mpegtsraw               rawvideo                ty
amrnb                   dvbtxt                  image_pam_pipe          mpegvideo               realtext                v210
amrwb                   dxa                     image_pbm_pipe          mpjpeg                  redspark                v210x
anm                     ea                      image_pcx_pipe          mpl2                    rl2                     vag
apc                     ea_cdata                image_pgm_pipe          mpsub                   rm                      vc1
ape                     eac3                    image_pgmyuv_pipe       msf                     roq                     vc1t
apng                    epaf                    image_pictor_pipe       msnwc_tcp               rpl                     vividas
aptx                    ffmetadata              image_png_pipe          mtaf                    rsd                     vivo
aptx_hd                 filmstrip               image_ppm_pipe          mtv                     rso                     vmd
aqtitle                 fits                    image_psd_pipe          musx                    rtp                     vobsub
asf                     flac                    image_qdraw_pipe        mv                      rtsp                    voc
asf_o                   flic                    image_sgi_pipe          mvi                     s337m                   vpk
ass                     flv                     image_sunrast_pipe      mxf                     sami                    vplayer
ast                     fourxm                  image_svg_pipe          mxg                     sap                     vqf
au                      frm                     image_tiff_pipe         nc                      sbc                     w64
avi                     fsb                     image_webp_pipe         nistsphere              sbg                     wav
avr                     g722                    image_xpm_pipe          nsp                     scc                     wc3
avs                     g723_1                  image_xwd_pipe          nsv                     sdp                     webm_dash_manifest
avs2                    g726                    ingenient               nut                     sdr2                    webvtt
bethsoftvid             g726le                  ipmovie                 nuv                     sds                     wsaud
bfi                     g729                    ircam                   ogg                     sdx                     wsd
bfstm                   gdv                     iss                     oma                     segafilm                wsvqa
bink                    genh                    iv8                     paf                     ser                     wtv
bintext                 gif                     ivf                     pcm_alaw                shorten                 wv
bit                     gsm                     ivr                     pcm_f32be               siff                    wve
bmv                     gxf                     jacosub                 pcm_f32le               sln                     xa
boa                     h261                    jv                      pcm_f64be               smacker                 xbin
brstm                   h263                    kux                     pcm_f64le               smjpeg                  xmv
c93                     h264                    live_flv                pcm_mulaw               smush                   xvag
caf                     hcom                    lmlm4                   pcm_s16be               sol                     xwma
cavsvideo               hevc                    loas                    pcm_s16le               sox                     yop
cdg                     hls                     lrc                     pcm_s24be               spdif                   yuv4mpegpipe
cdxl                    hnm                     lvf                     pcm_s24le               srt
cine                    ico                     lxf                     pcm_s32be               stl
codec2                  idcin                   m4v                     pcm_s32le               str
codec2raw               idf                     matroska                pcm_s8                  subviewer
concat                  iff                     mgsts                   pcm_u16be               subviewer1

Enabled muxers:
a64                     dnxhd                   hevc                    mpeg1vcd                pcm_s24le               smoothstreaming
ac3                     dts                     hls                     mpeg1video              pcm_s32be               sox
adts                    dv                      ico                     mpeg2dvd                pcm_s32le               spdif
adx                     eac3                    ilbc                    mpeg2svcd               pcm_s8                  spx
aiff                    f4v                     image2                  mpeg2video              pcm_u16be               srt
amr                     ffmetadata              image2pipe              mpeg2vob                pcm_u16le               stream_segment
apng                    fifo                    ipod                    mpegts                  pcm_u24be               sup
aptx                    fifo_test               ircam                   mpjpeg                  pcm_u24le               swf
aptx_hd                 filmstrip               ismv                    mxf                     pcm_u32be               tee
asf                     fits                    ivf                     mxf_d10                 pcm_u32le               tg2
asf_stream              flac                    jacosub                 mxf_opatom              pcm_u8                  tgp
ass                     flv                     latm                    null                    pcm_vidc                truehd
ast                     framecrc                lrc                     nut                     psp                     tta
au                      framehash               m4v                     oga                     rawvideo                uncodedframecrc
avi                     framemd5                matroska                ogg                     rm                      vc1
avm2                    g722                    matroska_audio          ogv                     roq                     vc1t
avs2                    g723_1                  md5                     oma                     rso                     voc
bit                     g726                    microdvd                opus                    rtp                     w64
caf                     g726le                  mjpeg                   pcm_alaw                rtp_mpegts              wav
cavsvideo               gif                     mkvtimestamp_v2         pcm_f32be               rtsp                    webm
codec2                  gsm                     mlp                     pcm_f32le               sap                     webm_chunk
codec2raw               gxf                     mmf                     pcm_f64be               sbc                     webm_dash_manifest
crc                     h261                    mov                     pcm_f64le               scc                     webp
dash                    h263                    mp2                     pcm_mulaw               segafilm                webvtt
data                    h264                    mp3                     pcm_s16be               segment                 wtv
daud                    hash                    mp4                     pcm_s16le               singlejpeg              wv
dirac                   hds                     mpeg1system             pcm_s24be               smjpeg                  yuv4mpegpipe

Enabled protocols:
async                   ffrtmphttp              http                    mmst                    rtp                     udp
cache                   file                    httpproxy               pipe                    srtp                    udplite
concat                  ftp                     icecast                 prompeg                 subfile                 unix
crypto                  gopher                  md5                     rtmp                    tcp
data                    hls                     mmsh                    rtmpt                   tee

Enabled filters:
abench                  areverse                dcshift                 haldclut                overlay                 sidechaingate
abitscope               aselect                 dctdnoiz                haldclutsrc             pad                     sidedata
acompressor             asendcmd                deband                  hdcd                    pal100bars              signalstats
acontrast               asetnsamples            deblock                 headphone               pal75bars               silencedetect
acopy                   asetpts                 decimate                hflip                   palettegen              silenceremove
acrossfade              asetrate                deconvolve              highpass                paletteuse              sinc
acrossover              asettb                  dedot                   highshelf               pan                     sine
acrusher                ashowinfo               deesser                 hilbert                 perms                   smptebars
acue                    asidedata               deflate                 histogram               pixdesctest             smptehdbars
addroi                  asoftclip               deflicker               hqx                     pixscope                sobel
adeclick                asplit                  deinterlace_vaapi       hstack                  premultiply             spectrumsynth
adeclip                 astats                  dejudder                hue                     prewitt                 split
adelay                  astreamselect           denoise_vaapi           hwdownload              procamp_vaapi           sr
aderivative             atadenoise              derain                  hwmap                   pseudocolor             ssim
adrawgraph              atempo                  deshake                 hwupload                psnr                    stereotools
aecho                   atrim                   despill                 hysteresis              qp                      stereowiden
aemphasis               avectorscope            detelecine              idet                    random                  streamselect
aeval                   avgblur                 dilation                il                      readeia608              superequalizer
aevalsrc                bandpass                displace                inflate                 readvitc                surround
afade                   bandreject              doubleweave             interleave              realtime                swaprect
afftdn                  bass                    drawbox                 join                    remap                   swapuv
afftfilt                bbox                    drawgraph               lagfun                  removegrain             tblend
afifo                   bench                   drawgrid                lenscorrection          removelogo              telecine
afir                    biquad                  drmeter                 life                    replaygain              testsrc
aformat                 bitplanenoise           dynaudnorm              limiter                 reverse                 testsrc2
agate                   blackdetect             earwax                  loop                    rgbashift               threshold
agraphmonitor           blend                   ebur128                 loudnorm                rgbtestsrc              thumbnail
ahistogram              bm3d                    edgedetect              lowpass                 roberts                 tile
aiir                    bwdif                   elbg                    lowshelf                rotate                  tlut2
aintegral               cellauto                entropy                 lumakey                 scale                   tmix
ainterleave             channelmap              equalizer               lut                     scale2ref               tonemap
alimiter                channelsplit            erosion                 lut1d                   scale_vaapi             tpad
allpass                 chorus                  extractplanes           lut2                    select                  transpose
allrgb                  chromahold              extrastereo             lut3d                   selectivecolor          treble
allyuv                  chromakey               fade                    lutrgb                  sendcmd                 tremolo
aloop                   chromashift             fftdnoiz                lutyuv                  separatefields          trim
alphaextract            ciescope                fftfilt                 mandelbrot              setdar                  unpremultiply
alphamerge              codecview               field                   maskedclamp             setfield                unsharp
amerge                  color                   fieldhint               maskedmerge             setparams               vectorscope
ametadata               colorbalance            fieldmatch              maskfun                 setpts                  vflip
amix                    colorchannelmixer       fieldorder              mcompand                setrange                vfrdet
amovie                  colorhold               fifo                    mergeplanes             setsar                  vibrance
amplify                 colorkey                fillborders             mestimate               settb                   vibrato
amultiply               colorlevels             firequalizer            metadata                sharpness_vaapi         vignette
anequalizer             colorspace              flanger                 midequalizer            showcqt                 vmafmotion
anlmdn                  compand                 floodfill               minterpolate            showfreqs               volume
anoisesrc               compensationdelay       format                  mix                     showinfo                volumedetect
anull                   concat                  fps                     movie                   showpalette             vstack
anullsink               convolution             framepack               negate                  showspatial             w3fdif
anullsrc                convolve                framerate               nlmeans                 showspectrum            waveform
apad                    copy                    framestep               noformat                showspectrumpic         weave
aperms                  crop                    freezedetect            noise                   showvolume              xbr
aphasemeter             crossfeed               gblur                   normalize               showwaves               xmedian
aphaser                 crystalizer             gradfun                 null                    showwavespic            xstack
apulsator               cue                     graphmonitor            nullsink                shuffleframes           yadif
arealtime               curves                  greyedge                nullsrc                 shuffleplanes           yuvtestsrc
aresample               datascope               haas                    oscilloscope            sidechaincompress       zoompan

Enabled bsfs:
aac_adtstoasc           eac3_core               hapqa_extract           mov2textsub             prores_metadata         vp9_raw_reorder
av1_frame_split         extract_extradata       hevc_metadata           mp3_header_decompress   remove_extradata        vp9_superframe
av1_metadata            filter_units            hevc_mp4toannexb        mpeg2_metadata          text2movsub             vp9_superframe_split
chomp                   h264_metadata           imx_dump_header         mpeg4_unpack_bframes    trace_headers
dca_core                h264_mp4toannexb        mjpeg2jpeg              noise                   truehd_core
dump_extradata          h264_redundant_pps      mjpega_dump_header      null                    vp9_metadata

Enabled indevs:
alsa                    fbdev                   lavfi                   oss                     v4l2                    xcbgrab

Enabled outdevs:
alsa                    fbdev                   oss                     v4l2

License: LGPL version 2.1 or later

Again, Thank you for your help!

comment:11 by Carl Eugen Hoyos, 3 years ago

Sorry, I forgot this change (added above):

diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index d2f9a39ce5..5936cdc467 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -32,6 +32,7 @@
 extern AVCodec ff_a64multi_encoder;
 extern AVCodec ff_a64multi5_encoder;
 extern AVCodec ff_aasc_decoder;
+extern AVCodec ff_acelp_kelvin_decoder;
 extern AVCodec ff_aic_decoder;
 extern AVCodec ff_alias_pix_encoder;
 extern AVCodec ff_alias_pix_decoder;

comment:12 by Aleksandr Ustinov, 3 years ago

Thank you very much it works like a charm!
You are my hero! Thank you again!

comment:13 by Carl Eugen Hoyos, 3 years ago

Were you able to test different samples? Do you have access to the encoder?

comment:14 by Carl Eugen Hoyos, 3 years ago

Apparently a duplicate of ticket #4799.

comment:15 by Aleksandr Ustinov, 3 years ago

Yes, I tested on about 10 different files, and it works perfect. Unfortunately I have no access to encoder.

comment:16 by Carl Eugen Hoyos, 3 years ago

Resolution: duplicate
Status: newclosed

Finally committed as 551fcbbccbca8e78443c049421f01f350d4bc370, thank you for the analysis!

Note: See TracTickets for help on using tickets.