Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

switch to gstreamer 1.x on osx #970

Closed
totaam opened this issue Aug 31, 2015 · 24 comments
Closed

switch to gstreamer 1.x on osx #970

totaam opened this issue Aug 31, 2015 · 24 comments

Comments

@totaam
Copy link
Collaborator

totaam commented Aug 31, 2015

Issue migrated from trac ticket # 970

component: platforms | priority: blocker | resolution: fixed | keywords: win32 osx sound gstreamer

2015-08-31 09:46:47: antoine created the issue


Follow up from #849.

This should not require any real code changes, mostly build env installation and configuration, and of course: packaging..

We probably want to support both 0.10 and 1.x for a while, we could even ship both so that we can switch at runtime.

Related to #678, #533.

@totaam
Copy link
Collaborator Author

totaam commented Sep 17, 2015

2015-09-17 18:52:08: smo commented


I will look into how difficult to add this to the moduleset some of it might even be there we would just be missing plugins-ugly I believe.

As for Win32 I will look into what is involved here. I would prefer if we can build these ourselves instead of downloading another old binary dist.

@totaam
Copy link
Collaborator Author

totaam commented Sep 18, 2015

2015-09-18 07:50:08: antoine commented


win32: it's a bit confusing isn't it?

  • this page: [http://gstreamer.freedesktop.org/data/pkg/windows/] has recent packages
  • this one: [http://docs.gstreamer.com/display/GstSDK/Installing+on+Windows] has packages from 2013
    The important thing for us is how well this is going to play with building other things from source. (building all the dependencies from source on win32 #678?)
    We also need pygobject3 ("gi" bindings) to access gstreamer 1.x, no idea how to build that or what dependencies are needed (see below for osx).

OSX:

  • might be relevant for OSX Client fails to run because of gatekeeper changes in OSX 10.10.4+ #984?
  • the modulesets bring in gstreamer version 1.4.3 (same for the plugins) which is a little bit old (we don't necessarily want 1.5.x but 1.4.5 would be better)
  • they bring in orc 0.4.22 which is out of date, we want the 0.4.24 version we have in our moduleset (not sure why it didn't pick that up) - this breaks all the existing gstreamer modules.. (unhappy about being linked against a different library version)
  • on my 10.5 build VM, the opengl headers are too old so I have to build plugins bad with --disable-gl --disable-cocoa (and we don't really care about opengl or cocoa in gstreamer anyway)
  • they bring in gst-libav.. not sure we want this at all, likely to conflict with our build of ffmpeg?
  • to be able to use gstreamer 1.x from python, we need the gobject3 bindings: jhbuild pygobject3 brings in lots of dependencies... including gtk3. (I guess we can take a look at the sate of gtk3 on osx too) And some of those also look out of date.
  • pygobject3 is at 3.14, 3.16 is out and I hit this bug: [https://github.com/pygobject failed to build on 10.10.1 Homebrew/legacy-homebrew#36207], which is fixed by this patch: [https://github.com/GNOME/pygobject/commit/0de827190e7575f7e1e339337b78c7d6e46957b4.diff]

After that, I can run things against gstreamer 1.x (not bothering with "ugly" just yet, vorbis is ok anyway):

$ XPRA_GSTREAMER1=1 ./xpra/sound/gstreamer_util.py

(gst-plugin-scanner:64798): GStreamer-WARNING **: Failed to load plugin '/Users/osx/gtk/inst/lib/gstreamer-0.10/libgstfieldanalysis.so': dlopen(/Users/osx/gtk/inst/lib/gstreamer-0.10/libgstfieldanalysis.so, 2): Library not loaded: /Users/osx/gtk/inst/lib/liborc-0.4.0.dylib
  Referenced from: /Users/osx/gtk/inst/lib/gstreamer-0.10/libgstfieldanalysis.so
  Reason: Incompatible library version: libgstfieldanalysis.so requires version 24.0.0 or later, but liborc-0.4.0.dylib provides version 23.0.0

(gst-plugin-scanner:64798): GStreamer-WARNING **: Failed to load plugin '/Users/osx/gtk/inst/lib/gstreamer-0.10/libgstvideofiltersbad.so': dlopen(/Users/osx/gtk/inst/lib/gstreamer-0.10/libgstvideofiltersbad.so, 2): Library not loaded: /Users/osx/gtk/inst/lib/liborc-0.4.0.dylib
  Referenced from: /Users/osx/gtk/inst/lib/gstreamer-0.10/libgstvideofiltersbad.so
  Reason: Incompatible library version: libgstvideofiltersbad.so requires version 24.0.0 or later, but liborc-0.4.0.dylib provides version 23.0.0
Loaded Python GStreamer version 1.4.3 for Python 2.7
GStreamer plugins found: (...)

GStreamer version: 1.4.3.0
PyGStreamer version: 3.14.0

encoders supported: vorbis, wav, wavpack, speex
decoders supported: vorbis, wav, wavpack, speex

@smo: if you can reproduce this and tweak the modulesets as per the comments above (in particular - fixing orc..), then I'll take a look at packaging and changing the default to 1.x for OSX.
Raising the priority as this should be complete for the 0.16 release.

@totaam
Copy link
Collaborator Author

totaam commented Oct 8, 2015

2015-10-08 22:45:16: smo commented


I found the issue with orc the id for orc in gtk-osx-gstreamer.modules is 'liborc' while ours is just 'orc'

Perhaps I should just remove ours and update it to use liborc instead and update the version on that one to 0.4.24

@totaam
Copy link
Collaborator Author

totaam commented Oct 9, 2015

2015-10-09 11:12:34: antoine commented


I found the issue with orc the id for orc in gtk-osx-gstreamer.modules is 'liborc' while ours is just 'orc'
Perhaps I should just remove ours and update it to use liborc instead and update the version on that one to 0.4.24
[[BR]]
Ah! Right, let's use the same name as upstream and update to 0.4.24

@totaam
Copy link
Collaborator Author

totaam commented Oct 15, 2015

2015-10-15 20:49:40: smo commented


Changed orc to liborc in r10855 which is what it is called in the moduleset since ours is loaded last this should override it

@totaam
Copy link
Collaborator Author

totaam commented Oct 23, 2015

2015-10-23 07:41:21: antoine commented


Blocker for #987

@totaam
Copy link
Collaborator Author

totaam commented Oct 27, 2015

2015-10-27 22:20:40: smo commented


update for pygobject3 3.16.2 in r10857
builds no problem

@totaam
Copy link
Collaborator Author

totaam commented Oct 27, 2015

2015-10-27 22:23:10: smo commented


Version updates for gstreamer all built successfully

r11062 gstreamer-1.0 1.4.5
r11063 gst-plugins-base-1.0 1.4.5
r11064 gst-plugins-good-1.0 1.4.5
r11065 gst-plugins-bad-1.0 1.4.5

@totaam
Copy link
Collaborator Author

totaam commented Oct 27, 2015

2015-10-27 22:27:03: smo commented


r11066 gst-plugins-ugly-1.0 1.4.5

@totaam
Copy link
Collaborator Author

totaam commented Oct 27, 2015

2015-10-27 22:29:44: smo commented


PYTHONPATH=./ XPRA_GSTREAMER1=1 ./xpra/sound/gstreamer_util.py 

Loaded Python GStreamer version 1.4.5 for Python 2.7
GStreamer plugins found: 3gppmux, aacparse, ac3parse, accurip, adder, adpcmdec, adpcmenc, agingtv, aiffmux, aiffparse, alawdec, alawenc, alpha, alphacolor, amrparse, apedemux, appsink, appsrc, asfdemux, asfmux, asfparse, aspectratiocrop, asteriskh263, audioamplify, audiochannelmix, audiochebband, audiocheblimit, audioconvert, audiodynamic, audioecho, audiofirfilter, audioiirfilter, audioinvert, audiokaraoke, audiomixer, audiopanorama, audioparse, audiorate, audioresample, audiosegmentclip, audiotestsrc, audiowsincband, audiowsinclimit, auparse, autoaudiosink, autoaudiosrc, autoconvert, autovideoconvert, autovideosink, autovideosrc, avidemux, avimux, avisubtitle, bayer2rgb, bin, breakmydata, bulge, burn, bz2dec, bz2enc, cairooverlay, camerabin, capsfilter, capssetter, checksumsink, chopmydata, chromahold, chromium, circle, clockoverlay, coloreffects, combdetect, compare, compositor, cpureport, cutter, dashdemux, dataurisrc, dcaparse, debugspy, decklinksink, decklinksrc, decodebin, deinterlace, deinterleave, dicetv, diffuse, dilate, diracparse, dodge, downloadbuffer, dtmfsrc, dvbsuboverlay, dvdlpcmdec, dvdspu, dvdsubdec, dvdsubparse, dynudpsink, edgetv, encodebin, equalizer-10bands, equalizer-3bands, equalizer-nbands, exclusion, faac, faad, fakesink, fakesrc, fdsink, fdsrc, festival, fieldanalysis, filesink, filesrc, fisheye, flacdec, flacenc, flacparse, flactag, flvdemux, flvmux, flxdec, fpsdisplaysink, freeverb, funnel, gamma, gaussianblur, gdkpixbufdec, gdkpixbufoverlay, gdkpixbufsink, gdpdepay, gdppay, giosink, giosrc, giostreamsink, giostreamsrc, goom, goom2k1, h263parse, h264parse, h265parse, icydemux, id3demux, id3mux, identity, imagefreeze, input-selector, interaudiosink, interaudiosrc, interlace, interleave, intersubsink, intersubsrc, intervideosink, intervideosrc, irtspparse, ismlmux, ivfparse, ivtc, jifmux, jp2kdecimator, jpegdec, jpegenc, jpegparse, kaleidoscope, lamemp3enc, level, liveadder, mad, marble, matroskademux, matroskamux, matroskaparse, midiparse, mirror, mj2mux, mp4mux, mpeg4videoparse, mpegaudioparse, mpegpsdemux, mpegpsmux, mpegtsmux, mpegvideoparse, mssdemux, mulawdec, mulawenc, multifdsink, multifilesink, multifilesrc, multipartdemux, multipartmux, multiqueue, multisocketsink, multiudpsink, mxfdemux, navigationtest, navseek, oggaviparse, oggdemux, oggmux, oggparse, ogmaudioparse, ogmtextparse, ogmvideoparse, optv, oss4sink, oss4src, osxaudiosink, osxaudiosrc, output-selector, pcapparse, perspective, pinch, pipeline, playbin, playsink, pngdec, pngenc, pngparse, pnmdec, pnmenc, pnmsrc, progressreport, pushfilesrc, qtdemux, qtmoovrecover, qtmux, quarktv, queue, queue2, rademux, radioactv, rdtdepay, rdtmanager, removesilence, revtv, rfbsrc, rganalysis, rgb2bayer, rglimiter, rgvolume, rippletv, rmdemux, rndbuffersize, rotate, rsvgdec, rsvgoverlay, rtpL16depay, rtpL16pay, rtpL24depay, rtpL24pay, rtpac3depay, rtpac3pay, rtpamrdepay, rtpamrpay, rtpasfdepay, rtpasfpay, rtpbin, rtpbvdepay, rtpbvpay, rtpceltdepay, rtpceltpay, rtpdec, rtpdtmfdepay, rtpdtmfmux, rtpdtmfsrc, rtpdvdepay, rtpdvpay, rtpg722depay, rtpg722pay, rtpg723depay, rtpg723pay, rtpg726depay, rtpg726pay, rtpg729depay, rtpg729pay, rtpgsmdepay, rtpgsmpay, rtpgstdepay, rtpgstpay, rtph263depay, rtph263pay, rtph263pdepay, rtph263ppay, rtph264depay, rtph264pay, rtpilbcdepay, rtpilbcpay, rtpj2kdepay, rtpj2kpay, rtpjitterbuffer, rtpjpegdepay, rtpjpegpay, rtpmp1sdepay, rtpmp2tdepay, rtpmp2tpay, rtpmp4adepay, rtpmp4apay, rtpmp4gdepay, rtpmp4gpay, rtpmp4vdepay, rtpmp4vpay, rtpmpadepay, rtpmpapay, rtpmparobustdepay, rtpmpvdepay, rtpmpvpay, rtpmux, rtppcmadepay, rtppcmapay, rtppcmudepay, rtppcmupay, rtpptdemux, rtpqcelpdepay, rtpqdm2depay, rtprtxqueue, rtprtxreceive, rtprtxsend, rtpsbcdepay, rtpsbcpay, rtpsession, rtpsirendepay, rtpsirenpay, rtpspeexdepay, rtpspeexpay, rtpssrcdemux, rtpstreamdepay, rtpstreampay, rtpsv3vdepay, rtptheoradepay, rtptheorapay, rtpvorbisdepay, rtpvorbispay, rtpvp8depay, rtpvp8pay, rtpvrawdepay, rtpvrawpay, rtpxqtdepay, rtspreal, rtspsrc, rtspwms, sbcparse, scaletempo, scenechange, sdpdemux, shagadelictv, shapewipe, shmsink, shmsrc, simplevideomark, simplevideomarkdetect, sirendec, sirenenc, smooth, smpte, smptealpha, solarize, spacescope, spectrascope, spectrum, speed, speexdec, speexenc, sphere, splitfilesrc, square, srtenc, ssaparse, stereo, streaktv, streamsynchronizer, stretch, subparse, subtitleoverlay, synaescope, taginject, tcpclientsink, tcpclientsrc, tcpserversink, tcpserversrc, tee, testsink, textoverlay, textrender, theoradec, theoraenc, theoraparse, timeoverlay, tsdemux, tsparse, tunnel, twirl, twolamemp2enc, typefind, udpsink, udpsrc, uridecodebin, valve, vc1parse, vertigotv, videoanalyse, videobalance, videobox, videoconvert, videocrop, videodiff, videoflip, videomedian, videomixer, videoparse, videorate, videoscale, videosegmentclip, videotestsrc, viewfinderbin, vmncdec, volume, vorbisdec, vorbisenc, vorbisparse, vorbistag, vp8dec, vp8enc, vp9dec, vp9enc, warptv, watchdog, waterripple, wavenc, wavescope, wavpackdec, wavpackenc, wavpackparse, wavparse, webmmux, webpdec, webvttenc, wrappercamerabinsrc, x264enc, xingmux, y4mdec, y4menc, yadif, zebrastripe

GStreamer version: 1.4.5.0
PyGStreamer version: 3.16.2

encoders supported: vorbis, mp3, wav, wavpack, speex
decoders supported: vorbis, mp3, wav, wavpack, speex

@totaam
Copy link
Collaborator Author

totaam commented Oct 28, 2015

2015-10-28 16:00:41: antoine commented


Mostly done in r11074 + r11075. Why or why does everything take so long on OSX...
(this changes how we load gstreamer, I have checked for regressions on win32 and Linux)

Issues:

  • my build environment got messed up: gtk-mac-integration-python wouldn't load... because it needed to be rebuilt with an explicit --with-gtk=gtk+-2.0 configure argument - needs to be added to the moduleset (hopefully there aren't any other components now building against gi..)
  • because we didn't bundle the gstreamer video plugin (the make-app script removes it explicitly), we were getting the following warnings at runtime:
(gst-plugin-scanner-1.0:1362): GStreamer-WARNING **: Failed to load plugin '/Users/osx/Desktop/Xpra.app/Contents/Resources/lib/gstreamer-1.0/libgstaudioparsers.so': dlopen(/Users/osx/Desktop/Xpra.app/Contents/Resources/lib/gstreamer-1.0/libgstaudioparsers.so, 2): Library not loaded: @executable_path/../Resources/lib/libgstvideo-1.0.0.dylib
  Referenced from: /Users/osx/Desktop/Xpra.app/Contents/Resources/lib/libgstpbutils-1.0.0.dylib
  Reason: image not found

I tried disabling everything I could find in an attempt to prevent gstpbutils from linking with the libgstvideo dylib:

./configure --prefix $JHBUILD_PREFIX --libdir $JHBUILD_PREFIX/lib \
    --disable-x --disable-xvideo --disable-videoconvert --disable-videotestsrc \
    --disable-videorate --disable-videoscale --disable-xshm --disable-libvisual \
    --disable-theora --disable-subparse --disable-freetypetest --disable-adder \
    --disable-encoding --disable-cdparanoia --disable-alsa --disable-pango \
    --disable-playback --disable-typefind --disable-gio --disable-tcp --disable-examples

But the dependency is hardcoded in the source... I even tried patching it out in the module to remove the video subfolder, which worked... but then I would have needed to rebuild all the other gstreamer modules too, so I gave up on that and we ship the 1.0 version of the video library.

  • noticed some gst-plugin-scanner-1.0 -l zombies left behind, which could be a problem. (can we just noop this thing instead? or have a wrapper that ensures it really does get killed as a last resort)
  • I am getting ** (<unknown>:602): CRITICAL **: gst_audio_ring_buffer_open_device: assertion 'GST_IS_AUDIO_RING_BUFFER (buf)' failed on the machines I tested on, but not on the build machine... so something is missing? (and we should also detect that sound isn't working at this point) Copy things one at a time until it works would be hard (need to run name tool on each), so maybe just bundle everything and then remove one at a time instead... takes time. It would be worth running some basic sanity checks on this gstreamer installation first, is it even functional on the build machine?
  • GStreamer_info command was working but XPRA_SKIP_UI=1 XPRA_GSTREAMER=1 ./Xpra.app/Contents/MacOS/Xpra _sound_query was failing to load Gst. (we need XPRA_SKIP_UI=1 to avoid loading gtkosx_application which loads GTK2... which prevents the gi bindings from loading)... fixed in r11077 by re-ordering imports.
  • we don't have mp3 or opus support - I haven't looked at why (flac is disabled and we know why)
  • if an when we decide to permanently switch to just one version of gstreamer, we can do that - but seeing the cost of those libraries compared to the overall size, I don't see the rush - having two versions is better for testing and debugging
  • whilst we're at it, this warning should be avoided (and there could be others - I haven't looked):
*** Configuring gst-plugins-bad-1.0 *** [1/1]
./configure --prefix /Users/osx/gtk/inst --libdir '/Users/osx/gtk/inst/lib' --disable-tests --disable-x --disable-xvid --disable-gl --disable-cocoa  
configure: WARNING: unrecognized options: --disable-tests, --disable-x

For testing, you still need to explicitly enable gstreamer 1.0 support using:

XPRA_GSTREAMER1=1 ./Desktop/Xpra.app/Contents/MacOS/Xpra attach ...

This is an edited (removing noise) summary of what I get with:

$ XPRA_SOUND_DEBUG=1 XPRA_GSTREAMER1=1 ./Desktop/Xpra.app/Contents/Helpers/GStreamer_info
trying to import GStreamer 1.0 using <function import_gst1 at 0x1830c70>
Python GStreamer version 1.4.5 for Python 2.7
GStreamer version: 1.4.5.0
PyGStreamer version: 3.14.0
initialized sound codecs:
* vorbis     : vorbisenc   , gdppay      , vorbisdec   , gdpdepay    
* wav        : wavenc      , None        , None        , wavparse    
* wavpack    : wavpackenc  , None        , wavpackdec  , wavpackparse
* speex      : speexenc    , oggmux      , speexdec    , oggdemux    

@smo: if that works for you and you can solve most of the problems, please re-assign to afarr / pvenkateswaralu for testing. Hopefully this helps with #987.

@totaam
Copy link
Collaborator Author

totaam commented Oct 28, 2015

2015-10-28 16:49:00: antoine commented


@smo: ready for you to have a go... (see above)

@totaam
Copy link
Collaborator Author

totaam commented Oct 29, 2015

2015-10-29 18:38:27: smo commented


Mp3 missing is usually something to do with gst-plugins-ugly. I'm going to fix these few warnings and pass this on to test.

I'll also add the flag for gtk-mac-integration-python

@totaam
Copy link
Collaborator Author

totaam commented Oct 30, 2015

2015-10-30 02:40:46: antoine commented


Please also take a look at the gst_audio_ring_buffer_open_device issue.
Sound did not run on machines other than the build machine when I tried - a sign that something is missing.

@totaam
Copy link
Collaborator Author

totaam commented Nov 17, 2015

2015-11-17 02:52:23: antoine commented


r11253 makes gstreamer the default on OSX, in part to fix #987
I'm not seeing the warnings from comment:15 any more either, but I haven't tested this very thoroughly (all the codecs, connecting to older servers, etc)

@totaam
Copy link
Collaborator Author

totaam commented Nov 23, 2015

2015-11-23 17:14:22: antoine commented


@smo: not much was happening with this ticket, so I assume that OSX works for you? Did you see or investigate the warnings from comment@15?
It is probably safe to close this ticket.


I attempted to get gstreamer 1.x bundled with win32.
There are recent pygobjectwin32 installers (3.18.2 rev2 as of last week), which may also help with #640.
And if I install the Gst gi bindings, I can load gstreamer 1.x.

The bit problem is that despite some build tweaks (r11313 + r11314 + r11315 + r11316 which will still be helpful for #1041), this doesn't play well with the gstreamer 0.10 bindings: they use different versions of gobject and glib libraries.. but with the same DLL name! (sigh)
So we cannot easily bundle them together. I tried modified the gstreamer loader to inject a per-version DLL path into the environment before loading, but that doesn't seem to be honoured by the loader which uses the path of the executable before anything else..
It also seems to look in Xpra/lib/gstreamer-1.0, no matter what I set for GST_PLUGIN_PATH...

(see also the ugly code in the bundle BAT file which overwrites the old ossbuild gstreamer dlls with the more up to date ones from GTK... which makes it harder to split gstreamer 0.10 into its own directory)

We can't use the same hack that we do on OSX using symlinks.. because win32 doesn't support "1980s innovation" in any meaningful way.

So I am moving win32 support to #1041

@totaam
Copy link
Collaborator Author

totaam commented Dec 15, 2015

2015-12-15 00:54:12: afarr commented


I suppose this would be the place to point out that the later 0.16.0 osx builds in the xpra/beta repos (r11261 & r11304) have no mp3 codec? (Meanwhile the 0.16.0 r11206, and presumably several earlier builds, do have mp3 available.)

@totaam
Copy link
Collaborator Author

totaam commented Dec 15, 2015

2015-12-15 23:45:52: smo commented


Can't seem to reproduce the gst_audio_ring_buffer_open_device you've been seeing but here is what I have found out.

If I mount the dmg and run XPRA_SOUND_DEBUG=1 XPRA_GSTREAMER1=1 ./Contents/Helpers/GStreamer_info

On my build system it looks mostly okay looks like its still missing something.

skipping flac with GStreamer 1.x to avoid obscure 'not-neogtiated' errors I do not have time for
missing ['mp3parse'] from ('lamemp3enc', None, 'mad', 'mp3parse')
missing ['opusenc', 'opusdec'] from ('opusenc', 'oggmux', 'opusdec', 'oggdemux')
initialized sound codecs:
* vorbis     : vorbisenc   , gdppay      , vorbisdec   , gdpdepay    
* mp3        : lamemp3enc  , None        , mad         , mpegaudioparse
* wav        : wavenc      , None        , None        , wavparse    
* wavpack    : wavpackenc  , None        , wavpackdec  , wavpackparse
* speex      : speexenc    , oggmux      , speexdec    , oggdemux    

However with 2 other people running them on osx el capitan. This is the output they get.

skipping flac with GStreamer 1.x to avoid obscure 'not-neogtiated' errors I do not have time for
missing ['lamemp3enc', 'mad', 'mp3parse'] from ('lamemp3enc', None, 'mad', 'mp3parse')
missing ['lamemp3enc', 'mad'] from ('lamemp3enc', None, 'mad', 'mpegaudioparse')
missing ['opusenc', 'opusdec'] from ('opusenc', 'oggmux', 'opusdec', 'oggdemux')
initialized sound codecs:
* vorbis     : vorbisenc   , gdppay      , vorbisdec   , gdpdepay    
* wav        : wavenc      , None        , None        , wavparse    
* wavpack    : wavpackenc  , None        , wavpackdec  , wavpackparse
* speex      : speexenc    , oggmux      , speexdec    , oggdemux    
encoders supported: vorbis, wav, wavpack, speex
decoders supported: vorbis, wav, wavpack, speex

Any suggestions?

@totaam
Copy link
Collaborator Author

totaam commented Dec 16, 2015

2015-12-16 01:16:10: antoine commented


  • opus would be nice to have, not a big priority
  • mp3: we should have this available, one of the plugins (or one of their dylib) must be missing - lamemp3enc, mad or mpegaudioparse

you should be able to test by moving your /gtk/ installation out of the way.

Note: XPRA_GSTREAMER1=1 is now the default already on all platforms except win32.

@totaam
Copy link
Collaborator Author

totaam commented Dec 18, 2015

2015-12-18 00:03:23: smo commented


Found the missing dylibs looks like we need libgstlame.so and libgstmad.so just like in 0.10

This has been tested and it works still have messages about missing stuff however

GStreamer version: 1.4.5.0
PyGStreamer version: 3.16.2

skipping flac with GStreamer 1.x to avoid obscure 'not-neogtiated' errors I do not have time for
missing ['mp3parse'] from ('lamemp3enc', None, 'mad', 'mp3parse')
missing ['opusenc', 'opusdec'] from ('opusenc', 'oggmux', 'opusdec', 'oggdemux')
initialized sound codecs:
* vorbis     : vorbisenc   , gdppay      , vorbisdec   , gdpdepay    
* mp3        : lamemp3enc  , None        , mad         , mpegaudioparse
* wav        : wavenc      , None        , None        , wavparse    
* wavpack    : wavpackenc  , None        , wavpackdec  , wavpackparse
* speex      : speexenc    , oggmux      , speexdec    , oggdemux   

I would like to add opus which is from plugins-bad. It will require adding opus to the moduleset so maybe we open a new ticket for this?

@totaam
Copy link
Collaborator Author

totaam commented Dec 18, 2015

2015-12-18 00:03:52: smo uploaded file make-app-always_add_lame_mad.patch (0.7 KiB)

@totaam
Copy link
Collaborator Author

totaam commented Dec 18, 2015

2015-12-18 03:16:09: antoine commented


I was explicitly skipping those two plugins because of the problems I was seeing but rebuilding with jhbuild build root-gst-plugins-ugly-1.0 then making a new build seems to work fine (tested on the build machine as another user, then on a clean test VM). So I have applied this patch in trunk in r11426, and then in 0.16.x in 11427.

As for the other missing plugins:

  • mp3parse is the gstreamer-0.10 mp3 pipeline variant (we try both) - ignore that
  • opus - if it's easy to add, why not

@afarr: just a FYI, please close, all 0.16.x and trunk OSX builds should now have most codecs:

initialized sound codecs:
* vorbis     : vorbisenc   , gdppay      , vorbisdec   , gdpdepay    
* mp3        : lamemp3enc  , None        , mad         , mpegaudioparse
* wav        : wavenc      , None        , None        , wavparse    
* wavpack    : wavpackenc  , None        , wavpackdec  , wavpackparse
* speex      : speexenc    , oggmux      , speexdec    , oggdemux    

@totaam
Copy link
Collaborator Author

totaam commented Jan 4, 2016

2016-01-04 18:04:15: maxmylyn commented


Noted. Closing.

(also double checked codecs in latest OSX beta build, and confirmed that I see these codecs)

@totaam totaam closed this as completed Jan 4, 2016
@totaam
Copy link
Collaborator Author

totaam commented Jan 5, 2016

2016-01-05 09:10:19: antoine commented


for opus support on osx, see #1074 and #1204#comment:1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant