From 73ce4ba803d6a879e7ae0a005bd5f95952a0c8fc Mon Sep 17 00:00:00 2001 From: jinx <@> Date: Mon, 16 Feb 2015 10:02:27 +0100 Subject: Enable toggle AC3 downmix. --- ChangeLog | 7 ++++++- README.txt | 1 + codec.c | 1 + po/de_DE.po | 33 ++++++++++++++++++++++++++------- softhddev.c | 10 ++++++++++ softhddev.h | 2 ++ softhddevice.cpp | 15 +++++++++++++-- 7 files changed, 59 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 6538b99..bc346b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ +User jinx +Date: Mon Feb 16 09:58:06 CET 2015 + + Enable toggle AC3 downmix. + User johns -Date: +Date: Thu Feb 12 10:30:50 CET 2015 Compile with vdr 2.1.10. Fix bug: AVCodecContext.framerate not supported. diff --git a/README.txt b/README.txt index 62372e3..5267da0 100644 --- a/README.txt +++ b/README.txt @@ -321,6 +321,7 @@ Keymacros: @softhddevice Blue 1 2 toggle pass-through @softhddevice Blue 1 3 decrease audio delay by 10ms @softhddevice Blue 1 4 increase audio delay by 10ms + @softhddevice Blue 1 5 toggle ac3 mixdown @softhddevice Blue 2 0 disable fullscreen @softhddevice Blue 2 1 enable fullscreen @softhddevice Blue 2 2 toggle fullscreen diff --git a/codec.c b/codec.c index d089a84..10011c3 100644 --- a/codec.c +++ b/codec.c @@ -1802,6 +1802,7 @@ static void CodecAudioUpdateFormat(AudioDecoder * audio_decoder) void CodecAudioDecode(AudioDecoder * audio_decoder, const AVPacket * avpkt) { AVCodecContext *audio_ctx; + #if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(58,28,1) AVFrame frame[1]; #else diff --git a/po/de_DE.po b/po/de_DE.po index f2a4bfc..68812a4 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: 2014-03-20 11:50+0100\n" +"POT-Creation-Date: 2014-10-31 12:36+0100\n" "PO-Revision-Date: blabla\n" "Last-Translator: blabla\n" "Language-Team: blabla\n" @@ -229,9 +229,6 @@ msgstr "" msgid "audio: can't set channels %d sample-rate %dHz\n" msgstr "" -msgid "audio: can't queue cancel play thread\n" -msgstr "" - msgid "audio: can't cancel play thread\n" msgstr "" @@ -279,6 +276,9 @@ msgstr "" msgid "codec: can't allocate audio decoder\n" msgstr "" +msgid "codec: can't allocate audio decoder frame buffer\n" +msgstr "" + msgid "codec: can't allocate audio codec context\n" msgstr "" @@ -753,6 +753,12 @@ msgstr "" msgid "audio delay changed to %d" msgstr "" +msgid "surround downmix enabled" +msgstr "" + +msgid "surround downmix disabled" +msgstr "" + msgid "auto-crop disabled and freezed" msgstr "" @@ -993,14 +999,20 @@ msgstr "" msgid "video: output buffer full, dropping frame (%d/%d)\n" msgstr "" -msgid "video/vaapi: can't create a surface\n" +#, c-format +msgid "video/vaapi: can't create a surface: %s\n" msgstr "" #, c-format -msgid "video/vaapi: vaDeriveImage failed %d\n" +msgid "video/vaapi: can't associate subpicture: %s\n" msgstr "" -msgid "video/vaapi: can't map the image!\n" +#, c-format +msgid "video/vaapi: can't create image: %s\n" +msgstr "" + +#, c-format +msgid "video/vaapi: can't map the image: %s\n" msgstr "" msgid "video/vaapi: can't unmap the image!\n" @@ -1015,6 +1027,10 @@ msgstr "" msgid "video/vaapi: can't get source image\n" msgstr "" +#, c-format +msgid "video/vaapi: vaDeriveImage failed %d\n" +msgstr "" + #, c-format msgid "video/vaapi: can't put image: %d!\n" msgstr "" @@ -1022,6 +1038,9 @@ msgstr "" msgid "video/vaapi: stream <-> surface size mismatch\n" msgstr "" +msgid "video/vaapi: can't map the image!\n" +msgstr "" + #, c-format msgid "video/vaapi: can't put image err:%d!\n" msgstr "" diff --git a/softhddev.c b/softhddev.c index d0e32ee..79c5e31 100644 --- a/softhddev.c +++ b/softhddev.c @@ -1101,6 +1101,7 @@ int PlayAudio(const uint8_t * data, int size, uint8_t id) if (AudioChannelID != id) { // id changed audio track changed AudioChannelID = id; AudioCodecID = AV_CODEC_ID_NONE; + Debug(3, "audio/demux: new channel id\n"); } // Private stream + LPCM ID if ((id & 0xF0) == 0xA0) { @@ -1304,6 +1305,15 @@ void SetVolumeDevice(int volume) AudioSetVolume((volume * 1000) / 255); } +/** +*** Resets channel ID (restarts audio). +**/ +void ResetChannelId(void) +{ + AudioChannelID = -1; + Debug(3, "audio/demux: reset channel id\n"); +} + ////////////////////////////////////////////////////////////////////////////// // Video ////////////////////////////////////////////////////////////////////////////// diff --git a/softhddev.h b/softhddev.h index da16ece..a793503 100644 --- a/softhddev.h +++ b/softhddev.h @@ -42,6 +42,8 @@ extern "C" extern int PlayTsAudio(const uint8_t *, int); /// C plugin set audio volume extern void SetVolumeDevice(int); + /// C plugin reset channel id (restarts audio) + extern void ResetChannelId(void); /// C plugin play video packet extern int PlayVideo(const uint8_t *, int); diff --git a/softhddevice.cpp b/softhddevice.cpp index eb07e48..ba0cb2f 100644 --- a/softhddevice.cpp +++ b/softhddevice.cpp @@ -1883,6 +1883,17 @@ static void HandleHotkey(int code) cString::sprintf(tr("audio delay changed to %d"), ConfigVideoAudioDelay)); break; + case 15: + ConfigAudioDownmix ^= 1; + fprintf(stderr, "toggle downmix\n"); + CodecSetAudioDownmix(ConfigAudioDownmix); + if (ConfigAudioDownmix) { + Skins.QueueMessage(mtInfo, tr("surround downmix enabled")); + } else { + Skins.QueueMessage(mtInfo, tr("surround downmix disabled")); + } + ResetChannelId(); + break; case 20: // disable full screen VideoSetFullscreen(0); @@ -2288,7 +2299,7 @@ int64_t cSoftHdDevice::GetSTC(void) #if APIVERSNUM >= 20103 void cSoftHdDevice::TrickSpeed(int speed, bool forward) { - dsyslog("[softhddev]%s: %d $d\n", __FUNCTION__, speed, forward); + dsyslog("[softhddev]%s: %d %d\n", __FUNCTION__, speed, forward); ::TrickSpeed(speed); } @@ -3258,7 +3269,7 @@ static const char *SVDRPHelpText[] = { " 11: enable audio pass-through\n" " 12: toggle audio pass-through\n" " 13: decrease audio delay by 10ms\n" - " 14: increase audio delay by 10ms\n" + " 14: increase audio delay by 10ms\n" " 15: toggle ac3 mixdown\n" " 20: disable fullscreen\n\040 21: enable fullscreen\n" " 22: toggle fullscreen\n" " 23: disable auto-crop\n\040 24: enable auto-crop\n" -- cgit v1.2.3