pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/48776: www/firefox 29.0 cannot convert 'float**' to 'mozilla::AudioDataValue** {aka short int**}'



>Number:         48776
>Category:       pkg
>Synopsis:       www/firefox 29.0 cannot convert 'float**' to 
>'mozilla::AudioDataValue** {aka short int**}'
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu May 01 14:10:00 +0000 2014
>Originator:     David Shao
>Release:        DragonFly 3.7-DEVELOPMENT x86_64
>Organization:
>Environment:
DragonFly  3.7-DEVELOPMENT DragonFly v3.7.1.1125.ga2296-DEVELOPMENT #4: Sun Apr 
27 17:02:25 PDT 2014  xxxxx@:/usr/obj/usr/src/sys/X86_64_GENERIC  x86_64

>Description:
On DragonFly 3.7-DEVELOPMENT x86_64, current pkgsrc cvs www/firefox 29.0 fails 
to build with:

c++ -o VorbisTrackEncoder.o -c -I../../../dist/stl_wrappers 
-I../../../dist/system_wrappers -include 
/usr/pkgsrc/www/firefox/work/mozilla-release/config/gcc_hidden.h -DOS_POSIX=1 
-DOS_BSD=1 -DOS_DRAGONFLY=1 -DMOZ_GLUE_IN_PROGRAM -DMOZILLA_INTERNAL_API 
-DIMPL_LIBXUL  -DNO_NSPR_10_SUPPORT 
-I/usr/pkgsrc/www/firefox/work/mozilla-release/content/media/encoder -I. 
-I/usr/pkgsrc/www/firefox/work/mozilla-release/ipc/chromium/src 
-I/usr/pkgsrc/www/firefox/work/mozilla-release/ipc/glue 
-I/usr/pkgsrc/www/firefox/work/build/ipc/ipdl/_ipdlheaders 
-I../../../dist/include  -I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss 
-I/usr/pkg/include/nss -I/usr/pkg/include/nspr     -I/usr/pkg/include/pixman-1  
 -I/usr/pkgsrc/www/firefox/work/mozilla-release/ipc/chromium/src 
-I/frameworks/native/opengl/include/ -I/frameworks/native/include/ 
-I/frameworks/av/include/media/   -fPIC  -I/usr/include -I/usr/pkg/include 
-I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss -I/usr/pkg/include/libdrm 
-I/usr/pkg
 /include/freetype2 -DMOZILLA_CLIENT -include ../../../mozilla-config.h -MD -MP 
-MF .deps/VorbisTrackEncoder.o.pp -I/usr/include -I/usr/pkg/include 
-I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss -I/usr/pkg/include/libdrm 
-I/usr/pkg/include/freetype2 -Wall -Wpointer-arith -Woverloaded-virtual 
-Werror=return-type -Werror=int-to-pointer-cast -Wtype-limits -Wempty-body 
-Wsign-compare -Wno-invalid-offsetof -Wcast-align -g -I/usr/include 
-I/usr/pkg/include -I/usr/pkg/include/nspr -I/usr/pkg/include/nss/nss 
-I/usr/pkg/include/libdrm -I/usr/pkg/include/freetype2 -fno-exceptions 
-fno-strict-aliasing -fno-rtti -fno-exceptions -fno-math-errno -std=gnu++0x 
-pthread -pipe  -DNDEBUG -DTRIMMED -O2 -fomit-frame-pointer    
/usr/pkgsrc/www/firefox/work/mozilla-release/content/media/encoder/VorbisTrackEncoder.cpp
/usr/pkgsrc/www/firefox/work/mozilla-release/content/media/encoder/VorbisTrackEncoder.cpp:
 In member function 'virtual nsresult 
mozilla::VorbisTrackEncoder::GetEncodedTrack(mozilla::EncodedFrameContainer&)':
/usr/pkgsrc/www/firefox/work/mozilla-release/content/media/encoder/VorbisTrackEncoder.cpp:200:74:
 error: cannot convert 'float**' to 'mozilla::AudioDataValue** {aka short 
int**}' in initialization
/usr/pkgsrc/www/firefox/work/mozilla-release/config/rules.mk:1028: recipe for 
target 'VorbisTrackEncoder.o' failed
gmake[3]: *** [VorbisTrackEncoder.o] Error 1
gmake[3]: Leaving directory 
'/usr/pkgsrc/www/firefox/work/build/content/media/encoder'
/usr/pkgsrc/www/firefox/work/mozilla-release/config/recurse.mk:100: recipe for 
target 'content/media/encoder/compile' failed
gmake[2]: *** [content/media/encoder/compile] Error 2
gmake[2]: Leaving directory '/usr/pkgsrc/www/firefox/work/build'
/usr/pkgsrc/www/firefox/work/mozilla-release/config/recurse.mk:39: recipe for 
target 'compile' failed
gmake[1]: *** [compile] Error 2
gmake[1]: Leaving directory '/usr/pkgsrc/www/firefox/work/build'
/usr/pkgsrc/www/firefox/work/mozilla-release/config/rules.mk:596: recipe for 
target 'all' failed

The relevant line in content/media/encoder/VorbisTrackEncoder.cpp is

  AudioDataValue **vorbisBuffer =
    vorbis_analysis_buffer(&mVorbisDsp, (int)sourceSegment->GetDuration());

AudioDataValue is defined in content/media/AudioSampleFormat.h as

typedef AudioSampleTraits<AUDIO_OUTPUT_FORMAT>::Type AudioDataValue;

AUDIO_OUTPUT_FORMAT is defined in content/media/AudioSampleFormat.h

/**
 * Audio formats supported in MediaStreams and media elements.
 *
 * Only one of these is supported by AudioStream, and that is determined
 * at compile time (roughly, FLOAT32 on desktops, S16 on mobile). Media decoders
 * produce that format only; queued AudioData always uses that format.
 */
enum AudioSampleFormat
{
  // Native-endian signed 16-bit audio samples
  AUDIO_FORMAT_S16,
  // Signed 32-bit float samples
  AUDIO_FORMAT_FLOAT32,
  // The format used for output by AudioStream.
#ifdef MOZ_SAMPLE_TYPE_S16
  AUDIO_OUTPUT_FORMAT = AUDIO_FORMAT_S16
#else
  AUDIO_OUTPUT_FORMAT = AUDIO_FORMAT_FLOAT32
#endif
};

vorbis_analysis_buffer() is defined in media/libvorbis/lib/vorbis_block.c as in 
part:

float **vorbis_analysis_buffer(vorbis_dsp_state *v, int vals)

The relevant change appears to be in patch-aa

 dnl Use integers over floats for audio on B2G and Android, because audio
 dnl backends for those platforms don't support floats.
-if test "$OS_TARGET" = "Android"; then
+case "$OS_TARGET" in
+Android|DragonFly|FreeBSD|OpenBSD)
     MOZ_SAMPLE_TYPE_S16=1
     AC_DEFINE(MOZ_SAMPLE_TYPE_S16)
     AC_SUBST(MOZ_SAMPLE_TYPE_S16)
-else
+    ;;
+*)
     MOZ_SAMPLE_TYPE_FLOAT32=1
     AC_DEFINE(MOZ_SAMPLE_TYPE_FLOAT32)
     AC_SUBST(MOZ_SAMPLE_TYPE_FLOAT32)
-fi
+    ;;
+esac

In patch-aa, NetBSD was removed from the above list of $OS_TARGET.  The 
question is what should be done for other desktop OSes.

>How-To-Repeat:

>Fix:



Home | Main Index | Thread Index | Old Index