Git Product home page Git Product logo

gecko-media's Introduction

Gecko Media Rust Crate

Build Status

Firefox's Media stack in a Rust crate.

Build with cargo build.

Run tests with cargo test.

A minimalistic player is also available:

$ cd examples
$ cargo run --bin test-player -- /path/to/some/audio-file.ogg

Procedure to update the imported code from Gecko

  1. A mozilla-central Gecko build is required. Optimizations and debug should be enabled. Example mozconfig file:

    ac_add_options --enable-optimize 
    ac_add_options --enable-debug 
    
  2. The import script has to be executed from the gecko-media directory:

    $ cd gecko-media
    $ python3 import.py /path/to/mozilla-central gecko/
    

    The gecko-media/gecko/src and gecko-media/gecko/include directories content will be removed and the source and header files declared in gecko-media/data/*.json will be copied back to those two directories.

  3. The import script will create a subfolder inside glue_diffs/ named with the upstream revision number you are updating to (i.e. glue_diffs/392049:f41930a869a8/). Inside this subfolder you may find a series of diff files. You need to apply these patches manually to the code inside gecko-media/gecko/glue. Some context about why this is needed can be found in this issue.

  4. Fix potential build errors!

gecko-media's People

Contributors

cpearce avatar edunham avatar ferjm avatar jdm avatar marmistrz avatar nox avatar philn avatar rtbo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

gecko-media's Issues

Figure out a way to keep gecko/glue/ code in sync with mozillla-central

I might be missing something, but I believe that right now it's pretty easy to miss a bunch of changes in gecko/glue while updating from mozilla-central. As described in the README.md instructions, the process for updating the code in gecko/ is to run import.py to pull the changes from m-c, build and fix the potential build issues. But there are changes in m-c that may not trigger build errors and that we may be missing.

For example: https://hg.mozilla.org/mozilla-central/rev/271a6b2de3ad . This patch modifies MediaFormatReader.*, but since these changes are self contained, missing them won't cause any build error. So we would be missing them and not applying them in our own modified version in glue/.

A initial step to help us update without missing changes could be to make the import.py script list the upstream commits (or bug #) since the last update affecting the files in the gecko/glue/ folder that were pulled from m-c.

Move sample player to separate crate

gecko-media shouldn't depend on webrender, glean and servo-glutin on its own, this will potentially cause major issues when including in servo, needing bumps in anger and whatnot.

Instead, this repository should contain a Cargo workspace with gecko-media-the-lib and gecko-media-the-video-player-example.

Rename undefs.h

Originally it had only #undefs but this is no longer the case. New name suggestion: overrides.h ?

Bindgen can't find stddef.h

From servo/servo#19129 (comment):

error: failed to run custom build command for `gecko-media v0.1.0 (https://github.com/servo/gecko-media.git#0299b455)`
process didn't exit successfully: `/home/anholt/src/servo/servo/target/release/build/gecko-media-59486aef098dd7b4/build-script-build` (exit code: 101)

[...]

--- stderr
gecko/glue/include/GeckoMedia.h:10:10: fatal error: 'stddef.h' file not found
gecko/glue/include/GeckoMedia.h:10:10: fatal error: 'stddef.h' file not found, err: true
thread 'main' panicked at 'Unable to generate bindings: ()', /checkout/src/libcore/result.rs:906:4
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Any suggestions?

Do not panic across FFI boundaries

Any Rust code executed on the C++ side should be wrapped in std::panic::catch_unwind and the panic shouldn't go across the Rust/C++ boundary.

Segfault running the example player with an mp4 on OSX

❯ cargo run --example test-player -- ~/dev/mozilla/mozilla-central/dom/media/test/short.mp4
   Compiling gecko-media v0.1.0 (file:///Users/ferjm/dev/mozilla/gecko-media)
    Finished dev [unoptimized + debuginfo] target(s) in 16.73 secs
     Running `target/debug/examples/test-player /Users/ferjm/dev/mozilla/mozilla-central/dom/media/test/short.mp4`
Buffered ranges: [0..0.416667]
MetadataLoaded; duration: 0.47746
Video dimensions: (320, 240)
Seekable ranges: [0..0.47746]
OpenGL version 4.1 INTEL-10.28.26
Shader resource path: None
Assertion failure: planarImage, at /Users/ferjm/dev/mozilla/gecko-media/gecko/glue/ImageContainer.cpp:429
[1]    24887 segmentation fault  cargo run --example test-player --

Timestamp inconsistencies in the Rust Player impl

We use f64 values for duration and time_update but the video frame timestamps use a custom TimeStampimpl. Should we uniformize this and use TimeStamp everywhere we need to represent a timestamp or "amount of time"?

Test player does not render any frame on OSX

All I see is an empty application window when running the test player on OSX.

The output says: Rendered 0 frames in 5.934178627001529 seconds; 0 fps.

screen shot 2017-12-28 at 16 56 37

I believe the regression was introduce with #131 as reverting to a previous commit makes everything work as expected.

Intermittent "error: Connection to server timed out" on Servo CI

Is the build system fetching something from some unreliable server?

error: failed to run custom build command for `gecko-media v0.1.0 (https://github.com/servo/gecko-media.git#fe437442)`
process didn't exit successfully: `/Users/servo/buildbot/slave/mac-dev-unit/build/target/debug/build/gecko-media-8ac78880f09277b6/build-script-build` (exit code: 101)
--- stdout
running: "cmake" "/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/." "-DCMAKE_INSTALL_PREFIX=/Users/servo/buildbot/slave/mac-dev-unit/build/target/debug/build/gecko-media-097cb1b18666b4c0/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Debug"
-- The C compiler identification is AppleClang 7.0.2.7000181
-- The CXX compiler identification is AppleClang 7.0.2.7000181
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/servo/buildbot/slave/mac-dev-unit/build/target/debug/build/gecko-media-097cb1b18666b4c0/out/build
running: "cmake" "--build" "." "--target" "install" "--config" "Debug" "--"
Scanning dependencies of target ogg
[  0%] Building C object CMakeFiles/ogg.dir/gecko/src/media/libogg/src/ogg_alloc.c.o
[  0%] Building C object CMakeFiles/ogg.dir/gecko/src/media/libogg/src/ogg_bitwise.c.o
Scanning dependencies of target tests
[  0%] Building CXX object CMakeFiles/tests.dir/gecko/test/test.cpp.o
Scanning dependencies of target speex_resampler
[  0%] Building C object CMakeFiles/speex_resampler.dir/gecko/src/media/libspeex_resampler/src/resample.c.o
[  1%] Building CXX object CMakeFiles/tests.dir/gecko/test/MockMediaResource.cpp.o
[  1%] Building CXX object CMakeFiles/speex_resampler.dir/gecko/src/media/libspeex_resampler/src/simd_detect.cpp.o
[  1%] Building C object CMakeFiles/speex_resampler.dir/gecko/src/media/libspeex_resampler/src/resample_sse.c.o
[  1%] Built target speex_resampler
[  1%] Building CXX object CMakeFiles/tests.dir/gecko/test/TestMediaDataDecoder.cpp.o
[  1%] Building CXX object CMakeFiles/tests.dir/gecko/test/TestMediaMIMETypes.cpp.o
[  1%] Building CXX object CMakeFiles/tests.dir/gecko/test/TestMP4Demuxer.cpp.o
[  1%] Built target tests
Scanning dependencies of target gecko_core
[  2%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/AsyncShutdown.cpp.o
[  2%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/AgnosticDecoderModule.cpp.o
[  2%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/Benchmark.cpp.o
[  2%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/CooperativeThreadPool.cpp.o
[  3%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/ContainerParser.cpp.o
[  3%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/CubebUtils.cpp.o
[  3%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/DecoderTraits.cpp.o
[  3%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/FFmpegRuntimeLinker.cpp.o
[  3%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/GeckoMedia.cpp.o
[  4%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/GeckoMediaDecoder.cpp.o
[  4%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/GeckoMediaDecoderOwner.cpp.o
[  4%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/GeckoMediaSource.cpp.o
[  4%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/GeckoMediaSourceBuffer.cpp.o
[  5%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/GeckoMediaSourceBufferList.cpp.o
[  5%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/ImageContainer.cpp.o
[  5%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/InputEventStatistics.cpp.o
[  5%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsDebugImpl.cpp.o
[  5%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/LabeledEventQueue.cpp.o
[  6%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/Logging.cpp.o
[  6%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MainThreadIdlePeriod.cpp.o
[  6%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MediaData.cpp.o
[  6%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MediaDecoder.cpp.o
[  7%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MediaDecoderStateMachine.cpp.o
[  7%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MediaFormatReader.cpp.o
[  7%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MediaSource.cpp.o
[  7%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MediaSourceDecoder.cpp.o
[  8%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MediaStreamGraph.cpp.o
[  8%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/PDMFactory.cpp.o
[  8%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/Player.cpp.o
[  8%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/mozalloc_abort.cpp.o
[  8%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsAppRunner.cpp.o
[  9%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsContentTypeParser.cpp.o
[  9%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsCategoryManager.cpp.o
[  9%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsComponentManager.cpp.o
[  9%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsComponentManagerUtils.cpp.o
[ 10%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsObserverList.cpp.o
[ 10%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsObserverService.cpp.o
[ 10%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsThread.cpp.o
[ 10%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsTraceRefcnt.cpp.o
[ 11%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/nsCRTGlue.cpp.o
[ 11%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/Preferences.cpp.o
[ 11%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/RustServices.cpp.o
[ 11%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/RustMediaResource.cpp.o
[ 11%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/Scheduler.cpp.o
[ 12%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/SchedulerGroup.cpp.o
[ 12%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/Services.cpp.o
[ 12%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/SourceBuffer.cpp.o
[ 12%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/SourceBufferList.cpp.o
[ 13%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/Telemetry.cpp.o
[ 13%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/ThreadEventQueue.cpp.o
[ 13%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/ThreadAnnotation.cpp.o
[ 13%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/TrackBuffersManager.cpp.o
[ 13%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/VideoSegment.cpp.o
[ 14%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/WebAudioUtils.cpp.o
[ 14%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/XPCOMInit.cpp.o
[ 14%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/AudioConverter.cpp.o
[ 14%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/AudioSegment.cpp.o
[ 15%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/AudioStream.cpp.o
[ 15%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/BitReader.cpp.o
[ 15%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaContainerType.cpp.o
[ 15%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaInfo.cpp.o
[ 16%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaMIMETypes.cpp.o
[ 16%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaShutdownManager.cpp.o
[ 16%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaPrefs.cpp.o
[ 16%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaResource.cpp.o
[ 16%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaStreamListener.cpp.o
[ 17%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaStreamVideoSink.cpp.o
[ 17%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/MediaTimer.cpp.o
[ 17%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/QueueObject.cpp.o
[ 17%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/ReaderProxy.cpp.o
[ 18%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/SeekJob.cpp.o
[ 18%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/StreamTracks.cpp.o
[ 18%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/MP4Decoder.cpp.o
[ 18%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/MP4Demuxer.cpp.o
[ 19%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasink/AudioSink.cpp.o
[ 19%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasink/VideoSink.cpp.o
[ 19%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasink/AudioSinkWrapper.cpp.o
[ 19%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasink/DecodedStream.cpp.o
[ 19%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasink/OutputStreamManager.cpp.o
[ 20%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasource/MediaSourceDemuxer.cpp.o
[ 20%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasource/MediaSourceUtils.cpp.o
[ 20%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasource/ResourceQueue.cpp.o
[ 20%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mediasource/SourceBufferResource.cpp.o
[ 21%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp3/MP3Decoder.cpp.o
[ 21%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp3/MP3Demuxer.cpp.o
[ 21%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp3/MP3FrameParser.cpp.o
[ 21%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/Box.cpp.o
[ 21%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/BufferStream.cpp.o
[ 22%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/DecoderData.cpp.o
[ 22%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/Index.cpp.o
[ 22%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/MP4Metadata.cpp.o
[ 22%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/MoofParser.cpp.o
[ 23%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/ResourceStream.cpp.o
[ 23%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/mp4/SinfParser.cpp.o
[ 23%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/ogg/OpusParser.cpp.o
[ 23%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/ogg/OggDecoder.cpp.o
[ 24%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/ogg/OggDemuxer.cpp.o
[ 24%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/ogg/OggCodecState.cpp.o
[ 24%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/ogg/OggCodecStore.cpp.o
[ 24%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/flac/FlacDecoder.cpp.o
[ 24%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/flac/FlacDemuxer.cpp.o
[ 25%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/flac/FlacFrameParser.cpp.o
[ 25%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/XiphExtradata.cpp.o
[ 25%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/bytestreams/Adts.cpp.o
[ 25%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/bytestreams/AnnexB.cpp.o
[ 26%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/bytestreams/H264.cpp.o
[ 26%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/BlankDecoderModule.cpp.o
[ 26%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/DummyMediaDataDecoder.cpp.o
[ 26%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/NullDecoderModule.cpp.o
[ 26%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/OpusDecoder.cpp.o
[ 27%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/VorbisDecoder.cpp.o
[ 27%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/agnostic/WAVDecoder.cpp.o
[ 27%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/ffmpeg/FFmpegLibWrapper.cpp.o
[ 27%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/wrappers/H264Converter.cpp.o
[ 28%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/VideoUtils.cpp.o
[ 28%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/VideoFrameContainer.cpp.o
[ 28%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/wave/WaveDecoder.cpp.o
[ 28%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/wave/WaveDemuxer.cpp.o
[ 29%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/memory/fallible/fallible.cpp.o
[ 29%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/memory/mozalloc/mozalloc.cpp.o
[ 29%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/memory/mozalloc/mozalloc_oom.cpp.o
[ 29%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mfbt/Assertions.cpp.o
[ 29%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mfbt/ChaosMode.cpp.o
[ 30%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mfbt/HashFunctions.cpp.o
[ 30%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mfbt/Poison.cpp.o
[ 30%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mfbt/Unused.cpp.o
[ 30%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mozglue/misc/ConditionVariable_posix.cpp.o
[ 31%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mozglue/misc/Printf.cpp.o
[ 31%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mozglue/misc/TimeStamp.cpp.o
[ 31%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/toolkit/library/StaticXULComponentsStart.cpp.o
[ 31%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/toolkit/library/StaticXULComponentsEnd/StaticXULComponentsEnd.cpp.o
[ 32%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/base/ClearOnShutdown.cpp.o
[ 32%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/base/ErrorNames.cpp.o
[ 32%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/base/nsCOMPtr.cpp.o
[ 32%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/base/nsClassInfoImpl.cpp.o
[ 32%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/base/nsID.cpp.o
[ 33%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/base/nsISupportsImpl.cpp.o
[ 33%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/base/nsMemory.cpp.o
[ 33%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/base/nsWeakReference.cpp.o
[ 33%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/components/GenericFactory.cpp.o
[ 34%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/ds/PLDHashTable.cpp.o
[ 34%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/ds/nsCOMArray.cpp.o
[ 34%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/ds/nsDeque.cpp.o
[ 34%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/ds/nsEnumeratorUtils.cpp.o
[ 34%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/ds/nsQuickSort.cpp.o
[ 35%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/ds/nsSupportsPrimitives.cpp.o
[ 35%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/ds/nsTArray.cpp.o
[ 35%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/ds/nsTObserverArray.cpp.o
[ 35%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/io/nsDirectoryService.cpp.o
[ 36%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/string/nsReadableUtilsSSE2.cpp.o
[ 36%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/string/nsUTF8UtilsSSE2.cpp.o
[ 36%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/string/unified.cpp.o
[ 36%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/AbstractThread.cpp.o
[ 37%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/BlockingResourceBase.cpp.o
[ 37%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/EventQueue.cpp.o
[ 37%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/nsILabelableRunnable.cpp.o
[ 37%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/nsProxyRelease.cpp.o
[ 37%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/nsThreadManager.cpp.o
[ 38%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/nsThreadPool.cpp.o
[ 38%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/nsThreadUtils.cpp.o
[ 38%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/nsTimerImpl.cpp.o
[ 38%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/PrioritizedEventQueue.cpp.o
[ 39%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/SharedThreadPool.cpp.o
[ 39%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/RecursiveMutex.cpp.o
[ 39%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/SynchronizedEventQueue.cpp.o
[ 39%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/SystemGroup.cpp.o
[ 40%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/TaskQueue.cpp.o
[ 40%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/ThreadEventTarget.cpp.o
[ 40%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/xpcom/threads/TimerThread.cpp.o
[ 40%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/lib/libc/src/strcase.c.o
[ 40%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/io/priometh.c.o
[ 41%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/io/prfdcach.c.o
[ 41%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/io/prlayer.c.o
[ 41%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/io/prlog.c.o
[ 41%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/io/prmapopt.c.o
[ 42%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/io/prmmap.c.o
[ 42%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/io/prmwait.c.o
[ 42%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/io/prprf.c.o
[ 42%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/linking/prlink.c.o
[ 42%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/malloc/prmem.c.o
[ 43%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/md/prosdep.c.o
[ 43%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/md/unix/unix.c.o
[ 43%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/md/unix/unix_errors.c.o
[ 43%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/memory/prseg.c.o
[ 44%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/pratom.c.o
[ 44%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prdtoa.c.o
[ 44%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prenv.c.o
[ 44%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prerr.c.o
[ 45%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prerror.c.o
[ 45%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prerrortable.c.o
[ 45%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prinit.c.o
[ 45%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prinrval.c.o
[ 45%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prnetdb.c.o
[ 46%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prsystem.c.o
[ 46%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/misc/prtime.c.o
[ 46%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/pthreads/ptio.c.o
[ 46%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/pthreads/ptmisc.c.o
[ 47%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/pthreads/ptsynch.c.o
[ 47%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/pthreads/ptthread.c.o
[ 47%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/threads/prcmon.c.o
[ 47%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/threads/prrwlock.c.o
[ 48%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/threads/prtpd.c.o
[ 48%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/AppleDecoderModule.cpp.o
[ 48%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/AppleVTDecoder.cpp.o
[ 48%] Building CXX object CMakeFiles/gecko_core.dir/gecko/glue/MacIOSurface.cpp.o
[ 48%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/apple/AppleATDecoder.cpp.o
[ 49%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/apple/AppleCMLinker.cpp.o
[ 49%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/platforms/apple/AppleVTLinker.cpp.o
[ 49%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mozglue/misc/Mutex_posix.cpp.o
[ 49%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/mozglue/misc/TimeStamp_darwin.cpp.o
[ 50%] Building CXX object CMakeFiles/gecko_core.dir/gecko/src/dom/media/systemservices/OSXRunLoopSingleton.cpp.o
[ 50%] Building C object CMakeFiles/gecko_core.dir/gecko/src/nsprpub/pr/src/md/unix/darwin.c.o
[ 50%] Built target gecko_core

--- stderr
error: Connection to server timed out
make[2]: *** [CMakeFiles/ogg.dir/gecko/src/media/libogg/src/ogg_alloc.c.o] Error 2
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/ogg.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/test.cpp:223:3: warning: ignoring return value of function declared with warn_unused_result attribute [-Wunused-result]
  aQueue->Dispatch(r.forget());
  ^~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/test.cpp:223:3: warning: ignoring return value of function declared with warn_unused_result attribute [-Wunused-result]
  aQueue->Dispatch(r.forget());
  ^~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/test.cpp:257:3: note: in instantiation of function template specialization 'GeckoMedia_mozilla::RunOnTaskQueue<(lambda at /Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/test.cpp:257:25)>' requested here
  RunOnTaskQueue(queue, [queue]() -> void {
  ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/test.cpp:223:3: warning: ignoring return value of function declared with warn_unused_result attribute [-Wunused-result]
  aQueue->Dispatch(r.forget());
  ^~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/test.cpp:268:3: note: in instantiation of function template specialization 'GeckoMedia_mozilla::RunOnTaskQueue<(lambda at /Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/test.cpp:268:25)>' requested here
  RunOnTaskQueue(queue, [queue]() -> void {
  ^
3 warnings generated.
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/TestMP4Demuxer.cpp:157:5: warning: ignoring return value of function declared with warn_unused_result attribute [-Wunused-result]
    mTaskQueue->Dispatch(r.forget());
    ^~~~~~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/TestMP4Demuxer.cpp:157:5: warning: ignoring return value of function declared with warn_unused_result attribute [-Wunused-result]
    mTaskQueue->Dispatch(r.forget());
    ^~~~~~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/TestMP4Demuxer.cpp:88:5: note: in instantiation of function template specialization 'GeckoMedia_mozilla::MP4DemuxerBinding::DispatchTask<(lambda at /Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/TestMP4Demuxer.cpp:89:7)>' requested here
    DispatchTask(
    ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/TestMP4Demuxer.cpp:157:5: warning: ignoring return value of function declared with warn_unused_result attribute [-Wunused-result]
    mTaskQueue->Dispatch(r.forget());
    ^~~~~~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/TestMP4Demuxer.cpp:118:5: note: in instantiation of function template specialization 'GeckoMedia_mozilla::MP4DemuxerBinding::DispatchTask<(lambda at /Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/test/TestMP4Demuxer.cpp:119:7)>' requested here
    DispatchTask(
    ^
3 warnings generated.
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/glue/MediaSource.cpp:158:11: warning: enumeration value 'EndGuard_' not handled in switch [-Wswitch]
  switch (aError) {
          ^
1 warning generated.
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:902:39: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
        if (((&group->io_ready)->next == (&group->io_ready)))
             ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:902:39: note: remove extraneous parentheses around the comparison to silence this warning
        if (((&group->io_ready)->next == (&group->io_ready)))
            ~                         ^                    ~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:902:39: note: use '=' to turn this equality comparison into an assignment
        if (((&group->io_ready)->next == (&group->io_ready)))
                                      ^~
                                      =
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:946:52: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
                } while (((&group->io_ready)->next == (&group->io_ready)));
                          ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:946:52: note: remove extraneous parentheses around the comparison to silence this warning
                } while (((&group->io_ready)->next == (&group->io_ready)));
                         ~                         ^                    ~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:946:52: note: use '=' to turn this equality comparison into an assignment
                } while (((&group->io_ready)->next == (&group->io_ready)));
                                                   ^~
                                                   =
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:972:51: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
                    if (((&group->io_ready)->next == (&group->io_ready)))
                         ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:972:51: note: remove extraneous parentheses around the comparison to silence this warning
                    if (((&group->io_ready)->next == (&group->io_ready)))
                        ~                         ^                    ~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:972:51: note: use '=' to turn this equality comparison into an assignment
                    if (((&group->io_ready)->next == (&group->io_ready)))
                                                  ^~
                                                  =
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:1211:35: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
    if (((&group->io_ready)->next == (&group->io_ready)))
         ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:1211:35: note: remove extraneous parentheses around the comparison to silence this warning
    if (((&group->io_ready)->next == (&group->io_ready)))
        ~                         ^                    ~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/io/prmwait.c:1211:35: note: use '=' to turn this equality comparison into an assignment
    if (((&group->io_ready)->next == (&group->io_ready)))
                                  ^~
                                  =
4 warnings generated.
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/md/unix/unix.c:2328:15: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
    if (((rv) == (minus_one)))
         ~~~~~^~~~~~~~~~~~~~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/md/unix/unix.c:2328:15: note: remove extraneous parentheses around the comparison to silence this warning
    if (((rv) == (minus_one)))
        ~     ^             ~
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/md/unix/unix.c:2328:15: note: use '=' to turn this equality comparison into an assignment
    if (((rv) == (minus_one)))
              ^~
              =
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/md/unix/unix.c:3340:53: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
  if (getsockopt(osfd, 0xffff, 0x1007, (char*)&err, &optlen) == -1) {
                                                    ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
2 warnings generated.
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:732:41: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
        op->arg1.osfd, op->arg2.buffer, op->arg3.addr_len);
                                        ^~~~~~~~~~~~~~~~~
/usr/include/sys/socket.h:560:65: note: passing argument to parameter here
int accept(int, struct sockaddr * restrict, socklen_t * restrict)
                                                                ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:934:58: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
        op->arg4.flags, (struct sockaddr*)op->arg5.addr, &addr_len);
                                                         ^~~~~~~~~
/usr/include/sys/socket.h:572:23: note: passing argument to parameter here
  socklen_t * restrict) __asm("_" "recvfrom" );
                      ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:1674:64: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
    osfd = accept(fd->secret->md.osfd, (struct sockaddr*)addr, &addr_len);
                                                               ^~~~~~~~~
/usr/include/sys/socket.h:560:65: note: passing argument to parameter here
int accept(int, struct sockaddr * restrict, socklen_t * restrict)
                                                                ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:2165:33: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
        (struct sockaddr*)addr, &addr_len);
                                ^~~~~~~~~
/usr/include/sys/socket.h:572:23: note: passing argument to parameter here
  socklen_t * restrict) __asm("_" "recvfrom" );
                      ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:2873:54: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
        fd->secret->md.osfd, (struct sockaddr*)addr, &addr_len);
                                                     ^~~~~~~~~
/usr/include/sys/socket.h:566:70: note: passing argument to parameter here
int getsockname(int, struct sockaddr * restrict, socklen_t * restrict)
                                                                     ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:2902:54: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
        fd->secret->md.osfd, (struct sockaddr*)addr, &addr_len);
                                                     ^~~~~~~~~
/usr/include/sys/socket.h:564:70: note: passing argument to parameter here
int getpeername(int, struct sockaddr * restrict, socklen_t * restrict)
                                                                     ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:2950:73: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
                    fd->secret->md.osfd, level, name, (char *) &linger, &length);
                                                                        ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:2967:70: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
                    fd->secret->md.osfd, level, name, (char*)&value, &length);
                                                                     ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:2978:36: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
                    (char*)&xbool, &length);
                                   ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:2990:70: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
                    fd->secret->md.osfd, level, name, (char*)&value, &length);
                                                                     ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:3001:49: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
                    (char*)&data->value.ip_ttl, &length);
                                                ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:3011:34: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
                    (char*)&ttl, &length);
                                 ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:3022:69: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
                    fd->secret->md.osfd, level, name, (char*)&mreq, &length);
                                                                    ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
/Users/servo/.cargo/git/checkouts/gecko-media-6bedb392a81eb7cf/fe43744/gecko-media/gecko/src/nsprpub/pr/src/pthreads/ptio.c:3035:59: warning: passing 'pt_SockLen *' (aka 'int *') to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign]
                    (char*)&data->value.mcast_if.inet.ip, &length);
                                                          ^~~~~~~
/usr/include/sys/socket.h:568:68: note: passing argument to parameter here
int getsockopt(int, int, int, void * restrict, socklen_t * restrict);
                                                                   ^
14 warnings generated.
make: *** [all] Error 2
thread 'main' panicked at '
command did not execute successfully, got: exit code: 2

build script failed, must exit now', /Users/servo/.cargo/registry/src/github.com-1ecc6299db9ec823/cmake-0.1.27/src/lib.rs:627:4
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
   1: std::sys_common::backtrace::print
   2: std::panicking::default_hook::{{closure}}
   3: std::panicking::default_hook
   4: std::panicking::rust_panic_with_hook
   5: std::panicking::begin_panic
   6: std::panicking::begin_panic_fmt
   7: cmake::fail
   8: cmake::run
   9: cmake::Config::build
  10: cmake::build
  11: build_script_build::compile_gecko_media
  12: build_script_build::main
  13: __rust_maybe_catch_panic
  14: std::rt::lang_start
  15: main

warning: build failed, waiting for other jobs to finish...
error: build failed

Move GeckoMedia* files out of gecko/glue

> 16:07:16 <philn> also i think we should move the files we wrote for the crate out of glue, maybe... because it's becoming quite confusing :/
> 16:08:31 originally glue/ was for patched gecko things
> 16:08:38 <ferjm> yes, and probably out of gecko/ as well
> 16:08:50 they probably belong to src/
> 16:08:59 I mean, is the code we specifically write for gecko-media
> 16:09:05 <philn> yes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.