Skip Menu |

This queue is for tickets about the Audio-MPEG CPAN distribution.

Report information
The Basics
Id: 19725
Status: open
Priority: 0/
Queue: Audio-MPEG

People
Owner: Nobody in particular
Requestors: LGODDARD [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: Critical
Broken in: 0.04
Fixed in: (no value)



Subject: Will not make

Message body is not shown because it is too large.

From: Old Lame, New Perl?
Have now tried with the old LAME mentioned in the POD, and I presume my Perl is now too new... CPAN.pm: Going to build P/PT/PTIMOF/Audio-MPEG-0.04.tar.gz Checking if your kit is complete... Looks good Writing Makefile for Audio::MPEG cp MPEG.pm blib/lib/Audio/MPEG.pm /usr/bin/perl /usr/lib/perl5/5.8.5/ExtUtils/xsubpp - typemap /usr/lib/perl5/5.8.5/ExtUtils/typemap -typemap typemap MPEG.xs > MPEG.xsc && mv MPEG.xsc MPEG.c gcc -c -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing - pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - I/usr/include/gdbm -O2 -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" - fPIC "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" MPEG.c MPEG.xs: In function `XS_Audio__MPEG__Decode_new': MPEG.xs:59: warning: use of cast expressions as lvalues is deprecated MPEG.xs: In function `XS_Audio__MPEG__Output_new': MPEG.xs:354: warning: use of cast expressions as lvalues is deprecated MPEG.xs: In function `XS_Audio__MPEG__Encode_new': MPEG.xs:602: warning: use of cast expressions as lvalues is deprecated ar rv libmpeg.a MPEG.o ar: creating libmpeg.a a - MPEG.o gcc -c -D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict-aliasing - pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - I/usr/include/gdbm -O2 -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" - fPIC "-I/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE" audio.c audio.c: In function `audio_pcm_float': audio.c:986: error: long, short, signed or unsigned used invalidly for `sample0' audio.c:986: error: long, short, signed or unsigned used invalidly for `sample1' make: *** [audio.o] Error 1 /usr/bin/make -- NOT OK Running make test Can't test without successful make Running make install make had returned bad status, install seems impossible Failed during this command: PTIMOF/Audio-MPEG-0.04.tar.gz : make NO Show quoted text
cpan> exit
Lockfile removed. bash-3.00# perl -V Summary of my perl5 (revision 5 version 8 subversion 5) configuration: Platform: osname=linux, osvers=2.6.9-22.0.1.elsmp, archname=i386-linux- thread-multi uname='linux build-i386 2.6.9-22.0.1.elsmp #1 smp thu oct 27 13:14:25 cdt 2005 i686 i686 i386 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -m32 -march=i386 - mtune=pentium4 -Dversion=5.8.5 -Dmyhostname=localhost - Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. - Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux - Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads - Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db - Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio - Dinstallusrbinperl -Ubincompat5005 -Uversiononly - Dpager=/usr/bin/less -isr -Dinc_version_list=5.8.4 5.8.3 5.8.2 5.8.1 5.8.0' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno- strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE - D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2 -g -pipe -m32 -march=i386 -mtune=pentium4', cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBUGGING -fno-strict- aliasing -pipe -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='3.4.4 20050721 (Red Hat 3.4.4-2)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.3.4.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.3.4' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E - Wl,-rpath,/usr/lib/perl5/5.8.5/i386-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Built under linux Compiled at Dec 21 2005 06:35:04 @INC: /usr/lib/perl5/5.8.5/i386-linux-thread-multi /usr/lib/perl5/5.8.5 /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl/5.8.4 /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl/5.8.2 /usr/lib/perl5/site_perl/5.8.1 /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.4/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.2/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.1/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl/5.8.4 /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl/5.8.2 /usr/lib/perl5/vendor_perl/5.8.1 /usr/lib/perl5/vendor_perl/5.8.0 /usr/lib/perl5/vendor_perl . bash-3.00#
From: SNEVINE
Those errors are compilation errors with gcc. They don't really have anything to do with Perl. Because of the massive amount of argument warnings and missing members, my guess would be that there's some serious library conflicts going on.
Subject: Re: [rt.cpan.org #19725] Will not make
Date: Thu, 08 Jun 2006 19:30:16 +0100
To: bug-Audio-MPEG [...] rt.cpan.org
From: Lee Goddard <lee [...] leegoddard.net>
Guest via RT wrote: Show quoted text
> <URL: http://rt.cpan.org/Ticket/Display.html?id=19725 > > > Those errors are compilation errors with gcc. They don't really have > anything to do with Perl. > > Because of the massive amount of argument warnings and missing members, > my guess would be that there's some serious library conflicts going on. > >
I think it is relevant to the module in that I reduced the errors and warnings by downgrading the version of LAME used to that which the author used, but does not check for. FWIW The resulting warnings look to my untrained and scanning eye to be related to a change in XS between the writing of the module and the release of my quite recent perl. Either way it would be nice if the module made some deeper checks for what it needs. LAME is fine on my system, as is MAD - Audio::MAD is spreading the joy nicely... Lee

Message body is not shown because sender requested not to inline it.

From: phrack2561 [...] gmail.com
在 2006-06-08 14:31:23 星期四 时,west.finchley@leegoddard.net 写到: Show quoted text
> Guest via RT wrote:
> > <URL: http://rt.cpan.org/Ticket/Display.html?id=19725 > > > > > Those errors are compilation errors with gcc. They don't really have > > anything to do with Perl. > > > > Because of the massive amount of argument warnings and missing members, > > my guess would be that there's some serious library conflicts going on. > > > >
> I think it is relevant to the module in that I reduced the errors and > warnings by downgrading the version of LAME used to that which the > author used, but does not check for. > > FWIW The resulting warnings look to my untrained and scanning eye to be > related to a change in XS between the writing of the module and the > release of my quite recent perl. > > Either way it would be nice if the module made some deeper checks for > what it needs. > > LAME is fine on my system, as is MAD - Audio::MAD is spreading the joy > nicely... > > Lee
I encountered the same problem, and some warning become error in my environment. System: Ubuntu 7.10 Gcc: 4.1.3 perl: 5.8.8 Lame: 3.97 Mad: 0.15.1b After investigation, I found it mainly caused by macro Newz and variable flags(type is lame_t). Using Newz(0, (void *)RETVAL, sizeof(*RETVAL), char) caused the follow problem: MPEG.xs: In function 'XS_Audio__MPEG__Decode_new': MPEG.xs:59: error: invalid lvalue in assignment After macro expansion, the parameter (void *)RETVAL used as a lvalue. Type-cast for a lvalue is a warning in some early version of gcc, but an error in my current version. So I have to change (void *)RETVAL into RETVAL when using Newz. Lots of errors caused by flags which defined as lame_t *flags in file encode.h. Look into lame.h, we can found: struct lame_global_struct; typedef struct lame_global_struct lame_global_flags; typedef lame_global_flags *lame_t; So flags is a pointer of pointer which point to a struct lame_global_struct, obvious, it is not the author's intention.(I think the lame.h has changed). Anyway, we have to change all lame_t * into lame_t. And then make will be successful, you can use it normally, although it still can not through the 'make test'. Btw: I found there isn't lame_global_flags.h in the liblame-dev, which defines the struct lame_global_struct, so I found one from internet.
/* * $Id: encode.h,v 1.1.1.1 2001/06/17 01:37:51 ptimof Exp $ * * Copyright (c) 2001 Peter Timofejew. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ifndef AUDIO_MPEG_ENCODE_H #define AUDIO_MPEG_ENCODE_H #include <lame/lame.h> #include <lame/lame_global_flags.h> #include "audio.h" struct audio_mpeg_encode { lame_t flags; unsigned int encode_delay_applied; }; typedef struct audio_mpeg_encode * Audio_MPEG_Encode; int encode_new(Audio_MPEG_Encode); void encode_DESTROY(Audio_MPEG_Encode); unsigned int lame_encode_buffer_interleaved_float(lame_t , float *, unsigned int, unsigned char *, unsigned int); #endif

Message body is not shown because it is too large.

Message body is not shown because it is too large.

#ifndef LAME_GLOBAL_FLAGS_H #define LAME_GLOBAL_FLAGS_H #ifndef lame_internal_flags_defined #define lame_internal_flags_defined struct lame_internal_flags; typedef struct lame_internal_flags lame_internal_flags; #endif typedef enum short_block_e { short_block_not_set = -1, /* allow LAME to decide */ short_block_allowed = 0, /* LAME may use them, even different block types for L/R */ short_block_coupled, /* LAME may use them, but always same block types in L/R */ short_block_dispensed, /* LAME will not use short blocks, long blocks only */ short_block_forced /* LAME will not use long blocks, short blocks only */ } short_block_t; /*********************************************************************** * * Control Parameters set by User. These parameters are here for * backwards compatibility with the old, non-shared lib API. * Please use the lame_set_variablename() functions below * * ***********************************************************************/ struct lame_global_struct { /* input description */ unsigned long num_samples; /* number of samples. default=2^32-1 */ int num_channels; /* input number of channels. default=2 */ int in_samplerate; /* input_samp_rate in Hz. default=44.1 kHz */ int out_samplerate; /* output_samp_rate. default: LAME picks best value at least not used for MP3 decoding: Remember 44.1 kHz MP3s and AC97 */ float scale; /* scale input by this amount before encoding at least not used for MP3 decoding */ float scale_left; /* scale input of channel 0 (left) by this amount before encoding */ float scale_right; /* scale input of channel 1 (right) by this amount before encoding */ /* general control params */ int analysis; /* collect data for a MP3 frame analyzer? */ int bWriteVbrTag; /* add Xing VBR tag? */ int decode_only; /* use lame/mpglib to convert mp3 to wav */ int quality; /* quality setting 0=best, 9=worst default=5 */ MPEG_mode mode; /* see enum in lame.h default = LAME picks best value */ int force_ms; /* force M/S mode. requires mode=1 */ int free_format; /* use free format? default=0 */ int findReplayGain; /* find the RG value? default=0 */ int decode_on_the_fly; /* decode on the fly? default=0 */ /* * set either brate>0 or compression_ratio>0, LAME will compute * the value of the variable not set. * Default is compression_ratio = 11.025 */ int brate; /* bitrate */ float compression_ratio; /* sizeof(wav file)/sizeof(mp3 file) */ /* frame params */ int copyright; /* mark as copyright. default=0 */ int original; /* mark as original. default=1 */ int extension; /* the MP3 'private extension' bit. Meaningless */ int emphasis; /* Input PCM is emphased PCM (for instance from one of the rarely emphased CDs), it is STRONGLY not recommended to use this, because psycho does not take it into account, and last but not least many decoders don't care about these bits */ int error_protection; /* use 2 bytes per frame for a CRC checksum. default=0 */ int strict_ISO; /* enforce ISO spec as much as possible */ int disable_reservoir; /* use bit reservoir? */ /* quantization/noise shaping */ int quant_comp; int quant_comp_short; int experimentalY; int exp_nspsytune; int preset; /* VBR control */ vbr_mode VBR; int VBR_q; int VBR_mean_bitrate_kbps; int VBR_min_bitrate_kbps; int VBR_max_bitrate_kbps; int VBR_hard_min; /* strictly enforce VBR_min_bitrate normaly, it will be violated for analog silence */ /* resampling and filtering */ int lowpassfreq; /* freq in Hz. 0=lame choses. -1=no filter */ int highpassfreq; /* freq in Hz. 0=lame choses. -1=no filter */ int lowpasswidth; /* freq width of filter, in Hz (default=15%) */ int highpasswidth; /* freq width of filter, in Hz (default=15%) */ /* * psycho acoustics and other arguments which you should not change * unless you know what you are doing */ int psymodel; /* select psychoacoustic model */ float maskingadjust; float maskingadjust_short; int ATHonly; /* only use ATH */ int ATHshort; /* only use ATH for short blocks */ int noATH; /* disable ATH */ int ATHtype; /* select ATH formula */ float ATHcurve; /* change ATH formula 4 shape */ float ATHlower; /* lower ATH by this many db */ int athaa_type; /* select ATH auto-adjust scheme */ int athaa_loudapprox; /* select ATH auto-adjust loudness calc */ float athaa_sensitivity; /* dB, tune active region of auto-level */ int cwlimit; /* predictability limit */ short_block_t short_blocks; int useTemporal; /* use temporal masking effect */ float interChRatio; float msfix; /* Naoki's adjustment of Mid/Side maskings */ int tune; /* 0 off, 1 on */ float tune_value_a; /* used to pass values for debugging and stuff */ int quantization_type; /* 0 depending on quality, 1 ISO, 2 nonlinear */ struct { void (*msgf) (const char *format, va_list ap); void (*debugf) (const char *format, va_list ap); void (*errorf) (const char *format, va_list ap); } report; /************************************************************************/ /* internal variables, do not set... */ /* provided because they may be of use to calling application */ /************************************************************************/ int version; /* 0=MPEG-2/2.5 1=MPEG-1 */ int encoder_delay; int encoder_padding; /* number of samples of padding appended to input */ int framesize; int frameNum; /* number of frames encoded */ int lame_allocated_gfp; /* is this struct owned by calling program or lame? */ /**************************************************************************/ /* more internal variables are stored in this structure: */ /**************************************************************************/ lame_internal_flags *internal_flags; struct { int mmx; int amd3dnow; int sse; } asm_optimizations; }; #endif /* LAME_GLOBAL_FLAGS_H */