Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: VDR: first step towards AC3 sound



OK, i have used the patch and get only terrible, cutted and scratched sound
from my receiver.
I have changed play-ac3.c to read and fread commands, but this doesn't help
(it works for the dvdplayer). Play-ac3 worked also together with
"extract_ac3 any.vob" file. The ac3dec tool stopps with a core dump if i
playing a vdr ac3 file (created with "-a cat > vdr.ac3"). It recognize the
stream data (2.0 Mode 48.0 KHz 448kbps) then stops w/o playing.

The play-ac3 tool generates true AC3 sound (i have tested it with an ac3
test file DD5.1). By that way - whats the Pid for Cinedome Deluxe, on this
channel Premiere sends also DD5.1 sound (if i order a movie, i can try it).

Andreas

-----Ursprüngliche Nachricht-----
Von: linux-dvb-bounce@linuxtv.org
[mailto:linux-dvb-bounce@linuxtv.org]Im Auftrag von Guido Fiala
Gesendet: Sonntag, 24. Juni 2001 14:19
An: linux-dvb@linuxtv.org
Betreff: [linux-dvb] Re: AW: VDR: first step towards AC3 sound


> > Jun 24 11:06:17 wonderbox vdr[819]: ERROR: wrote 968 byte to dolby
device
> > instead of 1806
> > Jun 24 11:06:17 wonderbox vdr[819]: ERROR: wrote 484 byte to dolby
device
> > instead of 1806
>
> Looks like 'ac3play' doesn't accept the entire data packet at once.
> I thought that the pipe would be opened in blocking mode, but maybe that
> was a false assumption.
>
> Please try the following patch to the dvbapi.c file:
>
> --- dvbapi.c.003        Sat Jun 23 18:27:49 2001
> +++ dvbapi.c    Sun Jun 24 11:41:30 2001
> @@ -808,12 +808,17 @@
>           switch (c) {
>             case 0xBD: // dolby
>                  if (Except && dolbyDev) {
> -                   int w = fwrite(&b[i], 1, l, dolbyDev);
> -                   if (w < 0) {
> -                      LOG_ERROR;
> -                      }
> -                   else if (w != l)
> -                      esyslog(LOG_ERR, "ERROR: wrote %d byte to dolby
> device instead of %d", w, l); +                   int written = 0;
> +                   int n = l;
> +                   while (n > 0) {
> +                         int w = fwrite(&b[i + written], 1, n, dolbyDev);
> +                         if (w < 0) {
> +                            LOG_ERROR;
> +                            break;
> +                            }
> +                         n -= w;
> +                         written += w;
> +                         }
>                     }
>                  // continue with deleting the data - otherwise it
disturbs
> DVB replay case 0xC0 ... 0xC1: // audio

That solved the problem (partially) for me (BTW, it happened for cat as
well).

Using ac3dec the sound starts fine but becomes worse after a few seconds and
vanishs fully after some time (feeding problem?)
Also playing a ac3-file directly with ac3dec stops somewhere in the middle
of
the file...

OT?
As i had to learn it does downsample the data to 2 channels anyway :-(
Is there an alternative without using external digital equipment? (I thought
SBLive can do this)

I could'nt get play-ac3 from the Creative OS driver working, anyway there is
a comment in some README "Rear speakers stereo mirrored" what does'nt sound
like AC3 anyway... but it provides /dev/dsp1 what alsa does'nt.



--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe
linux-dvb" as subject.



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index