nightingale-media-player / nightingale-hacking

Working tree for the community fork of Songbird, Nightingale. If building, use the sb-trunk-oldxul (development) branch, with the tag 1.12.1 tag for stable, for now. The master-xul-9.0.1 branch is the current progress in building Nightingale with XULRunner 9 and builds, but is broken. All help in terms of patches and pull requests is welcome.
https://getnightingale.com
GNU General Public License v2.0
185 stars 41 forks source link

build breakage #377

Open JazzMaster opened 8 years ago

JazzMaster commented 8 years ago

oldxul before anyone gets in a tizzy.

. . .

LD sbMetadataHandlerTaglib.so MetadataHandlerTaglib.o: In function sbMetadataHandlerTaglib::ReadImageOgg(TagLib::Ogg::XiphComment*, int, nsACString&, unsigned int*, unsigned char**)': /home/me/Desktop/code/nite-nite/components/mediacore/metadata/handler/taglib/src/MetadataHandlerTaglib.cpp:1697: undefined reference toTagLib::String::to8Bitabi:cxx11 const' /home/me/Desktop/code/nite-nite/build/rules.mk:903: recipe for target 'sbMetadataHandlerTaglib.so' failed make[8]: Leaving directory '/home/me/Desktop/code/nite-nite/compiled/components/mediacore/metadata/handler/taglib/src' MetadataHandlerTaglib.o: In function sbMetadataHandlerTaglib::RemoveAllImagesOGG(TagLib::Vorbis::File*, int)': /home/me/Desktop/code/nite-nite/build/rules.mk:366: recipe for target 'libs' failed make[7]: Leaving directory '/home/me/Desktop/code/nite-nite/compiled/components/mediacore/metadata/handler/taglib' /home/me/Desktop/code/nite-nite/build/rules.mk:366: recipe for target 'libs' failed make[6]: Leaving directory '/home/me/Desktop/code/nite-nite/compiled/components/mediacore/metadata/handler' /home/me/Desktop/code/nite-nite/build/rules.mk:366: recipe for target 'libs' failed make[5]: Leaving directory '/home/me/Desktop/code/nite-nite/compiled/components/mediacore/metadata' /home/me/Desktop/code/nite-nite/build/rules.mk:366: recipe for target 'libs' failed make[4]: Leaving directory '/home/me/Desktop/code/nite-nite/compiled/components/mediacore' /home/me/Desktop/code/nite-nite/build/rules.mk:330: recipe for target 'libs_tier_componentsbase' failed make[3]: Leaving directory '/home/me/Desktop/code/nite-nite/compiled' /home/me/Desktop/code/nite-nite/build/rules.mk:353: recipe for target 'tier_componentsbase' failed make[2]: Leaving directory '/home/me/Desktop/code/nite-nite/compiled' /home/me/Desktop/code/nite-nite/build/rules.mk:273: recipe for target 'default' failed make[1]: Leaving directory '/home/me/Desktop/code/nite-nite/compiled' Makefile:197: recipe for target 'build' failed [me@livingroom] ~/Desktop/code/nite-nite $ /home/me/Desktop/code/nite-nite/components/mediacore/metadata/handler/taglib/src/MetadataHandlerTaglib.cpp:1291: undefined reference toTagLib::String::to8Bitabi:cxx11 const' collect2: error: ld returned 1 exit status make[8]: * [sbMetadataHandlerTaglib.so] Error 1 make[7]: * [libs] Error 2 make[6]: * [libs] Error 2 make[5]: * [libs] Error 2 make[4]: * [libs] Error 2 make[3]: * [libs_tier_componentsbase] Error 2 make[2]: * [tier_componentsbase] Error 2 make[1]: * [default] Error 2 make: *\ [build] Error 2 -FAILED

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/34668755-build-breakage?utm_campaign=plugin&utm_content=tracker%2F230233&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F230233&utm_medium=issues&utm_source=github).
freaktechnik commented 8 years ago

I assume this is on a newer GCC? Because our pre-built taglib doesn't work with that. That's also a major reason why there are no new builds for Ubuntu. The soltuion I had in mind was to build the deps too, but getting that set up on launchpad takes ages.

darealshinji commented 8 years ago

I think it's an issue with C++11 code linking against C++14 libraries. Building the deps on Ubuntu <16.04 isn't a big deal (see my personal PPA), but I think for Ubuntu 16.04 the deps need to be build with C++14 enabled and that didn't work the last time I tried it. Another solution would be to build all the dependent C++ libraries with -std=c++11 enabled and include them or link them statically.

By the way I was actually able to run NG on 16.04 when I build the deps and the program itself on 14.04 and linked everything with -static-libstdc++. However MP3 playback didn't work. I don't know if that issue was caused by NG or by the gstreamer version provided in 16.04.

JazzMaster commented 8 years ago

no its taglib. i got it thx. try 1.8 from the net and build from scratch, then force installed package from system. neither. two parts to that and nobody caring to update the website. 1- install fluendo. 2- copy it into the private folder. 3- theres a link missing, but the check for it shouldnt be. looking for num 3 right now, no errors in loading the gstreamer plugin like 'not linked' so seems to be the hard link is missing..

JazzMaster commented 8 years ago

built without futzing the c11.. does xul6 need it? mebbe. cmake-gui makes light work of that HELL... v 1.13A, nothing else builds for me.

JazzMaster commented 8 years ago

I take that back. still getting, even with debug build: and looks like debugging version of 113 has a memory leak. 1-Error: "30. A Beautiful Lie" was unable to play because the decoder (MPEG-1 Layer 3 (MP3) decoder) can not be found. 2-Error: GStreamer warning: No decoder available for type 'audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true'. Additional information: gsturidecodebin.c(874): unknown_type_cb (): /GstPlayBin2:player/GstURIDecodeBin:uridecodebin1 3-Error: GStreamer error: Your GStreamer installation is missing a plug-in. Additional information: gstdecodebin2.c(3576): gst_decode_bin_expose (): /GstPlayBin2:player/GstURIDecodeBin:uridecodebin1/GstDecodeBin2:decodebin21: no suitable plugins found 4-Error: GStreamer error: Your GStreamer installation is missing a plug-in. Additional information: gstdecodebin2.c(3576): gst_decode_bin_expose (): /GstPlayBin2:player/GstURIDecodeBin:uridecodebin1/GstDecodeBin2:decodebin21: no suitable plugins found 5-Error: GStreamer error: GStreamer encountered a general stream error. Additional information: gstbaseparse.c(2890): gst_base_parse_loop (): /GstPlayBin2:player/GstURIDecodeBin:uridecodebin1/GstDecodeBin2:decodebin21/GstMpegAudioParse:mpegaudioparse0: streaming stopped, reason not-linked will verify with the hard gst playback option but banshee plays the music fine, so it seems to be not catching the fluendo correctly. I have both arch installed. I even made the hard link.

JazzMaster commented 8 years ago

hmmm...switching modes removes the plugin in private folder? hmmm investigating...

JazzMaster commented 8 years ago

its a gstreamer issue. not the software fault.

hmmm.

gst-launch playbin uri=file:///media/me/media/mine/mp3z-iTuneys/30-Secs2mars/A\ Beautiful\ Lie/30.\ A\ Beautiful\ Lie.mp3 Setting pipeline to PAUSED ... Pipeline is PREROLLING ... \ Message: don't know how to handle audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true

Missing element: MPEG-1 Layer 3 (MP3) decoder

ERROR: from element /GstPlayBin:playbin0: You do not have a decoder installed to handle this file. You might need to install the necessary plugins. Additional debug info: gstplaybasebin.c(2323): prepare_output (): /GstPlayBin:playbin0 ERROR: pipeline doesn't want to preroll. Setting pipeline to NULL ... Freeing pipeline ...

ive noticed that someone else has a smattering of plugins, and fluendo is supposed to fix this as the standard now is NOT to use linux hackish lame version but the industry supported fluendo instead. same as mandrakes paid-for-play dvd player(lin-powerDvD?). fluendo just so happens to be free.

lemme work this out.

JazzMaster commented 8 years ago

this is where the issue is. horse if you ask me, to require a codec, require another codec and not provide the depends. like liblame or libmad, this should "just work". much like libdvdcss on vlc or mplayer, if installed.

totem: Carlos has just installed Ubuntu on his computer and has connected his ipod to it. When he tries to play an mp3 file from it, he gets a dialog suggesting to install gstreamer0.10-plugins-ugly to play that file. (installed)

Michael is trying to play a video, the codec required to decode the video part is not installed. Instead of playing only the audio track with visual effect totem suggests to install gstreamer0.10-ffmpeg so the video content can be decoded too. (not available, but for older ubuntus it is.)

JazzMaster commented 8 years ago

I may have a partial solution. gstreamer I once thought is looking for a missing ffmpeg plugin yet clearly its gone from debian jessie and above too. I dont even think were calling gstreamer correctly. note the differences:

gst-launch-0.10 -v filesrc location="/media/me/media/mine/mp3z-iTuneys/30-Secs2mars/A Beautiful Lie/30. A Beautiful Lie.mp3" ! mp3parse ! flump3dec Setting pipeline to PAUSED ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock /GstPipeline:pipeline0/GstMPEGAudioParse:mpegaudioparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true

--we stop here--

/GstPipeline:pipeline0/GstFluMp3Dec:flump3dec0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true /GstPipeline:pipeline0/GstFluMp3Dec:flump3dec0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)48000, channels=(int)2

ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error. -exactly what it sez-- you arent calling me correctly, go RTFM!

Additional debug info: gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:filesrc0: streaming task paused, reason not-linked (-1) -ignore this-

Execution ended after 3046356 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/GstFluMp3Dec:flump3dec0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstFluMp3Dec:flump3dec0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstMPEGAudioParse:mpegaudioparse0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ...

[me@livingroom] ~ $ gst-launch-0.10 -v filesrc location="/media/me/media/mine/mp3z-iTuneys/30-Secs2mars/A Beautiful Lie/30. A Beautiful Lie.mp3" ! mp3parse ! flump3dec ! autoaudiosink

Setting pipeline to PAUSED ... Pipeline is PREROLLING ... /GstPipeline:pipeline0/GstMPEGAudioParse:mpegaudioparse0.GstPad:src: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true

/GstPipeline:pipeline0/GstFluMp3Dec:flump3dec0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, rate=(int)48000, channels=(int)2, parsed=(boolean)true

/GstPipeline:pipeline0/GstFluMp3Dec:flump3dec0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)48000, channels=(int)2

/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)48000, channels=(int)2

/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)48000, channels=(int)2

/GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)48000, channels=(int)2

Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstPulseSinkClock /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse: volume = 0.079435 /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse: mute = FALSE /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse: volume = 0.079435 /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse: mute = FALSE

Got EOS from element "pipeline0". Execution ended after 245403068623 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstPulseSink:autoaudiosink0-actual-sink-pulse.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink: caps = NULL /GstPipeline:pipeline0/GstFluMp3Dec:flump3dec0.GstPad:src: caps = NULL /GstPipeline:pipeline0/GstFluMp3Dec:flump3dec0.GstPad:sink: caps = NULL /GstPipeline:pipeline0/GstMPEGAudioParse:mpegaudioparse0.GstPad:src: caps = NULL Setting pipeline to NULL ... Freeing pipeline ...

-which actually plays the music- firthermore: To investigate the capabilities of a element you can use gst-inspect.

On a terminal you can type for example: gst-inspect flump3dec

--nabble.com