Bug 64964 - audio/faad broken on amd64
Summary: audio/faad broken on amd64
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-31 03:10 UTC by Tim J. Robbins
Modified: 2004-04-13 13:58 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tim J. Robbins 2004-03-31 03:10:12 UTC
audio/faad does not work on amd64. No matter what file you try to play,
it gives the error message "Error: Pulse coding not allowed in short blocks."

Fix: 

Not known.
How-To-Repeat: Install audio/faad on an amd64 machine. Download this sample file:
http://www.ics.uci.edu/~jyeung/geek/aac/files/sample2.aac
Run faad sample2.aac. Now try the same on i386.
Comment 1 Pav Lucistnik freebsd_committer freebsd_triage 2004-04-01 18:04:00 UTC
Is this a FreeBSD specific issue? Does the file plays, say, on
gentoo-amd64 Linux? Can submitter provide a fix on this? Can maintainer
provide a fix on this? Have you talked to authors about this?

-- 
Pav Lucistnik <pav@oook.cz>
              <pav@FreeBSD.org>

 I went grocery shopping, made a pot of chilli, played ey,
then ate some chilli
Comment 2 Pav Lucistnik freebsd_committer freebsd_triage 2004-04-01 18:04:03 UTC
State Changed
From-To: open->feedback

Asked for various feedback
Comment 3 Tim Robbins freebsd_committer freebsd_triage 2004-04-02 06:34:57 UTC
On Thu, Apr 01, 2004 at 07:04:00PM +0200, Pav Lucistnik wrote:

> Is this a FreeBSD specific issue? Does the file plays, say, on
> gentoo-amd64 Linux? Can submitter provide a fix on this? Can maintainer
> provide a fix on this? Have you talked to authors about this?

I doubt that it's FreeBSD-specific, but I'm not desperate enough to install
Linux just to play MPEG-4 audio :-) I'll see if I can come up with a fix,
but for the moment it should just be marked BROKEN on amd64 - the failure
mode is such that's it's not obvious just by running the program that it
is broken.


Tim
Comment 4 Pav Lucistnik freebsd_committer freebsd_triage 2004-04-02 06:36:32 UTC
V p=E1, 02. 04. 2004 v 07:34, Tim Robbins p=ED=B9e:

> > Is this a FreeBSD specific issue? Does the file plays, say, on
> > gentoo-amd64 Linux? Can submitter provide a fix on this? Can maintainer
> > provide a fix on this? Have you talked to authors about this?
>=20
> I doubt that it's FreeBSD-specific, but I'm not desperate enough to insta=
ll
> Linux just to play MPEG-4 audio :-) I'll see if I can come up with a fix,
> but for the moment it should just be marked BROKEN on amd64 - the failure
> mode is such that's it's not obvious just by running the program that it
> is broken.

Okay I can mark it broken for amd64 (maybe all 64 bit archs?).
Does maintainer agree?

--=20
Pav Lucistnik <pav@oook.cz>
              <pav@FreeBSD.org>

In God we trust. All others must use the callback verifier.
Comment 5 Pav Lucistnik freebsd_committer freebsd_triage 2004-04-02 06:50:29 UTC
State Changed
From-To: feedback->closed

Port was marked IGNORE with an explanatory message.
Comment 6 Tim Robbins freebsd_committer freebsd_triage 2004-04-11 13:07:27 UTC
State Changed
From-To: closed->open

Reopen.
Comment 7 Tim Robbins freebsd_committer freebsd_triage 2004-04-11 13:15:53 UTC
Here is a patch that makes audio/faad work on amd64; it's essentially
a backport of this patch from faad CVS:
http://cvs.sourceforge.net/viewcvs.py/faac/faad2/libfaad/structs.h?r1=1.36&r2=1.37

Add this file as ports/audio/faad/files/patch-structs_h:

--- libfaad/structs.h.orig	Thu Nov 13 07:47:59 2003
+++ libfaad/structs.h	Sun Apr 11 22:01:09 2004
@@ -297,57 +297,57 @@
 typedef struct mp4AudioSpecificConfig
 {
     /* Audio Specific Info */
-    uint8_t objectTypeIndex;
-    uint8_t samplingFrequencyIndex;
-    uint32_t samplingFrequency;
-    uint8_t channelsConfiguration;
+    unsigned char objectTypeIndex;
+    unsigned char samplingFrequencyIndex;
+    unsigned long samplingFrequency;
+    unsigned char channelsConfiguration;
 
     /* GA Specific Info */
-    uint8_t frameLengthFlag;
-    uint8_t dependsOnCoreCoder;
-    uint16_t coreCoderDelay;
-    uint8_t extensionFlag;
-    uint8_t aacSectionDataResilienceFlag;
-    uint8_t aacScalefactorDataResilienceFlag;
-    uint8_t aacSpectralDataResilienceFlag;
-    uint8_t epConfig;
+    unsigned char frameLengthFlag;
+    unsigned char dependsOnCoreCoder;
+    unsigned short coreCoderDelay;
+    unsigned char extensionFlag;
+    unsigned char aacSectionDataResilienceFlag;
+    unsigned char aacScalefactorDataResilienceFlag;
+    unsigned char aacSpectralDataResilienceFlag;
+    unsigned char epConfig;
 
-    int8_t sbr_present_flag;
-    int8_t forceUpSampling;
+    char sbr_present_flag;
+    char forceUpSampling;
 } mp4AudioSpecificConfig;
 
 typedef struct faacDecConfiguration
 {
-    uint8_t defObjectType;
-    uint32_t defSampleRate;
-    uint8_t outputFormat;
-    uint8_t downMatrix;
-    uint8_t useOldADTSFormat;
+    unsigned char defObjectType;
+    unsigned long defSampleRate;
+    unsigned char outputFormat;
+    unsigned char downMatrix;
+    unsigned char useOldADTSFormat;
 } faacDecConfiguration, *faacDecConfigurationPtr;
 
 typedef struct faacDecFrameInfo
 {
-    uint32_t bytesconsumed;
-    uint32_t samples;
-    uint8_t channels;
-    uint8_t error;
-    uint32_t samplerate;
+    unsigned long bytesconsumed;
+    unsigned long samples;
+    unsigned char channels;
+    unsigned char error;
+    unsigned long samplerate;
 
     /* SBR: 0: off, 1: on; normal, 2: on; downsampled */
-    uint8_t sbr;
+    unsigned char sbr;
 
     /* MPEG-4 ObjectType */
-    uint8_t object_type;
+    unsigned char object_type;
 
     /* AAC header type; MP4 will be signalled as RAW also */
-    uint8_t header_type;
+    unsigned char header_type;
 
     /* multichannel configuration */
-    uint8_t num_front_channels;
-    uint8_t num_side_channels;
-    uint8_t num_back_channels;
-    uint8_t num_lfe_channels;
-    uint8_t channel_position[MAX_CHANNELS];
+    unsigned char num_front_channels;
+    unsigned char num_side_channels;
+    unsigned char num_back_channels;
+    unsigned char num_lfe_channels;
+    unsigned char channel_position[MAX_CHANNELS];
 } faacDecFrameInfo;
 
 typedef struct
Comment 8 Sean McGovern 2004-04-12 04:09:37 UTC
I have no access to AMD64 equipment to verify this

On 11-Apr-04, at 8:15, Tim Robbins wrote:

> Here is a patch that makes audio/faad work on amd64; it's essentially
> a backport of this patch from faad CVS:
> http://cvs.sourceforge.net/viewcvs.py/faac/faad2/libfaad/structs.h? 
> r1=1.36&r2=1.37
>
> Add this file as ports/audio/faad/files/patch-structs_h:
>
> --- libfaad/structs.h.orig	Thu Nov 13 07:47:59 2003
> +++ libfaad/structs.h	Sun Apr 11 22:01:09 2004
> @@ -297,57 +297,57 @@
>  typedef struct mp4AudioSpecificConfig
>  {
>      /* Audio Specific Info */
> -    uint8_t objectTypeIndex;
> -    uint8_t samplingFrequencyIndex;
> -    uint32_t samplingFrequency;
> -    uint8_t channelsConfiguration;
> +    unsigned char objectTypeIndex;
> +    unsigned char samplingFrequencyIndex;
> +    unsigned long samplingFrequency;
> +    unsigned char channelsConfiguration;
>
>      /* GA Specific Info */
> -    uint8_t frameLengthFlag;
> -    uint8_t dependsOnCoreCoder;
> -    uint16_t coreCoderDelay;
> -    uint8_t extensionFlag;
> -    uint8_t aacSectionDataResilienceFlag;
> -    uint8_t aacScalefactorDataResilienceFlag;
> -    uint8_t aacSpectralDataResilienceFlag;
> -    uint8_t epConfig;
> +    unsigned char frameLengthFlag;
> +    unsigned char dependsOnCoreCoder;
> +    unsigned short coreCoderDelay;
> +    unsigned char extensionFlag;
> +    unsigned char aacSectionDataResilienceFlag;
> +    unsigned char aacScalefactorDataResilienceFlag;
> +    unsigned char aacSpectralDataResilienceFlag;
> +    unsigned char epConfig;
>
> -    int8_t sbr_present_flag;
> -    int8_t forceUpSampling;
> +    char sbr_present_flag;
> +    char forceUpSampling;
>  } mp4AudioSpecificConfig;
>
>  typedef struct faacDecConfiguration
>  {
> -    uint8_t defObjectType;
> -    uint32_t defSampleRate;
> -    uint8_t outputFormat;
> -    uint8_t downMatrix;
> -    uint8_t useOldADTSFormat;
> +    unsigned char defObjectType;
> +    unsigned long defSampleRate;
> +    unsigned char outputFormat;
> +    unsigned char downMatrix;
> +    unsigned char useOldADTSFormat;
>  } faacDecConfiguration, *faacDecConfigurationPtr;
>
>  typedef struct faacDecFrameInfo
>  {
> -    uint32_t bytesconsumed;
> -    uint32_t samples;
> -    uint8_t channels;
> -    uint8_t error;
> -    uint32_t samplerate;
> +    unsigned long bytesconsumed;
> +    unsigned long samples;
> +    unsigned char channels;
> +    unsigned char error;
> +    unsigned long samplerate;
>
>      /* SBR: 0: off, 1: on; normal, 2: on; downsampled */
> -    uint8_t sbr;
> +    unsigned char sbr;
>
>      /* MPEG-4 ObjectType */
> -    uint8_t object_type;
> +    unsigned char object_type;
>
>      /* AAC header type; MP4 will be signalled as RAW also */
> -    uint8_t header_type;
> +    unsigned char header_type;
>
>      /* multichannel configuration */
> -    uint8_t num_front_channels;
> -    uint8_t num_side_channels;
> -    uint8_t num_back_channels;
> -    uint8_t num_lfe_channels;
> -    uint8_t channel_position[MAX_CHANNELS];
> +    unsigned char num_front_channels;
> +    unsigned char num_side_channels;
> +    unsigned char num_back_channels;
> +    unsigned char num_lfe_channels;
> +    unsigned char channel_position[MAX_CHANNELS];
>  } faacDecFrameInfo;
>
>  typedef struct
>
>
------------------------------------------------------------------------ 
-----------
Sean McGovern             | "The day my dream became endless
mailto:sean@sfarc.net  | ...I wonder when it was?" - Kanon
Comment 9 Tilman Keskinoz freebsd_committer freebsd_triage 2004-04-13 13:57:41 UTC
State Changed
From-To: open->closed

committed, thank you very much for improving amd64-ports.