Date: Fri, 12 Apr 2002 18:39:24 -0300 From: Mario Sergio Fujikawa Ferreira <lioux@FreeBSD.org> To: freebsd-multimedia@FreeBSD.org Cc: nobutaka@freebsd.org Subject: Updating liba52 ac3 to 0.7.3 (Xine and Ogle DVD) Message-ID: <20020412213946.8902.qmail@exxodus.fedaykin.here>
next in thread | raw e-mail | index | archive | help
--+g7M9IMkV8truYOl Content-Type: multipart/mixed; boundary="pf9I7BMVVzbSWLtt" Content-Disposition: inline --pf9I7BMVVzbSWLtt Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, I am holding off an update to liba52 to version 0.7.3 since it breaks libxine 0.9.8 Ogle had the same problem but I got an update from the developers. I made a similiar patch... could you verify that the following works? I have just been able to play an AC3 DVD. Or, it seems... :) Let me know if this works. If it does, I will simultaneously commit the liba52 update and patches to ogle and libxine within a week. Sooner if I get word from maintainer of xine. Bear in mind that these work for me but might work for you so beware of any possible problems in your system. If you do not like unstable installations... do not try this. :) Thanks for everyone that tries this. You have to play AC3 sound from DVD players to make sure this works. Only try DVDs you are sure were working before the update so as to avoid false negatives. - update your liba52 port $ cd /usr/ports $ patch < patch-audio:liba52 - update your ogle port $ cd /usr/ports $ patch -N < patch-graphics:ogle - update your libxine port $ ports /usr/ports/graphics $ patch < /tmp/patch-libxine Regards, --=20 Mario S F Ferreira - DF - Brazil - "I guess this is a signature." Computer Science Undergraduate | FreeBSD Committer | CS Developer flames to beloved devnull@someotherworldbeloworabove.org feature, n: a documented bug | bug, n: an undocumented feature --pf9I7BMVVzbSWLtt Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=patch-audio:liba52 Content-Transfer-Encoding: quoted-printable diff -ruN /usr/ports/audio/liba52/Makefile /usr/home/lioux/src/myports/audi= o/liba52/Makefile --- /usr/ports/audio/liba52/Makefile Sun Jan 20 17:08:12 2002 +++ /usr/home/lioux/src/myports/audio/liba52/Makefile Thu Apr 4 17:24:32 2= 002 @@ -6,7 +6,7 @@ # =20 PORTNAME=3D liba52 -PORTVERSION=3D 0.7.2 +PORTVERSION=3D 0.7.3 CATEGORIES=3D audio MASTER_SITES=3D http://liba52.sourceforge.net/files/ DISTNAME=3D a52dec-${PORTVERSION:S/.b/b/} diff -ruN /usr/ports/audio/liba52/distinfo /usr/home/lioux/src/myports/audi= o/liba52/distinfo --- /usr/ports/audio/liba52/distinfo Sun Jan 20 17:08:12 2002 +++ /usr/home/lioux/src/myports/audio/liba52/distinfo Thu Apr 4 17:24:32 2= 002 @@ -1 +1 @@ -MD5 (a52dec-0.7.2.tar.gz) =3D 8897222b9fc98b6dd276e1e662d9b5d2 +MD5 (a52dec-0.7.3.tar.gz) =3D cd4254b39fc1bde7b1037afea58f7a8b --pf9I7BMVVzbSWLtt Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=patch-graphics:ogle Content-Transfer-Encoding: quoted-printable diff -ruN /usr/ports/graphics/ogle/Makefile /usr/home/lioux/src/myports/gra= phics/ogle/Makefile --- /usr/ports/graphics/ogle/Makefile Thu Mar 28 19:16:59 2002 +++ /usr/home/lioux/src/myports/graphics/ogle/Makefile Thu Apr 4 20:05:44 = 2002 @@ -7,6 +7,7 @@ =20 PORTNAME=3D ogle PORTVERSION=3D 0.8.2 +PORTREVISION=3D 1 CATEGORIES=3D graphics MASTER_SITES=3D http://www.dtek.chalmers.se/groups/dvd/dist/ =20 diff -ruN /usr/ports/graphics/ogle/files/patch-ac3:a52_decoder.c /usr/home/= lioux/src/myports/graphics/ogle/files/patch-ac3:a52_decoder.c --- /usr/ports/graphics/ogle/files/patch-ac3:a52_decoder.c Wed Dec 31 21:00= :00 1969 +++ /usr/home/lioux/src/myports/graphics/ogle/files/patch-ac3:a52_decoder.c= Fri Apr 12 18:26:34 2002 @@ -0,0 +1,63 @@ +--- ac3/a52_decoder.c.orig Sun Dec 2 19:37:37 2001 ++++ ac3/a52_decoder.c Fri Apr 12 18:25:07 2002 +@@ -46,6 +46,7 @@ +=20 + /* A/52 */ + static ao_instance_t * output =3D NULL; ++static a52_state_t *state; + static sample_t * samples; + static int disable_dynrng =3D 0; + static clocktime_t a52_decode_data(uint8_t *start, uint8_t *end); +@@ -216,15 +217,20 @@ +=20 + { + uint32_t accel; +- accel =3D MM_ACCEL_MLIB; ++ accel =3D MM_ACCEL_DJBFFT; +=20 + open_output(get_speaker_flags()); +=20 +- samples =3D a52_init(accel); +- if(samples =3D=3D NULL) { ++ state =3D a52_init(accel); ++ if(state =3D=3D NULL) { + FATAL("A/52 init failed\n"); + exit(1); + } ++ samples =3D a52_samples(state); ++ if(samples =3D=3D NULL) { ++ FATAL("A/52 samples failed\n"); ++ exit(1); ++ } + } +=20 + if(msgqid !=3D -1) { +@@ -675,7 +681,6 @@ + } +=20 + static clocktime_t a52_decode_data(uint8_t *start, uint8_t *end) { +- static a52_state_t state; + =20 + static uint8_t buf[3840]; + static uint8_t *bufptr =3D buf; +@@ -736,17 +741,16 @@ + =09 + flags =3D speaker_flags; + flags |=3D A52_ADJUST_LEVEL; +- memset(&state, 0, sizeof(a52_state_t)); + /* flags (speaker) [in/out] level [in/out] bias [in] */ +- if(a52_frame(&state, buf, &flags, &level, bias)) { ++ if(a52_frame(state, buf, &flags, &level, bias)) { + DNOTE("a52_frame() error\n"); + goto error; + } +=20 + if(disable_dynrng) +- a52_dynrng(&state, NULL, NULL); ++ a52_dynrng(state, NULL, NULL); + for(i =3D 0; i < 6; i++) { +- if(a52_block(&state, samples)) { ++ if(a52_block(state)) { + DNOTE("a52_block() error\n"); + goto error; + } --pf9I7BMVVzbSWLtt Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=patch-libxine Content-Transfer-Encoding: quoted-printable diff -ruN /usr/ports/graphics/libxine/files/patch-src:liba52:xine_decoder.c= libxine/files/patch-src:liba52:xine_decoder.c --- /usr/ports/graphics/libxine/files/patch-src:liba52:xine_decoder.c Fri O= ct 26 14:57:38 2001 +++ libxine/files/patch-src:liba52:xine_decoder.c Fri Apr 12 18:33:15 2002 @@ -1,6 +1,6 @@ ---- src/liba52/xine_decoder.c.orig Fri Oct 19 17:55:03 2001 -+++ src/liba52/xine_decoder.c Fri Oct 19 17:55:31 2001 -@@ -31,8 +31,8 @@ +--- src/liba52/xine_decoder.c.orig Sat Jan 5 21:43:16 2002 ++++ src/liba52/xine_decoder.c Fri Apr 5 17:52:50 2002 +@@ -36,8 +36,8 @@ #include <fcntl.h> =20 #include "audio_out.h" @@ -10,4 +10,54 @@ +#include <a52dec/a52_internal.h> #include "buffer.h" #include "xine_internal.h" - #include "cpu_accel.h" + #include "xineutils.h" +@@ -59,7 +59,7 @@ + int frame_length, frame_todo; + uint16_t syncword; +=20 +- a52_state_t a52_state; ++ a52_state_t *a52_state; + int a52_flags; + int a52_bit_rate; + int a52_sample_rate; +@@ -158,8 +158,11 @@ + this->pts =3D 0; + this->last_pts =3D 0; +=20 +- if( !this->samples ) +- this->samples =3D a52_init (xine_mm_accel()); ++ this->a52_state =3D a52_init (xine_mm_accel()); ++ ++ if( (this->a52_state) !=3D NULL ) ++ if( !this->samples ) ++ this->samples =3D a52_samples (this->a52_state); +=20 + /* + * find out if this driver supports a52 output +@@ -288,7 +291,7 @@ + =20 + a52_output_flags =3D this->a52_flags_map[this->a52_flags & A52_CHANNE= L_MASK]; + =20 +- if (a52_frame (&this->a52_state,=20 ++ if (a52_frame (this->a52_state,=20 + this->frame_buffer,=20 + &a52_output_flags, + &level, 384)) { +@@ -297,7 +300,7 @@ + } + =20 + if (this->disable_dynrng) +- a52_dynrng (&this->a52_state, NULL, NULL); ++ a52_dynrng (this->a52_state, NULL, NULL); +=20 + this->have_lfe =3D a52_output_flags & A52_LFE; + if (this->have_lfe) +@@ -337,7 +340,7 @@ + int_samples =3D buf->mem; +=20 + for (i =3D 0; i < 6; i++) { +- if (a52_block (&this->a52_state, this->samples)) { ++ if (a52_block (this->a52_state)) { + printf ("liba52: a52_block error\n"); + return;=20 + } --pf9I7BMVVzbSWLtt-- --+g7M9IMkV8truYOl Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (FreeBSD) Comment: For info see http://www.gnupg.org iD8DBQE8t1QhXvSymrg2XlURAjIkAKCE7YIpxeMO9e5dRhFmxJqkgexe6wCffasR Hy2VRb0qhae8Ae7C8P4A4O0= =DI3I -----END PGP SIGNATURE----- --+g7M9IMkV8truYOl-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-multimedia" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020412213946.8902.qmail>