From 7d38dff5bfc355fba9c612af58657b330b4eb2e8 Mon Sep 17 00:00:00 2001 From: Johns Date: Sun, 5 Feb 2012 14:17:46 +0100 Subject: Detect dvb LPCM stream and ignore it. --- ChangeLog | 5 +++++ Todo | 4 ++++ softhddev.c | 15 ++++++++++++--- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index e046690..b7c5ae4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +User johns +Date: + + Detect dvb LPCM stream and ignore it. + User johns Date: Thu Feb 2 23:29:35 CET 2012 diff --git a/Todo b/Todo index 3837068..4f4eb4f 100644 --- a/Todo +++ b/Todo @@ -81,6 +81,9 @@ audio: Make alsa thread/polled and oss thread/polled output module runtime selectable. software volume support + add pause support for replay pause + some plugin send a private LPCM stream (CODEC_ID_PCM_DVD), which + isn't supported by ffmpeg, write own parser. audio/alsa: better downmix of >2 channels on 2 channel hardware @@ -113,6 +116,7 @@ setup: unsorted: Menu -> Setup -> Plugins -> skingenigmang -> General -> Try 8bpp single area: no, has missing parts. + FSE Skin anthra FSE has missing parts stoping vdr while plugin is suspended opens and closes a window. future features (not planed for 1.0 - 1.5) diff --git a/softhddev.c b/softhddev.c index 32a21b9..b7af321 100644 --- a/softhddev.c +++ b/softhddev.c @@ -261,7 +261,7 @@ int PlayAudio(const uint8_t * data, int size, return osize; } // Detect audio code - // MPEG-PS mp2 MPEG1, MPEG2, AC3 + // MPEG-PS mp2 MPEG1, MPEG2, AC3, LPCM // Syncword - 0x0B77 if (data[0] == 0x0B && data[1] == 0x77) { @@ -279,6 +279,14 @@ int PlayAudio(const uint8_t * data, int size, CodecAudioOpen(MyAudioDecoder, NULL, CODEC_ID_MP2); AudioCodecID = CODEC_ID_MP2; } + // Private stram + LPCM ID + } else if (data[-n - 9 + 3] == 0xBD && data[0] == 0xA0) { + if (AudioCodecID != CODEC_ID_PCM_DVD) { + Debug(3, "[softhddev]%s: LPCM %d\n", __FUNCTION__, id); + CodecAudioClose(MyAudioDecoder); + //CodecAudioOpen(MyAudioDecoder, NULL, CODEC_ID_PCM_DVD); + AudioCodecID = CODEC_ID_PCM_DVD; + } } else { // no start package // FIXME: Nick/Viva sends this shit, need to find sync in packet @@ -307,8 +315,9 @@ int PlayAudio(const uint8_t * data, int size, avpkt->data = (void *)data; avpkt->size = size; - //memset(avpkt->data + avpkt->size, 0, FF_INPUT_BUFFER_PADDING_SIZE); - CodecAudioDecode(MyAudioDecoder, avpkt); + if (AudioCodecID != CODEC_ID_PCM_DVD) { + CodecAudioDecode(MyAudioDecoder, avpkt); + } return osize; } -- cgit v1.2.3