ports/84272: Patch audio/xmms-faad

Daniel J. O'Connor darius at dons.net.au
Fri Jul 29 05:10:23 UTC 2005


>Number:         84272
>Category:       ports
>Synopsis:       Patch audio/xmms-faad
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jul 29 05:10:22 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Daniel J. O'Connor
>Release:        FreeBSD 5.4-STABLE i386
>Organization:
>Environment:
System: FreeBSD midget.dons.net.au 5.4-STABLE FreeBSD 5.4-STABLE #2: Wed Jul 27 20:20:22 CST 2005 darius at midget.dons.net.au:/usr/src/sys/i386/compile/MIDGET i386


>Description:
The latest mpeg4ip ports have a different ABI which breaks the plugin.

>How-To-Repeat:
Install mpeg4ip v1.3 and try and use xmms-faad.

>Fix:
http://www.gsoft.com.au/~doconnor/audio-xmms-faad-fix.diff

Or below..

diff -Nur /usr/ports/audio/xmms-faad/Makefile xmms-faad/Makefile
--- /usr/ports/audio/xmms-faad/Makefile	Tue Apr 12 12:54:55 2005
+++ xmms-faad/Makefile	Fri Jul 29 14:32:03 2005
@@ -19,7 +19,8 @@
 BUILD_DEPENDS=	xmms-config:${PORTSDIR}/multimedia/xmms
 LIB_DEPENDS=	id3-3.8.3:${PORTSDIR}/audio/id3lib \
 		xmms.4:${PORTSDIR}/multimedia/xmms \
-		faad.0:${PORTSDIR}/audio/faad
+		faad.0:${PORTSDIR}/audio/faad \
+		mp4v2.0:${PORTSDIR}/multimedia/mpeg4ip-libmp4v2
 
 WRKSRC=		${WRKDIR}/${PORTNAME}
 
diff -Nur /usr/ports/audio/xmms-faad/files/patch-plugins::xmms::src::mp4_utils.c xmms-faad/files/patch-plugins::xmms::src::mp4_utils.c
--- /usr/ports/audio/xmms-faad/files/patch-plugins::xmms::src::mp4_utils.c	Thu Jan  1 09:30:00 1970
+++ xmms-faad/files/patch-plugins::xmms::src::mp4_utils.c	Fri Jul 29 14:30:12 2005
@@ -0,0 +1,87 @@
+--- plugins/xmms/src/mp4_utils.c.orig	Thu Dec  4 05:07:56 2003
++++ plugins/xmms/src/mp4_utils.c	Fri Jul 29 11:11:21 2005
+@@ -6,23 +6,35 @@
+ 
+ const char *mp4AudioNames[]=
+   {
+-    "MPEG-1 Audio Layers 1,2 or 3",
+-    "MPEG-2 low biterate (MPEG-1 extension) - MP3",
+-    "MPEG-2 AAC Main Profile",
+-    "MPEG-2 AAC Low Complexity profile",
+-    "MPEG-2 AAC SSR profile",
+-    "MPEG-4 audio (MPEG-4 AAC)",
+-    0
++    "MPEG-4 AAC Main profile",
++    "MPEG-4 AAC Low Complexity profile",
++    "MPEG-4 AAC SSR profile",
++    "MPEG-4 AAC Long Term Prediction profile",
++    "MPEG-4 AAC Scalable",
++    "MPEG-4 CELP",
++    "MPEG-4 HVXC",
++    "MPEG-4 Text to Speech",
++    "MPEG-4 Main Synthetic profile",
++    "MPEG-4 Wavetable Synthesis profile",
++    "MPEG-4 MIDI profile",
++    "MPEG-4 Algorithmic Synthesis and Audio FX profile",
++    NULL
+   };
+ 
+ const u_int8_t mp4AudioTypes[] =
+   {
+-    MP4_MPEG1_AUDIO_TYPE,		// 0x6B
+-    MP4_MPEG2_AUDIO_TYPE,		// 0x69
+-    MP4_MPEG2_AAC_MAIN_AUDIO_TYPE,	// 0x66
+-    MP4_MPEG2_AAC_LC_AUDIO_TYPE,	// 0x67
+-    MP4_MPEG2_AAC_SSR_AUDIO_TYPE,	// 0x68
+-    MP4_MPEG4_AUDIO_TYPE,		// 0x40
++    MP4_MPEG4_AAC_MAIN_AUDIO_TYPE,
++    MP4_MPEG4_AAC_LC_AUDIO_TYPE,
++    MP4_MPEG4_AAC_SSR_AUDIO_TYPE,
++    MP4_MPEG4_AAC_LTP_AUDIO_TYPE,
++    MP4_MPEG4_AAC_SCALABLE_AUDIO_TYPE,
++    MP4_MPEG4_CELP_AUDIO_TYPE,
++    MP4_MPEG4_HVXC_AUDIO_TYPE,
++    MP4_MPEG4_TTSI_AUDIO_TYPE,
++    MP4_MPEG4_MAIN_SYNTHETIC_AUDIO_TYPE,
++    MP4_MPEG4_WAVETABLE_AUDIO_TYPE,
++    MP4_MPEG4_MIDI_AUDIO_TYPE,
++    MP4_MPEG4_ALGORITHMIC_FX_AUDIO_TYPE,
+     0
+   };
+ 
+@@ -54,7 +66,7 @@
+     const char *trackType = MP4GetTrackType(file, trackID);
+     if(!strcmp(trackType, MP4_AUDIO_TRACK_TYPE)){//we found audio track !
+       int j=0;
+-      u_int8_t audiotype = MP4GetTrackAudioType(file, trackID);
++      u_int8_t audiotype = MP4GetTrackAudioMpeg4Type(file, trackID);
+       while(mp4AudioTypes[j]){ // what kind of audio is ?
+ 	if(mp4AudioTypes[j] == audiotype){
+ 	  if(mp4AudioTypes[j] == MP4_MPEG4_AUDIO_TYPE){//MPEG4 audio ok
+@@ -64,9 +76,9 @@
+ 	  }
+ 	  else{
+ 	    printf("%s\n", mp4AudioNames[j]);
+-	    if (mp4AudioTypes[j]== MP4_MPEG2_AAC_LC_AUDIO_TYPE ||
+-		mp4AudioTypes[j]== MP4_MPEG2_AAC_MAIN_AUDIO_TYPE ||
+-		mp4AudioTypes[j]== MP4_MPEG2_AAC_SSR_AUDIO_TYPE)
++	    if (mp4AudioTypes[j]== MP4_MPEG4_AAC_MAIN_AUDIO_TYPE ||
++		mp4AudioTypes[j]== MP4_MPEG4_AAC_LC_AUDIO_TYPE ||
++		mp4AudioTypes[j]== MP4_MPEG4_AAC_SSR_AUDIO_TYPE)
+ 	      return(trackID);
+ 	    return(-1);
+ 	  }
+@@ -126,10 +138,11 @@
+     printf("Track %d, %s", trackID, trackType);
+     if(!strcmp(trackType, MP4_AUDIO_TRACK_TYPE)){//we found audio track !
+       int j=0;
+-      u_int8_t audiotype = MP4GetTrackAudioType(mp4file, trackID);
++      u_int8_t audiotype = MP4GetTrackAudioMpeg4Type(mp4file, trackID);
+       while(mp4AudioTypes[j]){ // what kind of audio is ?
+ 	if(mp4AudioTypes[j] == audiotype){
+-	  if(mp4AudioTypes[j] == MP4_MPEG4_AUDIO_TYPE){
++	  if(mp4AudioTypes[j] == MP4_MPEG4_AUDIO_TYPE ||
++	     mp4AudioTypes[j] == MP4_MPEG4_AAC_LC_AUDIO_TYPE){
+ 	    audiotype = MP4GetTrackAudioMpeg4Type(mp4file, trackID);
+ 	    g_print(" %s", mpeg4AudioNames[audiotype]);
+ 	  }

>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list