Justin Ruggles <[email protected]> added the comment:

Some quotes from the AC-3 spec:

"The dialnorm value is not directly used by the AC-3 decoder."

"In order for the dialogue normalization system to work, the dialnorm value must
be communicated from the AC-3 decoder to the system gain controller so that
dialnorm can interact with the listener adjusted volume control."

"Adjustment of the system volume control is not an AC-3 function.  The AC-3 bit
stream simply conveys useful information which allows the system volume control
to be implemented in a way which automatically removes undesirable level
variations between program sources."

So I think a better solution here would be to add a new field to AVCodecContext
to allow the decoder to export the source dialogue level to the user.  According
to the AC-3 spec, it is "an indication of the subjective loudness of normal
spoken dialogue compared to digital 100 percent."  I think it should be exported
as a float, either as 0.0 to 1.0 scale value or a dB value (which would always
be negative).

A more general issue is that AC-3 has quite a bit of codec-level metadata (and
E-AC-3 even more), some of which is meant to be used outside of the decoder. 
FFmpeg does not have a generic system to allow exporting of such codec-level
metadata.

----------
substatus: needs_more_info -> needs_changes

_____________________________________________________
FFmpeg issue tracker <[email protected]>
<https://roundup.ffmpeg.org/roundup/ffmpeg/issue1153>
_____________________________________________________

Reply via email to