---
libavcodec/ac3.h | 8 ++++++++
libavcodec/ac3dec.c | 6 ++++--
libavcodec/ac3dec.h | 1 +
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/libavcodec/ac3.h b/libavcodec/ac3.h
index 661436a..f0b3b1e 100644
--- a/libavcodec/ac3.h
+++ b/libavcodec/ac3.h
@@ -96,6 +96,14 @@ typedef enum AC3DolbySurroundEXMode {
AC3_DSUREXMOD_PLIIZ
} AC3DolbySurroundEXMode;
+/** Dolby Headphone mode */
+typedef enum AC3DolbyHeadphoneMode {
+ AC3_DHEADPHONMOD_NOTINDICATED = 0,
+ AC3_DHEADPHONMOD_OFF,
+ AC3_DHEADPHONMOD_ON,
+ AC3_DHEADPHONMOD_RESERVED
+} AC3DolbyHeadphoneMode;
+
typedef struct AC3BitAllocParameters {
int sr_code;
int sr_shift;
diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c
index fa6ba29..56fc270 100644
--- a/libavcodec/ac3dec.c
+++ b/libavcodec/ac3dec.c
@@ -227,8 +227,9 @@ static int ac3_parse_header(AC3DecodeContext *s)
skip_bits(gbc, 2); //skip copyright bit and original bitstream bit
- /* default dolby surround ex mode */
+ /* default dolby matrix encoding modes */
s->dolby_surround_ex_mode = AC3_DSUREXMOD_NOTINDICATED;
+ s->dolby_headphone_mode = AC3_DHEADPHONMOD_NOTINDICATED;
/* skip the timecodes or parse the Alternate Bit Stream Syntax
TODO: read & use the xbsi1 downmix levels */
@@ -242,7 +243,8 @@ static int ac3_parse_header(AC3DecodeContext *s)
skip_bits(gbc, 14); //skip xbsi1
if (get_bits1(gbc)) {
s->dolby_surround_ex_mode = get_bits(gbc, 2);
- skip_bits(gbc, 12); // skip dheadphonmod, adconvtyp, xbsi2, encinfo
+ s->dolby_headphone_mode = get_bits(gbc, 2);
+ skip_bits(gbc, 10); // skip adconvtyp (1), xbsi2 (8), encinfo (1)
}
}
diff --git a/libavcodec/ac3dec.h b/libavcodec/ac3dec.h
index bba4562..73ca1c3 100644
--- a/libavcodec/ac3dec.h
+++ b/libavcodec/ac3dec.h
@@ -89,6 +89,7 @@ typedef struct AC3DecodeContext {
int eac3; ///< indicates if current frame is
E-AC-3
int dolby_surround_mode; ///< dolby surround mode
(dsurmod)
int dolby_surround_ex_mode; ///< dolby surround ex mode
(dsurexmod)
+ int dolby_headphone_mode; ///< dolby headphone mode
(dheadphonmod)
///@}
///@name Frame syntax parameters
--
1.8.3.4 (Apple Git-47)
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel