Q: dvd-plugin and softdevice

Message ID 20070511170342.GA32257@seneca.muc.de
State New
Headers

Commit Message

Harald Milz May 11, 2007, 5:03 p.m. UTC
  Hi,

I would like to use the dvd plugin (CVS as of today) together with
softdevice-0.4.0. Plays DVDs fine but no sound. In the plugin's source code
there's in player-dvd.c:

    BitStreamOutActive  = false;
    HasBitStreamOut     = (cPluginManager::GetPlugin("bitstreamout") != NULL);

    SoftDeviceOutActive = false;
    HasSoftDeviceOut    = (cPluginManager::GetPlugin("xine") != NULL);

Shouldn't the plugin also check for softdevice? player-dvd.h says

    static bool SoftDeviceOutActive; // currently used to switch for xine
    static bool HasSoftDeviceOut;    // currently used to switch for xine

Hmmm - 

However - this patch 




leads to 

May 11 18:52:00 linvdr vdr: [3894] dvd-plugin: SoftDeviceOutActive=1, HasSoftDeviceOut=1

but still no sound, but a whole lot of 

May 11 18:52:20 linvdr vdr: [3894] ERROR: dvd-plugin iframeassembler full 524772
May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] samplerate: 22050Hz, channels: #2
May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Device 'spdif-48', Samplerate 22050 Channels 2
May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Period size 1152 Buffer size 6915
May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Hardware initialized
May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] samplerate: 48000Hz, channels: #2
May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Device 'spdif-48', Samplerate 48000 Channels 2
May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Period size 1152 Buffer size 9216
May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Hardware initialized


spdif-48 is a plug that resamples everything to 48 kHz:

pcm.spdif-48 {
    type plug
    slave.pcm "spdif"
    slave.rate 48000
}

Seems softdevice-audio doesn't get any useful data from dvd:

[mp2 @ 0xb79e7148]header missing skiping one byte

and

libdvdnav: Using dvdnav version 0.1.10 from http://dvd.sf.net
libdvdnav: DVD Title: VDRCONVERT_11-05-2007
libdvdnav: DVD Serial Number: 464496BE00000000
libdvdnav: DVD Title (Alternative):
libdvdnav: Unable to find map file '//.dvdnav/VDRCONVERT_11-05-2007.map'
libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1
2 3 4 5 6 7 8
libdvdnav: Language 'de' not found, using 'en' instead
libdvdnav: Menu Languages available: en
libdvdnav: Language 'de' not found, using 'en' instead
libdvdnav: Menu Languages available: en
libdvdnav: Language 'de' not found, using 'en' instead
libdvdnav: Menu Languages available: en
libdvdnav: Language 'de' not found, using 'en' instead
libdvdnav: Menu Languages available: en
libdvdnav: Language 'de' not found, using 'en' instead
libdvdnav: Menu Languages available: en
libdvdnav: Language 'de' not found, using 'en' instead
libdvdnav: Menu Languages available: en
[mpegdecoder] Error! Codec 86020 not supported by libavcodec
[mpegdecoder] Error! Codec 86020 not supported by libavcodec


The DVD was created using vdrconvert-CVS and plays fine on my standalone
DVD player, so no region code and the generic name. Is that vdrconvert's
error? 



???
  

Comments

Stefan Lucke May 12, 2007, 8:03 a.m. UTC | #1
On Friday 11 May 2007 19:03, Harald Milz wrote:
> Hi,
> 
> I would like to use the dvd plugin (CVS as of today) together with
> softdevice-0.4.0. Plays DVDs fine but no sound. In the plugin's source code
> there's in player-dvd.c:
> 
>     BitStreamOutActive  = false;
>     HasBitStreamOut     = (cPluginManager::GetPlugin("bitstreamout") != NULL);
> 
>     SoftDeviceOutActive = false;
>     HasSoftDeviceOut    = (cPluginManager::GetPlugin("xine") != NULL);
> 
> Shouldn't the plugin also check for softdevice? player-dvd.h says
> 
>     static bool SoftDeviceOutActive; // currently used to switch for xine
>     static bool HasSoftDeviceOut;    // currently used to switch for xine

Usually I do not modify dvd plugin to get sound :-) (AC3 optical link
to external decoder) . So it's only up to the "normal" audio selector
of vdr to choose the audio track.

> 
> Hmmm - 

[snip]

> libdvdnav: Menu Languages available: en
> libdvdnav: Language 'de' not found, using 'en' instead
> libdvdnav: Menu Languages available: en
> [mpegdecoder] Error! Codec 86020 not supported by libavcodec
> [mpegdecoder] Error! Codec 86020 not supported by libavcodec

86020 = 0x15004 = CODEC_ID_AC3
Can you try to select a non AC3 audio track or rebuild ffmpeg
with AC3 decoding support, as that's to my opinion missing.
  
Harald Milz May 14, 2007, 10:34 a.m. UTC | #2
Hi,

does nobody have an idea concerning this one? The question appears to be
"how do I use softdevice-audio with dvd-plugin". 



Harald Milz <hm@seneca.muc.de> wrote:
> Hi,

> I would like to use the dvd plugin (CVS as of today) together with
> softdevice-0.4.0. Plays DVDs fine but no sound. In the plugin's source code
> there's in player-dvd.c:

>     BitStreamOutActive  = false;
>     HasBitStreamOut     = (cPluginManager::GetPlugin("bitstreamout") != NULL);

>     SoftDeviceOutActive = false;
>     HasSoftDeviceOut    = (cPluginManager::GetPlugin("xine") != NULL);

> Shouldn't the plugin also check for softdevice? player-dvd.h says

>     static bool SoftDeviceOutActive; // currently used to switch for xine
>     static bool HasSoftDeviceOut;    // currently used to switch for xine

> Hmmm - 

> However - this patch 


> --- player-dvd.c.ORIG   2006-04-09 20:35:53.000000000 +0200
> +++ player-dvd.c        2007-05-11 18:50:22.871312099 +0200
> @@ -577,7 +577,8 @@
>      HasBitStreamOut     = (cPluginManager::GetPlugin("bitstreamout") != NULL);

>      SoftDeviceOutActive = false;
> -    HasSoftDeviceOut   = (cPluginManager::GetPlugin("xine") != NULL);
> +    HasSoftDeviceOut   = (cPluginManager::GetPlugin("xine") != NULL) ||
> +                         (cPluginManager::GetPlugin("softdevice") != NULL);

>      cSetupLine *slBitStreamOutActive = NULL;
>      if(HasBitStreamOut) {


> leads to 

> May 11 18:52:00 linvdr vdr: [3894] dvd-plugin: SoftDeviceOutActive=1, HasSoftDeviceOut=1

> but still no sound, but a whole lot of 

> May 11 18:52:20 linvdr vdr: [3894] ERROR: dvd-plugin iframeassembler full 524772
> May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] samplerate: 22050Hz, channels: #2
> May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Device 'spdif-48', Samplerate 22050 Channels 2
> May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Period size 1152 Buffer size 6915
> May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Hardware initialized
> May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] samplerate: 48000Hz, channels: #2
> May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Device 'spdif-48', Samplerate 48000 Channels 2
> May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Period size 1152 Buffer size 9216
> May 11 18:52:20 linvdr vdr: [3982] [softdevice-audio] Hardware initialized


> spdif-48 is a plug that resamples everything to 48 kHz:

> pcm.spdif-48 {
>     type plug
>     slave.pcm "spdif"
>     slave.rate 48000
> }

> Seems softdevice-audio doesn't get any useful data from dvd:

> [mp2 @ 0xb79e7148]header missing skiping one byte

> and

> libdvdnav: Using dvdnav version 0.1.10 from http://dvd.sf.net
> libdvdnav: DVD Title: VDRCONVERT_11-05-2007
> libdvdnav: DVD Serial Number: 464496BE00000000
> libdvdnav: DVD Title (Alternative):
> libdvdnav: Unable to find map file '//.dvdnav/VDRCONVERT_11-05-2007.map'
> libdvdnav: DVD disk reports itself with Region mask 0x00000000. Regions: 1
> 2 3 4 5 6 7 8
> libdvdnav: Language 'de' not found, using 'en' instead
> libdvdnav: Menu Languages available: en
> libdvdnav: Language 'de' not found, using 'en' instead
> libdvdnav: Menu Languages available: en
> libdvdnav: Language 'de' not found, using 'en' instead
> libdvdnav: Menu Languages available: en
> libdvdnav: Language 'de' not found, using 'en' instead
> libdvdnav: Menu Languages available: en
> libdvdnav: Language 'de' not found, using 'en' instead
> libdvdnav: Menu Languages available: en
> libdvdnav: Language 'de' not found, using 'en' instead
> libdvdnav: Menu Languages available: en
> [mpegdecoder] Error! Codec 86020 not supported by libavcodec
> [mpegdecoder] Error! Codec 86020 not supported by libavcodec


> The DVD was created using vdrconvert-CVS and plays fine on my standalone
> DVD player, so no region code and the generic name. Is that vdrconvert's
> error? 



> ??? 





> -- 
> Blood is thicker than water, and much tastier.

> _______________________________________________
> vdr mailing list
> vdr@linuxtv.org
> http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
  
Torgeir Veimo May 14, 2007, 11:14 a.m. UTC | #3
On 14 May 2007, at 11:34, Harald Milz wrote:

> does nobody have an idea concerning this one? The question appears  
> to be
> "how do I use softdevice-audio with dvd-plugin".
>
>
>
> Harald Milz <hm@seneca.muc.de> wrote:
>> Hi,
>
>> Seems softdevice-audio doesn't get any useful data from dvd:
>
>> [mpegdecoder] Error! Codec 86020 not supported by libavcodec
>> [mpegdecoder] Error! Codec 86020 not supported by libavcodec

Coded 86020 is Dolby AC3. Do you have A52 support compiled into your  
ffmpeg?
  

Patch

--- player-dvd.c.ORIG   2006-04-09 20:35:53.000000000 +0200
+++ player-dvd.c        2007-05-11 18:50:22.871312099 +0200
@@ -577,7 +577,8 @@ 
     HasBitStreamOut     = (cPluginManager::GetPlugin("bitstreamout") != NULL);

     SoftDeviceOutActive = false;
-    HasSoftDeviceOut   = (cPluginManager::GetPlugin("xine") != NULL);
+    HasSoftDeviceOut   = (cPluginManager::GetPlugin("xine") != NULL) ||
+                         (cPluginManager::GetPlugin("softdevice") != NULL);

     cSetupLine *slBitStreamOutActive = NULL;
     if(HasBitStreamOut) {