diff --git a/ChangeLog b/ChangeLog index e4167e4..eb1de60 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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. diff --git a/README.txt b/README.txt index d2e2af3..01f9607 100644 --- a/README.txt +++ b/README.txt @@ -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 diff --git a/audio.c b/audio.c index a6fe94a..6ad2907 100644 --- a/audio.c +++ b/audio.c @@ -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 diff --git a/codec.c b/codec.c index ba3d37b..4bd15fe 100644 --- a/codec.c +++ b/codec.c @@ -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 = diff --git a/codec.h b/codec.h index 4a11607..995573a 100644 --- a/codec.h +++ b/codec.h @@ -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) //---------------------------------------------------------------------------- diff --git a/po/de_DE.po b/po/de_DE.po index 62b8a96..5e4d6ac 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: VDR \n" "Report-Msgid-Bugs-To: \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 \n" "Language-Team: LANGUAGE \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" diff --git a/softhddev.c b/softhddev.c index efbbed8..964674a 100644 --- a/softhddev.c +++ b/softhddev.c @@ -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; diff --git a/softhddevice.cpp b/softhddevice.cpp index 395f294..c2839ce 100644 --- a/softhddevice.cpp +++ b/softhddevice.cpp @@ -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")));