[vlc-commits] packetizer: detect AC-3 core + EAC3 extension
Thomas Guillem
git at videolan.org
Tue Oct 8 08:49:55 CEST 2019
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Thu Oct 3 16:05:09 2019 +0200| [a87875a8c263c3f2b94647e229aaafb0544f2cda] | committer: Thomas Guillem
packetizer: detect AC-3 core + EAC3 extension
This will allow audio output to first try EAC3 and/or fallback to AC3.
cf. https://en.wikipedia.org/wiki/Dolby_Digital_Plus#HD_DVD_and_Blu-ray_Disc
"On Blu-ray Disc, DD+ is an optional codec, and is deployed as an extension to a
"core" AC-3 5.1 audiotrack. The AC-3 core is encoded at 640 kbit/s, carries 5
primary channels (and 1 LFE), and is independently playable as a movie audio
track by any Blu-ray Disc player. The DD+ extension bitstream is used on
players that support it by replacing the rear channels in the 5.1 setup with
higher fidelity versions, along with providing a possible channel extension to
6.1 or 7.1. The complete audio track is allowed a combined bitrate of 1.7
Mbit/s: 640 kbit/s for the AC-3 5.1 core, and 1 Mbit/s for the DD+ extension.
During playback, both the core and extension bitstreams contribute to the final
audio-output, according to rules embedded in the bitstream metadata."
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a87875a8c263c3f2b94647e229aaafb0544f2cda
---
modules/packetizer/a52.c | 4 ++++
modules/packetizer/a52.h | 2 ++
2 files changed, 6 insertions(+)
diff --git a/modules/packetizer/a52.c b/modules/packetizer/a52.c
index 91afafcf54..15890af14b 100644
--- a/modules/packetizer/a52.c
+++ b/modules/packetizer/a52.c
@@ -258,7 +258,11 @@ static block_t *PacketizeBlock( decoder_t *p_dec, block_t **pp_block )
vlc_a52_header_t a52;
if( !vlc_a52_header_Parse( &a52, p_header, VLC_A52_MIN_HEADER_SIZE )
&& a52.b_eac3 && a52.bs.eac3.strmtyp == EAC3_STRMTYP_DEPENDENT )
+ {
p_sys->i_input_size += a52.i_size;
+ p_dec->fmt_out.i_codec = VLC_CODEC_A52;
+ p_dec->fmt_out.i_profile = VLC_A52_PROFILE_EAC3_DEPENDENT;
+ }
p_sys->i_state = STATE_GET_DATA;
break;
diff --git a/modules/packetizer/a52.h b/modules/packetizer/a52.h
index 42d09dc7bd..fe04b5edf6 100644
--- a/modules/packetizer/a52.h
+++ b/modules/packetizer/a52.h
@@ -36,6 +36,8 @@
#define VLC_A52_EAC3_BSI_SIZE ((532 + 7)/8)
#define VLC_A52_EAC3_HEADER_SIZE (VLC_A52_EAC3_BSI_SIZE + 2)
+#define VLC_A52_PROFILE_EAC3_DEPENDENT 1
+
/**
* AC3 header information.
*/
More information about the vlc-commits
mailing list