aacdec: add support for dual mono in Japanese DTV
authorAkihiro Tsukada <atsukada@users.sourceforge.net>
Sat, 25 Aug 2012 11:30:54 +0000 (20:30 +0900)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 15 Sep 2012 01:50:04 +0000 (03:50 +0200)
commitc3c646a868b46f60c2761c9fc8295438868a5df2
tree48f56f462e7c7235c4bb5777f5184ceeaf2c0f61
parent75d34864d16fbf02928c319134bd94a7a7752092
aacdec: add support for dual mono in Japanese DTV

Japanese DTV uses some non standard extensions in AAC audio.
One example is 'dual mono', which combines two independent
audio into one stereo stream, storing them in left and right channels
respectively.  Historically, dual mono audio has been used for
multi-lingual audio, one for local/native language, and another for english,
and usually the "main" (local language) channel should be output without
any user interactions.

The frames of those dual mono audio are allowed to set
ADTS channel_config field to 0, and just contain two SCE's *WITHOUT* PCE,
which is a non standard extension by Japanese DTV standard.
(ref. ARIB STD-B32 PartII 5.2.3)

This patch adds an AVPacket side data, AV_PKT_DATA_JP_DUALMONO,
which indicates that the AVPacket is likely to contain an audio frame
with the above dual mono extension, and has the parameter to specify
the desired channel selection in that case.
It also makes aacdec to detect dual mono and output just the desired
channel when this side data is attached.

Signed-off-by: Akihiro Tsukada <atsukada@users.sourceforge.net>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavcodec/aac.h
libavcodec/aacdec.c
libavcodec/avcodec.h
libavcodec/version.h