Progress with DVD playback problem

Steve O'Hara-Smith steve at
Fri Aug 8 15:04:49 PDT 2008

	I've been taking another crack at the problem with DVD playback
producing error messages like this:

ata0: FAILURE - non aligned DMA transfer attempted
acd0: setting up DMA failed

	I got it down to a teet program that reliably produces the error
messages consisting of:

int main (void)
   dvdcss_t css = dvdcss_open("/dev/acd0c");
   if (NULL == css) {
      perror ("Open failed");
      return 1;
   return 0;

	A bit of tracing led me to discover that setting DVDCSS_CACHE=off
was enough to prevent the errors from this little test program. So I copied
the dvdcss_open function and enough of the private header declarations to
make it work into my test program, called in x_dvdcss_open and no error
messages even with DVDCSS_CACHE unset.

	I compiled my test program with 

cc -O -pipe t.c -o t -I /usr/pkg/include -L /usr/pkg/lib -l dvdcss

	I noticed that libdvdcss is compiled with O2 - so I compiled with:

cc -O2 -pipe t.c -o t -I /usr/pkg/include -L /usr/pkg/lib -l dvdcss

	That was enough to bring the problem back!

	I've attached my test code (t.c) in the hope that someone more
familiar with the vagaries of gcc optimisation levels may be able to see
what the real problem is. Meanwhile I'm going to try and build libdvdcss
with -O and see if that makes dvd playback work. More later.

C:>WIN                                      |   Directable Mirror Arrays
The computer obeys and wins.                | A better way to focus the sun
You lose and Bill collects.                 |    licences available see
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bin00000.bin
Type: application/octet-stream
Size: 12784 bytes
Desc: "Description: Binary data"
URL: <>

More information about the Users mailing list