amrnb, amrwbdec: move AMR-NB and AMR-WB plugins to -good

Fedora ships these libraries as part of the main distribution now,
and they are decades old anyway so don't implement any of the newer
features.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4512>
This commit is contained in:
Tim-Philipp Müller 2023-04-28 16:06:24 +01:00 committed by GStreamer Marge Bot
parent e1faaefea0
commit 83026f6289
25 changed files with 211 additions and 403 deletions

View file

@ -51,6 +51,10 @@ This file lists supporting libraries for which gst-plugins-good contains
plugins, as well as their minimum required version. You can find the
corresponding plugins in ext/(library)
Package: opencore-amr (for the AMR-NB decoder and encoder and the AMR-WB decoder)
URL: http://sourceforge.net/projects/opencore-amr/
DebianPackage: libopencore-amrnb-dev
Package: Orc
Version: >= 0.4.17
Recommended: Latest 0.4.x

View file

@ -1742,6 +1742,205 @@
"tracers": {},
"url": "Unknown package origin"
},
"amrnb": {
"description": "Adaptive Multi-Rate Narrow-Band",
"elements": {
"amrnbdec": {
"author": "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>",
"description": "Adaptive Multi-Rate Narrow-Band audio decoder",
"hierarchy": [
"GstAmrnbDec",
"GstAudioDecoder",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"klass": "Codec/Decoder/Audio",
"pad-templates": {
"sink": {
"caps": "audio/AMR:\n rate: 8000\n channels: 1\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n rate: 8000\n channels: 1\n",
"direction": "src",
"presence": "always"
}
},
"properties": {
"variant": {
"blurb": "The decoder variant",
"conditionally-available": false,
"construct": true,
"construct-only": false,
"controllable": false,
"default": "IF1 (0)",
"mutable": "null",
"readable": true,
"type": "GstAmrnbVariant",
"writable": true
}
},
"rank": "primary"
},
"amrnbenc": {
"author": "Wim Taymans <wim.taymans@gmail.com>",
"description": "Adaptive Multi-Rate Narrow-Band audio encoder",
"hierarchy": [
"GstAmrnbEnc",
"GstAudioEncoder",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"interfaces": [
"GstPreset"
],
"klass": "Codec/Encoder/Audio",
"pad-templates": {
"sink": {
"caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n rate: 8000\n channels: 1\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "audio/AMR:\n rate: 8000\n channels: 1\n",
"direction": "src",
"presence": "always"
}
},
"properties": {
"band-mode": {
"blurb": "Encoding Band Mode (Kbps)",
"conditionally-available": false,
"construct": true,
"construct-only": false,
"controllable": false,
"default": "MR122 (7)",
"mutable": "null",
"readable": true,
"type": "GstAmrnbEncBandMode",
"writable": true
}
},
"rank": "secondary"
}
},
"filename": "gstamrnb",
"license": "unknown",
"other-types": {
"GstAmrnbEncBandMode": {
"kind": "enum",
"values": [
{
"desc": "MR475",
"name": "MR475",
"value": "0"
},
{
"desc": "MR515",
"name": "MR515",
"value": "1"
},
{
"desc": "MR59",
"name": "MR59",
"value": "2"
},
{
"desc": "MR67",
"name": "MR67",
"value": "3"
},
{
"desc": "MR74",
"name": "MR74",
"value": "4"
},
{
"desc": "MR795",
"name": "MR795",
"value": "5"
},
{
"desc": "MR102",
"name": "MR102",
"value": "6"
},
{
"desc": "MR122",
"name": "MR122",
"value": "7"
},
{
"desc": "MRDTX",
"name": "MRDTX",
"value": "8"
}
]
},
"GstAmrnbVariant": {
"kind": "enum",
"values": [
{
"desc": "IF1",
"name": "IF1",
"value": "0"
},
{
"desc": "IF2",
"name": "IF2",
"value": "1"
}
]
}
},
"package": "GStreamer Good Plug-ins",
"source": "gst-plugins-good",
"tracers": {},
"url": "Unknown package origin"
},
"amrwbdec": {
"description": "Adaptive Multi-Rate Wide-Band Decoder",
"elements": {
"amrwbdec": {
"author": "Renato Araujo <renato.filho@indt.org.br>",
"description": "Adaptive Multi-Rate Wideband audio decoder",
"hierarchy": [
"GstAmrwbDec",
"GstAudioDecoder",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"klass": "Codec/Decoder/Audio",
"pad-templates": {
"sink": {
"caps": "audio/AMR-WB:\n rate: 16000\n channels: 1\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n rate: 16000\n channels: 1\n",
"direction": "src",
"presence": "always"
}
},
"rank": "primary"
}
},
"filename": "gstamrwbdec",
"license": "unknown",
"other-types": {},
"package": "GStreamer Good Plug-ins",
"source": "gst-plugins-good",
"tracers": {},
"url": "Unknown package origin"
},
"apetag": {
"description": "APEv1/2 tag reader",
"elements": {

View file

@ -3,7 +3,7 @@ amrnb_dep = dependency('opencore-amrnb', version : '>= 0.1.3', required : get_op
if amrnb_dep.found()
amrnb = library('gstamrnb',
['amrnb.c', 'amrnbdec.c', 'amrnbenc.c'],
c_args : ugly_args,
c_args : gst_plugins_good_args,
include_directories : [configinc],
dependencies : [gstaudio_dep, amrnb_dep],
install : true,

View file

@ -3,7 +3,7 @@ amrwb_dep = dependency('opencore-amrwb', version : '>= 0.1.3', required : get_op
if amrwb_dep.found()
amrwbdec = library('gstamrwbdec',
['amrwb.c', 'amrwbdec.c'],
c_args : ugly_args,
c_args : gst_plugins_good_args,
include_directories : [configinc],
dependencies : [gstaudio_dep, amrwb_dep],
install : true,

View file

@ -1,5 +1,7 @@
subdir('aalib')
subdir('adaptivedemux2')
subdir('amrnb')
subdir('amrwbdec')
subdir('cairo')
subdir('flac')
subdir('gdk_pixbuf')

View file

@ -47,6 +47,8 @@ option('y4m', type : 'feature', value : 'auto')
# Feature options for plugins with external deps
option('adaptivedemux2', type : 'feature', value : 'auto', description : '2nd generation adaptive demuxer plugin')
option('aalib', type : 'feature', value : 'auto', description : 'aalib text console video sink plugin')
option('amrnb', type : 'feature', value : 'auto', description : 'Adaptive Multi-Rate Narrow-Band audio codec plugin')
option('amrwbdec', type : 'feature', value : 'auto', description : 'Adaptive Multi-Rate Wide-Band audio decoder plugin')
option('bz2', type : 'feature', value : 'auto', description : 'libbz2 support in the matroska plugin')
option('cairo', type : 'feature', value : 'auto', description : 'Cairo overlay plugin')
option('directsound', type : 'feature', value : 'auto', description : 'Directsound audio source/sink plugin')

View file

@ -131,7 +131,7 @@ GST_START_TEST (test_enc)
GST_END_TEST;
static Suite *
amrnbenc_suite ()
amrnbenc_suite (void)
{
Suite *s = suite_create ("amrnbenc");
TCase *tc_chain = tcase_create ("general");

View file

@ -136,6 +136,7 @@ libsoup3_dep = dependency('libsoup-3.0', required : false,
# FIXME: unistd dependency or not tested yet on windows
if host_machine.system() != 'windows'
good_tests += [
[ 'elements/amrnbenc', not amrnb_dep.found() ],
[ 'elements/dash_mpd', not adaptivedemux2_dep.found(), [adaptivedemux2_dep] ],
[ 'pipelines/flacdec', not flac_dep.found() ],
[ 'elements/gdkpixbufsink', not gdkpixbuf_dep.found(), [gdkpixbuf_dep] ],

View file

@ -32,8 +32,6 @@ ext/(library)
a52dec (for the a52dec AC-3 decoder)
http://liba52.sourceforge.net/
opencore-amr (for the AMR-NB decoder and encoder and the AMR-WB decoder)
http://sourceforge.net/projects/opencore-amr/
libdvdread (for the dvdreadsrc)
http://www.dtek.chalmers.se/groups/dvd/
(optional: libcss for encrypted DVDs)

View file

@ -122,209 +122,6 @@
"tracers": {},
"url": "Unknown package origin"
},
"amrnb": {
"description": "Adaptive Multi-Rate Narrow-Band",
"elements": {
"amrnbdec": {
"author": "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>",
"description": "Adaptive Multi-Rate Narrow-Band audio decoder",
"hierarchy": [
"GstAmrnbDec",
"GstAudioDecoder",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"klass": "Codec/Decoder/Audio",
"long-name": "AMR-NB audio decoder",
"pad-templates": {
"sink": {
"caps": "audio/AMR:\n rate: 8000\n channels: 1\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n rate: 8000\n channels: 1\n",
"direction": "src",
"presence": "always"
}
},
"properties": {
"variant": {
"blurb": "The decoder variant",
"conditionally-available": false,
"construct": true,
"construct-only": false,
"controllable": false,
"default": "IF1 (0)",
"mutable": "null",
"readable": true,
"type": "GstAmrnbVariant",
"writable": true
}
},
"rank": "primary"
},
"amrnbenc": {
"author": "Wim Taymans <wim.taymans@gmail.com>",
"description": "Adaptive Multi-Rate Narrow-Band audio encoder",
"hierarchy": [
"GstAmrnbEnc",
"GstAudioEncoder",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"interfaces": [
"GstPreset"
],
"klass": "Codec/Encoder/Audio",
"long-name": "AMR-NB audio encoder",
"pad-templates": {
"sink": {
"caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n rate: 8000\n channels: 1\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "audio/AMR:\n rate: 8000\n channels: 1\n",
"direction": "src",
"presence": "always"
}
},
"properties": {
"band-mode": {
"blurb": "Encoding Band Mode (Kbps)",
"conditionally-available": false,
"construct": true,
"construct-only": false,
"controllable": false,
"default": "MR122 (7)",
"mutable": "null",
"readable": true,
"type": "GstAmrnbEncBandMode",
"writable": true
}
},
"rank": "secondary"
}
},
"filename": "gstamrnb",
"license": "unknown",
"other-types": {
"GstAmrnbEncBandMode": {
"kind": "enum",
"values": [
{
"desc": "MR475",
"name": "MR475",
"value": "0"
},
{
"desc": "MR515",
"name": "MR515",
"value": "1"
},
{
"desc": "MR59",
"name": "MR59",
"value": "2"
},
{
"desc": "MR67",
"name": "MR67",
"value": "3"
},
{
"desc": "MR74",
"name": "MR74",
"value": "4"
},
{
"desc": "MR795",
"name": "MR795",
"value": "5"
},
{
"desc": "MR102",
"name": "MR102",
"value": "6"
},
{
"desc": "MR122",
"name": "MR122",
"value": "7"
},
{
"desc": "MRDTX",
"name": "MRDTX",
"value": "8"
}
]
},
"GstAmrnbVariant": {
"kind": "enum",
"values": [
{
"desc": "IF1",
"name": "IF1",
"value": "0"
},
{
"desc": "IF2",
"name": "IF2",
"value": "1"
}
]
}
},
"package": "GStreamer Ugly Plug-ins",
"source": "gst-plugins-ugly",
"tracers": {},
"url": "Unknown package origin"
},
"amrwbdec": {
"description": "Adaptive Multi-Rate Wide-Band Decoder",
"elements": {
"amrwbdec": {
"author": "Renato Araujo <renato.filho@indt.org.br>",
"description": "Adaptive Multi-Rate Wideband audio decoder",
"hierarchy": [
"GstAmrwbDec",
"GstAudioDecoder",
"GstElement",
"GstObject",
"GInitiallyUnowned",
"GObject"
],
"klass": "Codec/Decoder/Audio",
"long-name": "AMR-WB audio decoder",
"pad-templates": {
"sink": {
"caps": "audio/AMR-WB:\n rate: 16000\n channels: 1\n",
"direction": "sink",
"presence": "always"
},
"src": {
"caps": "audio/x-raw:\n format: S16LE\n layout: interleaved\n rate: 16000\n channels: 1\n",
"direction": "src",
"presence": "always"
}
},
"properties": {},
"rank": "primary"
}
},
"filename": "gstamrwbdec",
"license": "unknown",
"other-types": {},
"package": "GStreamer Ugly Plug-ins",
"source": "gst-plugins-ugly",
"tracers": {},
"url": "Unknown package origin"
},
"asf": {
"description": "Demuxes and muxes audio and video in Microsofts ASF format",
"elements": {

View file

@ -1,6 +1,4 @@
subdir('a52dec')
subdir('amrnb')
subdir('amrwbdec')
subdir('cdio')
subdir('dvdread')
subdir('mpeg2dec')

View file

@ -9,8 +9,6 @@ option('realmedia', type : 'feature', value : 'auto')
# Feature options for plugins that need external deps
option('a52dec', type : 'feature', value : 'auto', description : 'Dolby Digital (AC-3) audio decoder plugin based on liba52 (GPL - only built if gpl option is also enabled!)')
option('amrnb', type : 'feature', value : 'auto', description : 'Adaptive Multi-Rate Narrow-Band audio codec plugin')
option('amrwbdec', type : 'feature', value : 'auto', description : 'Adaptive Multi-Rate Wide-Band audio decoder plugin')
option('cdio', type : 'feature', value : 'auto', description : 'CD audio source plugin based on libcdio (GPL - only built if gpl option is also enabled!)')
option('dvdread', type : 'feature', value : 'auto', description : 'DVD video source plugin based on libdvdread (GPL - only built if gpl option is also enabled!)')
option('mpeg2dec', type : 'feature', value : 'auto', description : 'MPEG 2 video decoder plugin based on libmpeg2 (GPL - only built if gpl option is also enabled!)')

View file

@ -1,190 +0,0 @@
### amrnb suppressions
### these should/could be submitted to amrnb
{
<amrnb>
Memcheck:Cond
fun:Encoder_Interface_Encode
fun:gst_amrnbenc_chain
fun:gst_pad_chain
fun:gst_pad_push
}
{
<amrnb>
Memcheck:Cond
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
fun:gst_amrnbenc_chain
fun:gst_pad_chain
fun:gst_pad_push
}
{
<amrnb>
Memcheck:Cond
obj:/usr/lib/libamrnb.so*
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
fun:gst_amrnbenc_chain
fun:gst_pad_chain
fun:gst_pad_push
}
{
<amrnb>
Memcheck:Cond
obj:/usr/lib/libamrnb.so*
obj:/usr/lib/libamrnb.so*
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
fun:gst_amrnbenc_chain
fun:gst_pad_chain
fun:gst_pad_push
}
{
<amrnb>
Memcheck:Cond
obj:/usr/lib/libamrnb.so*
obj:/usr/lib/libamrnb.so*
obj:/usr/lib/libamrnb.so*
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
fun:gst_amrnbenc_chain
fun:gst_pad_chain
fun:gst_pad_push
}
{
<amrnb acos>
Memcheck:Cond
fun:acos
obj:/usr/lib/libamrnb.so*
obj:/usr/lib/libamrnb.so*
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
fun:gst_amrnbenc_chain
fun:gst_pad_chain
fun:gst_pad_push
}
{
<AMR encoder>
Memcheck:Cond
fun:Levinson
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:Az_lsp
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:acos
fun:Lsp_lsf
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:Lsf_wt
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:Vq_subvec
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:Lag_max
fun:Pitch_ol
fun:ol_ltp
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:Pitch_ol
fun:ol_ltp
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:cl_ltp
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:searchFrac
fun:cl_ltp
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:q_gain_pitch
fun:cl_ltp
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:set_sign12k2
fun:code_10i40_35bits
fun:cbsearch
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:code_10i40_35bits
fun:cbsearch
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder>
Memcheck:Cond
fun:gainQuant
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}
{
<AMR encoder on FC4>
Memcheck:Value2
obj:/usr/lib/libamrnb.so.0.0.0
fun:Speech_Encode_Frame
fun:Encoder_Interface_Encode
}

View file

@ -7,7 +7,6 @@ ugly_tests = [
# FIXME: unistd dependency or not tested yet on windows
if host_machine.system() != 'windows'
ugly_tests += [
[ 'elements/amrnbenc', not amrnb_dep.found() ],
[ 'elements/mpeg2dec', not mpeg2_dep.found() or not cdata.has('HAVE_UNISTD_H'), [ gstvideo_dep ] ],
]
endif