Thibault Saunier
a917648be3
fdkaacdec: Add Converter class to hint gst-validate
...
fdkaacdec have minimal conversion capability, adding the Converter class allow
gst-validate to behave properly and not spit an error when it notice that the
number of channels or rate miss-match in and out.
Same logic as with opusdec, see: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1142 >
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2462 >
2021-08-13 15:25:16 +00:00
Tim-Philipp Müller
8e04651b8b
Use gst_buffer_new_memdup()
...
Update for function rename in core.
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/827
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2281 >
2021-05-24 19:05:27 +01:00
Tim-Philipp Müller
0151276d7f
Use new gst_buffer_new_copy()
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2279 >
2021-05-23 17:20:16 +01:00
Stéphane Cerveau
c1b47c0780
fdkaac: allow per feature registration
...
Split plugin into features including
dynamic types which can be indiviually
registered during a static build.
More details here:
https://gitlab.freedesktop.org/gstreamer/gst-build/-/merge_requests/199
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/661
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2038 >
2021-03-23 14:19:16 +00:00
Vivia Nikolaidou
dc58065dfb
fdkaacenc: Implement flush function
...
The internal fdk encoder always produces 1024 bytes even with no input,
so special care should be taken to not drain it twice.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1515 >
2020-08-17 23:39:39 +03:00
Jan Alexander Steffens (heftig)
76c171509e
fdkaacenc: Refactor layout selection code
...
No functional change.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1359 >
2020-08-17 10:19:56 +02:00
Jan Alexander Steffens (heftig)
5e68124981
fdkaacenc: Move channel layouts to gstfdkaac.c
...
In preparation of sharing them with the decoder. Iteration of the
channel layouts needs to be changed to use a sentinel element.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1359 >
2020-08-17 08:07:00 +00:00
Vivia Nikolaidou
41950f2aba
fdkaacenc: Add missing SURROUND mappings
...
SURROUND is more to spec according to the FIXME comments, so add this.
Also add SIDE for 5 and 5.1 because of ffmpeg compatibility, because the
following pipeline downmixes to mono otherwise:
gst-launch-1.0 audiotestsrc num-buffers=1 ! audio/x-raw, channels=6 !
avenc_ac3 ! avdec_ac3 ! audioconvert ! fdkaacenc ! fakesink -v
Fixes #1327
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1352 >
2020-06-22 07:14:20 +00:00
Stéphane Cerveau
4b72e8cad5
fdkaacdec: add support for mpegversion=2
...
Fix for #1199
2020-02-04 07:52:22 +00:00
Stéphane Cerveau
6bc0e9527e
remove various useless linefeed in logs
2019-12-11 10:51:29 +01:00
Tim-Philipp Müller
f218ec2794
Remove autotools build system
2019-10-14 13:54:27 +01:00
Thibault Saunier
47a49f3381
docs: Build documentation with hotdoc
2019-05-13 17:00:00 -04:00
Jan Alexander Steffens (heftig)
3bc9bd2b99
fdkaacenc: Fix draining with libfdk-aac v2.0.0
...
This release requires all buffer descriptor pointers to be valid, even
when we provide zero input buffers.
2019-02-13 16:12:03 +01:00
Yeongjin Jeong
52e4a20b4e
fdkaacdec: Fix build for fdkaac < 0.1.4
...
The fdkaac decoder supports 6.1 / 7.1 channels with downmixer
since v0.1.4. Old versions can use AAC_PCM_OUTPUT_CHANNELS
instead of AAC_PCM_MAX_OUTPUT_CHANNELS.
Fixes #873
2019-01-25 15:50:31 -05:00
Jan Alexander Steffens (heftig)
f964fb38b6
fdkaac: Syntax tweaks to increase readability
...
Mostly move some assignments out of conditionals that gst-indent
completely destroys.
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
c5a17000b6
fdkaacdec: Enable 8-channel playback
...
The decoder seems to default to 6 channels max, downmixing 7.1 to 5.1.
Disable the channel limit to expose all channels to GStreamer.
In addition, none of the standard configurations use ACT_SIDE channels.
The rear channels of the 7.1 configuration have to be taken from
ACT_BACK. See the table in aacenc_lib.h, reproduced here:
----------------------------------------------------------------------------------------
ChannelMode | ChCfg | Height | front_El | side_El | back_El | lfe_El
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_1 | 1 | NORM | SCE | | |
MODE_2 | 2 | NORM | CPE | | |
MODE_1_2 | 3 | NORM | SCE, CPE | | |
MODE_1_2_1 | 4 | NORM | SCE, CPE | | SCE |
MODE_1_2_2 | 5 | NORM | SCE, CPE | | CPE |
MODE_1_2_2_1 | 6 | NORM | SCE, CPE | | CPE | LFE
MODE_1_2_2_2_1 | 7 | NORM | SCE, CPE, CPE | | CPE | LFE
MODE_6_1 | 11 | NORM | SCE, CPE | | CPE, SCE | LFE
MODE_7_1_BACK | 12 | NORM | SCE, CPE | | CPE, CPE | LFE
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_7_1_TOP_FRONT | 14 | NORM | SCE, CPE | | CPE | LFE
| | TOP | CPE | | |
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_7_1_REAR_SURROUND | 0 | NORM | SCE, CPE | | CPE, CPE | LFE
MODE_7_1_FRONT_CENTER | 0 | NORM | SCE, CPE, CPE | | CPE | LFE
----------------------------------------------------------------------------------------
- NORM: Normal Height Layer. - TOP: Top Height Layer. - BTM: Bottom Height Layer.
- SCE: Single Channel Element. - CPE: Channel Pair. - LFE: Low Frequency Element.
Restores 8 channels to
https://www2.iis.fraunhofer.de/AAC/7.1auditionOutLeader_v2_rtb.mp4
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
4ec3f2f193
fdkaacenc: Add support for v2.0.0 and its configurations
...
These are MPEG-standard configurations so should be checked first,
before the PCE clones added by v0.1.4.
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
bc3c5ea7b1
fdkaacenc: Add support for MPEG configuration 7
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
3a9f5a76e8
fdkaacenc: Add a description of each configuration
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
383fe6f81d
fdkaacenc: Prefer REAR for surround channels
...
We (currently?) prefer to use the REAR positions for what MPEG calls
"surround" channels.
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
19d34f6b5e
fdkaacdec: Use WAV channel mapping instead of interleave setting
...
The latter is going away in libfdk-aac 2.0.0. Instead, MPEG-style output
is always non-interleaved and WAV-style output is always interleaved.
Earlier libfdk-aac also defaults interleaving accordingly.
Since our reordering looks at the associated PCE indices instead of the
actual channel order, we're agnostic to the mapping.
For https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/825
2018-12-05 21:50:03 +00:00
Jan Alexander Steffens (heftig)
f4fdb9770c
fdkaacenc: Remove MODE_2_1
...
This is not a standard mode and no longer supported by fdk-aac 2.0.0.
For https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/825
2018-12-05 21:50:03 +00:00
Nirbheek Chauhan
b55dfb5313
Add feature options for almost all plugins
...
The only plugins remaining are those that haven't been ported to Meson
yet, and msdk. Also, the tests are still automagic.
https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 19:04:38 +05:30
Xavier Claessens
83d0623293
Meson: Generate pc file for all plugins in bad
...
https://bugzilla.gnome.org/show_bug.cgi?id=794568
2018-04-25 11:08:09 +01:00
Mathieu Duponchelle
2bf57a92cc
fdkaacenc: check fdk-aac version in meson.build
...
configure.ac used to set -DHAVE_FDK_AAC_0_1_4 , which enables
7.1 support.
https://bugzilla.gnome.org/show_bug.cgi?id=789471
2017-10-25 14:36:55 +02:00
Nicolas Dufresne
4261692187
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Stefan Sauer
d847812d57
fdk-aac: fix version number
...
As pointed out on irc, the version was menat to be 0.1.4.
2017-01-20 16:44:42 +01:00
Stefan Sauer
f149f6bc0e
fdkaac: fix the build for older fdkaac versions
...
Support for 7.1 was added in 0.1.14.
2016-12-07 16:08:41 +01:00
Sebastian Dröge
2bcb928e30
fdkaac: Add meson.build
2016-11-02 20:14:23 +02:00
Vincent Penquerc'h
ce59031b10
fdkaacenc: fix accessing freed memory
...
The buffer data is not always copied in _Fill, and will be
read in _DecodeFrame. We unmap at the end of the function,
whether we get there via failure or early out, and keep a
ref to the buffer to ensure we can use it to unmap the
memory even after _finish_frame is called, as it unrefs
the buffer.
Note that there is an access beyond the allocated buffer,
which is only apparent when playing from souphttpsrc (ie,
not from filesrc). This appears to be a bug in the bit
reading code in libfdkaac AFAICT.
https://bugzilla.gnome.org/show_bug.cgi?id=772186
2016-09-29 15:13:07 +01:00
Vincent Penquerc'h
58bb21c463
fdkaacdec: avoid memory corruption on decoding error
...
The buffer size is expected to be in multiples of the sample size,
not in bytes.
https://bugzilla.gnome.org/show_bug.cgi?id=772186
2016-09-29 15:13:07 +01:00
Vincent Penquerc'h
95de5bf193
fdkaacenc: fix buffer leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=772186
2016-09-29 15:13:07 +01:00
Vincent Penquerc'h
20caebe6a1
fdkaacenc: set framed=true on src caps
...
This fixes muxing in MPEG TS.
https://bugzilla.gnome.org/show_bug.cgi?id=772108
2016-09-28 10:04:24 +01:00
Vincent Penquerc'h
28a5826fa4
fdkaacenc: set transmux on the fdkaac lib
...
Not doing so will fail to decode in a simple fdkaacenc ! fdkaacdec
pipeline, though would work if this goes through a file.
https://bugzilla.gnome.org/show_bug.cgi?id=772067
2016-09-27 17:20:18 +01:00
Vincent Penquerc'h
fed624a208
fdkaacdec: do not error out of out of sync return
...
The docs say we should continue feeding in data and decoding
https://bugzilla.gnome.org/show_bug.cgi?id=772067
2016-09-27 17:20:18 +01:00
Vincent Penquerc'h
a828b12ca8
fdkaac: fix error with AOT_MP2_AAC_LC removed from libfdkaac API
...
AOT_MP2_AAC_LC is a "pseudo AOT" which got removed after 0.1.4,
and maps to AOT_AAC_LC.
Remove mpegversion 2 from th caps to match.
https://bugzilla.gnome.org/show_bug.cgi?id=772067
2016-09-27 17:20:18 +01:00
Olivier Crête
1b0cdcdf3e
fdkaac: fix mixup setting interleaved output
...
https://bugzilla.gnome.org/show_bug.cgi?id=770455
2016-09-26 11:43:22 +01:00
Sebastian Dröge
15da533580
fdkaacenc: Implement some automatic bitrate selection
...
Based on sample rate and channel count, see
http://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC#Recommended_Sampling_Rate_and_Bitrate_Combinations
2016-08-24 19:43:55 +03:00
Sebastian Dröge
cb20432f9f
fdkaac: Add FDK AAC based decoder element
...
Missing is support for error concealment, etc.
2016-08-07 15:42:15 +03:00
Sebastian Dröge
ff83eceb13
fdkaac: Add FDK AAC based encoder element
...
This currently only handles LC profile and exposes a bitrate property, but
handles up to 7.1 channels. See TODO list for missing features.
2016-08-07 15:41:04 +03:00
Sebastian Dröge
24501c6358
fdkaac: Initial plugin skeleton
2016-08-07 15:31:09 +03:00