Fix bug #1410: wrong spelled AC-3 and E-AC-3.

This commit is contained in:
Johns 2013-07-26 16:55:33 +02:00
parent 93357fb1cd
commit 171a3f4dc9
8 changed files with 45 additions and 40 deletions

View File

@ -1,6 +1,7 @@
User johns
Date:
Fix bug #1410: wrong spelled AC-3 and E-AC-3.
Add compile time selectable h264 trickspeed workaround.
Use ffmpeg new names AVCodecID, AV_CODEC_... .
Fix bug: video lagging behind after recording stop.

View File

@ -89,7 +89,7 @@ Setup: environment
ALSA_DEVICE=default
alsa PCM device name
ALSA_PASSTHROUGH_DEVICE=
alsa pass-though (AC3,EAC3,DTS,...) device name
alsa pass-though (AC-3,E-AC-3,DTS,...) device name
ALSA_MIXER=default
alsa control device name
ALSA_MIXER_CHANNEL=PCM
@ -99,7 +99,7 @@ Setup: environment
OSS_AUDIODEV=/dev/dsp
oss dsp device name
OSS_PASSTHROUGHDEV=
oss pass-though (AC3,EAC3,DTS,...) device name
oss pass-though (AC-3,E-AC-3,DTS,...) device name
OSS_MIXERDEV=/dev/mixer
oss mixer device name
OSS_MIXER_CHANNEL=pcm

20
audio.c
View File

@ -620,7 +620,7 @@ static void AudioResample(const int16_t * in, int in_chan, int frames,
typedef struct _audio_ring_ring_
{
char FlushBuffers; ///< flag: flush buffers
char Passthrough; ///< flag: use pass-through (AC3, ...)
char Passthrough; ///< flag: use pass-through (AC-3, ...)
int16_t PacketSize; ///< packet size
unsigned HwSampleRate; ///< hardware sample rate in Hz
unsigned HwChannels; ///< hardware number of channels
@ -642,7 +642,7 @@ static unsigned AudioStartThreshold; ///< start play, if filled
**
** @param sample_rate sample-rate frequency
** @param channels number of channels
** @param passthrough use /pass-through (AC3, ...) device
** @param passthrough use /pass-through (AC-3, ...) device
**
** @retval -1 error
** @retval 0 okay
@ -838,7 +838,7 @@ static int AlsaPlayRingbuffer(void)
if (!avail) { // full or buffer empty
break;
}
// muting pass-through ac3, can produce disturbance
// muting pass-through AC-3, can produce disturbance
if (AudioMute || (AudioSoftVolume
&& !AudioRing[AudioRingRead].Passthrough)) {
// FIXME: quick&dirty cast
@ -987,7 +987,7 @@ static int AlsaThread(void)
/**
** Open alsa pcm device.
**
** @param passthrough use pass-through (AC3, ...) device
** @param passthrough use pass-through (AC-3, ...) device
*/
static snd_pcm_t *AlsaOpenPCM(int passthrough)
{
@ -1170,7 +1170,7 @@ static int64_t AlsaGetDelay(void)
**
** @param freq sample frequency
** @param channels number of channels
** @param passthrough use pass-through (AC3, ...) device
** @param passthrough use pass-through (AC-3, ...) device
**
** @retval 0 everything ok
** @retval 1 didn't support frequency/channels combination
@ -1563,7 +1563,7 @@ static int OssThread(void)
/**
** Open OSS pcm device.
**
** @param passthrough use pass-through (AC3, ...) device
** @param passthrough use pass-through (AC-3, ...) device
*/
static int OssOpenPCM(int passthrough)
{
@ -1727,7 +1727,7 @@ static int64_t OssGetDelay(void)
**
** @param sample_rate sample rate/frequency
** @param channels number of channels
** @param passthrough use pass-through (AC3, ...) device
** @param passthrough use pass-through (AC-3, ...) device
**
** @retval 0 everything ok
** @retval 1 didn't support frequency/channels combination
@ -1745,7 +1745,7 @@ static int OssSetup(int *sample_rate, int *channels, int passthrough)
return -1;
}
if (1) { // close+open for pcm / ac3
if (1) { // close+open for pcm / AC-3
int fildes;
fildes = OssPcmFildes;
@ -1934,7 +1934,7 @@ static void NoopSetVolume( __attribute__ ((unused))
**
** @param freq sample frequency
** @param channels number of channels
** @param passthrough use pass-through (AC3, ...) device
** @param passthrough use pass-through (AC-3, ...) device
*/
static int NoopSetup( __attribute__ ((unused))
int *channels, __attribute__ ((unused))
@ -2576,7 +2576,7 @@ void AudioSetVolume(int volume)
**
** @param freq sample frequency
** @param channels number of channels
** @param passthrough use pass-through (AC3, ...) device
** @param passthrough use pass-through (AC-3, ...) device
**
** @retval 0 everything ok
** @retval 1 didn't support frequency/channels combination

14
codec.c
View File

@ -710,7 +710,7 @@ enum IEC61937
#ifdef USE_AUDIO_DRIFT_CORRECTION
#define CORRECT_PCM 1 ///< do PCM audio-drift correction
#define CORRECT_AC3 2 ///< do AC3 audio-drift correction
#define CORRECT_AC3 2 ///< do AC-3 audio-drift correction
static char CodecAudioDrift; ///< flag: enable audio-drift correction
#else
static const int CodecAudioDrift = 0;
@ -871,7 +871,7 @@ void CodecAudioClose(AudioDecoder * audio_decoder)
/**
** Set audio drift correction.
**
** @param mask enable mask (PCM, AC3)
** @param mask enable mask (PCM, AC-3)
*/
void CodecSetAudioDrift(int mask)
{
@ -884,7 +884,7 @@ void CodecSetAudioDrift(int mask)
/**
** Set audio pass-through.
**
** @param mask enable mask (PCM, AC3, EAC3)
** @param mask enable mask (PCM, AC-3, E-AC-3)
*/
void CodecSetAudioPassthrough(int mask)
{
@ -985,8 +985,8 @@ static int CodecAudioUpdateHelper(AudioDecoder * audio_decoder,
av_get_sample_fmt_name(audio_ctx->sample_fmt), audio_ctx->sample_rate,
audio_ctx->channels, CodecPassthrough & CodecPCM ? " PCM" : "",
CodecPassthrough & CodecMPA ? " MPA" : "",
CodecPassthrough & CodecAC3 ? " AC3" : "",
CodecPassthrough & CodecEAC3 ? " EAC3" : "",
CodecPassthrough & CodecAC3 ? " AC-3" : "",
CodecPassthrough & CodecEAC3 ? " E-AC-3" : "",
CodecPassthrough ? " pass-through" : "");
*passthrough = 0;
@ -1001,7 +1001,7 @@ static int CodecAudioUpdateHelper(AudioDecoder * audio_decoder,
|| (CodecPassthrough & CodecEAC3
&& audio_ctx->codec_id == AV_CODEC_ID_EAC3)) {
if (audio_ctx->codec_id == AV_CODEC_ID_EAC3) {
// EAC3 over HDMI some receivers need HBR
// E-AC-3 over HDMI some receivers need HBR
audio_decoder->HwSampleRate *= 4;
}
audio_decoder->HwChannels = 2;
@ -1014,7 +1014,7 @@ static int CodecAudioUpdateHelper(AudioDecoder * audio_decoder,
AudioSetup(&audio_decoder->HwSampleRate,
&audio_decoder->HwChannels, *passthrough))) {
// try EAC3 none HBR
// try E-AC-3 none HBR
audio_decoder->HwSampleRate /= 4;
if (audio_ctx->codec_id != AV_CODEC_ID_EAC3
|| (err =

View File

@ -30,7 +30,7 @@
#define CodecPCM 0x01 ///< PCM bit mask
#define CodecMPA 0x02 ///< MPA bit mask (planned)
#define CodecAC3 0x04 ///< AC-3 bit mask
#define CodecEAC3 0x08 ///< EAC-3 bit mask
#define CodecEAC3 0x08 ///< E-AC-3 bit mask
#define CodecDTS 0x10 ///< DTS bit mask (planned)
//----------------------------------------------------------------------------

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: VDR \n"
"Report-Msgid-Bugs-To: <see README>\n"
"POT-Creation-Date: 2013-04-16 15:10+0200\n"
"POT-Creation-Date: 2013-07-25 13:22+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -384,6 +384,10 @@ msgstr ""
msgid "[softhddev] invalid PES video packet\n"
msgstr ""
#, c-format
msgid "[softhddev] %d invalid PES video packet(s)\n"
msgstr ""
msgid "[softhddev] empty video packet\n"
msgstr ""
@ -587,10 +591,10 @@ msgstr ""
msgid " AC-3 pass-through"
msgstr ""
msgid " EAC-3 pass-through"
msgid " E-AC-3 pass-through"
msgstr ""
msgid "Enable (E)AC-3 (decoder) downmix"
msgid "Enable (E-)AC-3 (decoder) downmix"
msgstr ""
msgid "Volume control"
@ -672,7 +676,7 @@ msgid "Alternative Video Height (%)"
msgstr "Alternative Videohöhe (%)"
#, c-format
msgid "[softhddev]pip: invalid pes packet %d\n"
msgid "[softhddev]pip: invalid PES packet %d\n"
msgstr ""
msgid "[softhddev]pip: pes buffer too small\n"

View File

@ -309,7 +309,7 @@ static int LatmCheck(const uint8_t * data, int size)
}
///
/// Possible AC3 frame sizes.
/// Possible AC-3 frame sizes.
///
/// from ATSC A/52 table 5.18 frame size code table.
///
@ -327,9 +327,9 @@ const uint16_t Ac3FrameSizeTable[38][3] = {
};
///
/// Fast check for (E)AC3 audio.
/// Fast check for (E-)AC-3 audio.
///
/// 5 bytes 0x0B77xxxxxx AC3 audio
/// 5 bytes 0x0B77xxxxxx AC-3 audio
///
static inline int FastAc3Check(const uint8_t * p)
{
@ -343,7 +343,7 @@ static inline int FastAc3Check(const uint8_t * p)
}
///
/// Check for (E)AC-3 audio.
/// Check for (E-)AC-3 audio.
///
/// 0x0B77xxxxxx already checked.
///
@ -354,7 +354,7 @@ static inline int FastAc3Check(const uint8_t * p)
/// @retval 0 no valid AC-3 audio
/// @retval >0 valid AC-3 audio
///
/// o AC3 Header
/// o AC-3 Header
/// AAAAAAAA AAAAAAAA BBBBBBBB BBBBBBBB CCDDDDDD EEEEEFFF
///
/// o a 16x Frame sync, always 0x0B77
@ -364,7 +364,7 @@ static inline int FastAc3Check(const uint8_t * p)
/// o e 5x Bitstream ID
/// o f 3x Bitstream mode
///
/// o EAC3 Header
/// o E-AC-3 Header
/// AAAAAAAA AAAAAAAA BBCCCDDD DDDDDDDD EEFFGGGH IIIII...
///
/// o a 16x Frame sync, always 0x0B77
@ -378,17 +378,17 @@ static int Ac3Check(const uint8_t * data, int size)
{
int frame_size;
if (size < 5) { // need 5 bytes to see if AC3/EAC3
if (size < 5) { // need 5 bytes to see if AC-3/E-AC-3
return -5;
}
if (data[5] > (10 << 3)) { // EAC3
if (data[5] > (10 << 3)) { // E-AC-3
if ((data[4] & 0xF0) == 0xF0) { // invalid fscod fscod2
return 0;
}
frame_size = ((data[2] & 0x03) << 8) + data[3] + 1;
frame_size *= 2;
} else { // AC3
} else { // AC-3
int fscod;
int frmsizcod;
@ -664,8 +664,8 @@ static void PesParse(PesDemux * pesdx, const uint8_t * data, int size,
unsigned codec_id;
// 4 bytes 0xFFExxxxx Mpeg audio
// 5 bytes 0x0B77xxxxxx AC3 audio
// 6 bytes 0x0B77xxxxxxxx EAC3 audio
// 5 bytes 0x0B77xxxxxx AC-3 audio
// 6 bytes 0x0B77xxxxxxxx E-AC-3 audio
// 3 bytes 0x56Exxx AAC LATM audio
// 7/9 bytes 0xFFFxxxxxxxxxxx ADTS audio
// PCM audio can't be found
@ -1170,8 +1170,8 @@ int PlayAudio(const uint8_t * data, int size, uint8_t id)
// 4 bytes 0xFFExxxxx Mpeg audio
// 3 bytes 0x56Exxx AAC LATM audio
// 5 bytes 0x0B77xxxxxx AC3 audio
// 6 bytes 0x0B77xxxxxxxx EAC3 audio
// 5 bytes 0x0B77xxxxxx AC-3 audio
// 6 bytes 0x0B77xxxxxxxx E-AC-3 audio
// 7/9 bytes 0xFFFxxxxxxxxxxx ADTS audio
// PCM audio can't be found
r = 0;

View File

@ -52,7 +52,7 @@ extern "C"
/// vdr-plugin version number.
/// Makefile extracts the version number for generating the file name
/// for the distribution archive.
static const char *const VERSION = "0.6.0"
static const char *const VERSION = "0.6.1rc1"
#ifdef GIT_REV
"-GIT" GIT_REV
#endif
@ -854,9 +854,9 @@ void cMenuSetupSoft::Create(void)
&AudioPassthroughPCM, trVDR("no"), trVDR("yes")));
Add(new cMenuEditBoolItem(tr("\040\040AC-3 pass-through"),
&AudioPassthroughAC3, trVDR("no"), trVDR("yes")));
Add(new cMenuEditBoolItem(tr("\040\040EAC-3 pass-through"),
Add(new cMenuEditBoolItem(tr("\040\040E-AC-3 pass-through"),
&AudioPassthroughEAC3, trVDR("no"), trVDR("yes")));
Add(new cMenuEditBoolItem(tr("Enable (E)AC-3 (decoder) downmix"),
Add(new cMenuEditBoolItem(tr("Enable (E-)AC-3 (decoder) downmix"),
&AudioDownmix, trVDR("no"), trVDR("yes")));
Add(new cMenuEditBoolItem(tr("Volume control"), &AudioSoftvol,
tr("Hardware"), tr("Software")));