fdkaacdec: audio volume too low when decoding USAC(xHE-AAC) stream
Description
When decoding a USAC/xHE-AAC audio stream produced by exhale encoder(https://gitlab.com/ecodis/exhale), the volume is so tiny which is just about 25% of the volume when decoding AAC-LC stream.
An audio sample is available here: The_Piano_Sonatas_Disc_1_-_01._Sonata_for_Piano_No._1_in_C_major__K._189d-279-_I._Allegro.m4a
This sample works fine with Android and iOS.
USAC seems made DRC mandatory, is that the root cause?
Tested with gst-launch-1.0 filesrc location=M4A_FILE ! decodebin ! pipewiresink
Details
$ gst-inspect-1.0 fdkaacdec
Factory Details:
Rank marginal (64)
Long-name FDK AAC audio decoder
Klass Codec/Decoder/Audio
Description FDK AAC audio decoder
Author Sebastian Dröge <sebastian@centricular.com>
Plugin Details:
Name fdkaac
Description Fraunhofer FDK AAC Codec plugin
Filename /usr/lib64/gstreamer-1.0/libgstfdkaac.so
Version 1.18.4
License LGPL
Source module gst-plugins-bad
Source release date 2021-03-15
Binary package Fedora GStreamer-plugins-bad package
Origin URL http://download.fedoraproject.org
GObject
+----GInitiallyUnowned
+----GstObject
+----GstElement
+----GstAudioDecoder
+----GstFdkAacDec
Pad Templates:
SRC template: 'src'
Availability: Always
Capabilities:
audio/x-raw
format: S16LE
layout: interleaved
rate: [ 8000, 96000 ]
channels: [ 1, 8 ]
SINK template: 'sink'
Availability: Always
Capabilities:
audio/mpeg
mpegversion: { (int)2, (int)4 }
stream-format: { (string)adts, (string)adif, (string)raw }
channels: [ 1, 8 ]
Element has no clocking capabilities.
Element has no URI handling capabilities.
Pads:
SINK: 'sink'
Pad Template: 'sink'
SRC: 'src'
Pad Template: 'src'
Element Properties:
max-errors : Max consecutive decoder errors before returning flow error
flags: readable, writable
Integer. Range: -1 - 2147483647 Default: 10
min-latency : Aggregate output data to a minimum of latency time (ns)
flags: readable, writable
Integer64. Range: 0 - 9223372036854775807 Default: 0
name : The name of the object
flags: readable, writable, 0x2000
String. Default: "fdkaacdec0"
parent : The parent of the object
flags: readable, writable, 0x2000
Object of type "GstObject"
plc : Perform packet loss concealment (if supported)
flags: readable, writable
Boolean. Default: false
tolerance : Perfect ts while timestamp jitter/imperfection within tolerance (ns)
flags: readable, writable
Integer64. Range: 0 - 9223372036854775807 Default: 0
# dnf info fdk-aac
Last metadata expiration check: 1:49:02 ago on Wed 30 Jun 2021 01:58:19 AM JST.
Installed Packages
Name : fdk-aac
Version : 2.0.2
Release : 1.fc34
Architecture : x86_64
Size : 1.2 M
Source : fdk-aac-2.0.2-1.fc34.src.rpm
Repository : @System
From repo : rpmfusion-nonfree-updates
Summary : Fraunhofer FDK AAC Codec Library
URL : https://github.com/mstorsjo/fdk-aac
License : FDK-AAC
Description : The Fraunhofer FDK AAC Codec Library ("FDK AAC Codec") is software that
: implements the MPEG Advanced Audio Coding ("AAC") encoding and decoding
: scheme for digital audio.