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