Hi,

Following diff is needed to play a DVD(*) that has s24be audio.
Without this, mplayer doesn't play the sound and outputs noise.  Since
mplayer uses 32bit to play 24bit, the alignment to msb or lsb must be
specified properly.

ok or comment?

* DVD disc of http://en.wikipedia.org/wiki/Beyonc%C3%A9_(album) :)

Index: x11/mplayer/Makefile
===================================================================
RCS file: /disk/cvs/openbsd/ports/x11/mplayer/Makefile,v
retrieving revision 1.232
diff -u -p -r1.232 Makefile
--- x11/mplayer/Makefile        31 Jan 2014 10:44:56 -0000      1.232
+++ x11/mplayer/Makefile        6 Feb 2014 14:30:13 -0000
@@ -15,7 +15,7 @@ SUBST_VARS +=                 PREFIX CONFDIR
 # Distfiles must be hand-rolled, see README
 N =                    mplayer
 DISTNAME =             mplayer-${V}
-REVISION =             0
+REVISION =             1
 EXTRACT_SUFX =         .tar.xz
 
 CATEGORIES =           x11 multimedia
Index: x11/mplayer/patches/patch-libao2_ao_sndio_c
===================================================================
RCS file: /disk/cvs/openbsd/ports/x11/mplayer/patches/patch-libao2_ao_sndio_c,v
retrieving revision 1.1
diff -u -p -r1.1 patch-libao2_ao_sndio_c
--- x11/mplayer/patches/patch-libao2_ao_sndio_c 31 Jan 2014 10:44:56 -0000      
1.1
+++ x11/mplayer/patches/patch-libao2_ao_sndio_c 6 Feb 2014 14:30:13 -0000
@@ -1,7 +1,18 @@
 $OpenBSD: patch-libao2_ao_sndio_c,v 1.1 2014/01/31 10:44:56 ratchov Exp $
---- libao2/ao_sndio.c.orig     Fri Jan 31 11:09:00 2014
-+++ libao2/ao_sndio.c  Fri Jan 31 11:10:33 2014
-@@ -132,6 +132,8 @@ static int init(int rate, int channels, int format, in
+--- libao2/ao_sndio.c.orig     Tue Jan  7 07:02:58 2014
++++ libao2/ao_sndio.c  Thu Feb  6 21:38:57 2014
+@@ -110,6 +110,10 @@ static int init(int rate, int channels, int format, in
+     par.pchan = channels;
+     par.appbufsz = par.rate * 250 / 1000;    /* 250ms buffer */
+     par.round = par.rate * 10 / 1000;        /*  10ms block size */
++
++    if (par.bits < SIO_BPS(par.bits) * 8)
++      par.msb = (par.le)? 0 : 1;
++
+     if (!sio_setpar(hdl, &par)) {
+         mp_msg(MSGT_AO, MSGL_ERR, "ao2: couldn't set params\n");
+         goto err_out;
+@@ -132,6 +136,8 @@ static int init(int rate, int channels, int format, in
      ao_data.format |= par.sig ? AF_FORMAT_SI : AF_FORMAT_US;
      if (par.bits > 8)
          ao_data.format |= par.le ? AF_FORMAT_LE : AF_FORMAT_BE;

Reply via email to