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

gstreamer 1.16.1 #70690

Merged
merged 15 commits into from
Nov 14, 2019
Merged

gstreamer 1.16.1 #70690

merged 15 commits into from
Nov 14, 2019

Conversation

dtzWill
Copy link
Member

@dtzWill dtzWill commented Oct 8, 2019

Motivation for this change
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

Sorry, something went wrong.

@dtzWill
Copy link
Member Author

dtzWill commented Oct 14, 2019

Requesting reviews guided by GitHub's unmatched wisdom in suggested reviewers! ;)

Copy link
Member

@jtojnar jtojnar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to release notes:

@jtojnar jtojnar self-assigned this Nov 13, 2019
@jtojnar
Copy link
Member

jtojnar commented Nov 13, 2019

After swithching to opencv4, I am getting the following warnings:

[54/844] Compiling C++ object 'gst-libs/gst/opencv/13174e1@@gstopencv-1.0@sha/gstopencvutils.cpp.o'.K-enumtypes.c.o'.symbols'..bols'.
cc1plus: warning: /nix/store/bwmrzfni2r4pq7mi1p39xi2dcy7g9af1-opencv-4.1.2/include/opencv4/opencv: No such file or directory [-Wmissing-include-dirs]
[64/844] Compiling C++ object 'gst-libs/gst/opencv/13174e1@@gstopencv-1.0@sha/gstopencvvideofilter.cpp.o'.ispatcher.c.o'.
cc1plus: warning: /nix/store/bwmrzfni2r4pq7mi1p39xi2dcy7g9af1-opencv-4.1.2/include/opencv4/opencv: No such file or directory [-Wmissing-include-dirs]

Though, they do not seem to affect build.

@jtojnar jtojnar force-pushed the update/gstreamer-1.16.1 branch from 121b93b to 25ab32f Compare November 13, 2019 21:47
@jtojnar jtojnar removed their assignment Nov 13, 2019
@jtojnar jtojnar added the 2.status: work-in-progress This PR isn't done label Nov 13, 2019
@jtojnar jtojnar self-assigned this Nov 13, 2019
@jtojnar
Copy link
Member

jtojnar commented Nov 13, 2019

Clean ups in a fixup commits. Trying to see if base build on Darwin with Meson now.

@nh2
Copy link
Contributor

nh2 commented Nov 13, 2019

If you are looking for Darwin fixes, consider the top commit of #60922.

@nh2 nh2 mentioned this pull request Nov 13, 2019
11 tasks
@worldofpeace
Copy link
Contributor

@jtojnar Glorious cleanups 👍 Taking a look.

@jtojnar jtojnar removed the 2.status: work-in-progress This PR isn't done label Nov 14, 2019
@jtojnar
Copy link
Member

jtojnar commented Nov 14, 2019

@GrahamcOfBorg build gst_all_1

@jtojnar
Copy link
Member

jtojnar commented Nov 14, 2019

mesonbuild/meson#5980 fixed

Traceback (most recent call last):
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/mesonmain.py", line 127, in run
    return options.run_func(options)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/msetup.py", line 241, in run
    app.generate()
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/msetup.py", line 159, in generate
    self._generate(env)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/msetup.py", line 188, in _generate
    intr.run()
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreter.py", line 3924, in run
    super().run()
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 412, in run
    self.evaluate_codeblock(self.ast, start=1)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 436, in evaluate_codeblock
    raise e
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 430, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 451, in evaluate_statement
    return self.evaluate_if(cur)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 516, in evaluate_if
    self.evaluate_codeblock(i.block)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 436, in evaluate_codeblock
    raise e
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 430, in evaluate_codeblock
    self.evaluate_statement(cur)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 443, in evaluate_statement
    return self.assignment(cur)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 1053, in assignment
    value = self.evaluate_statement(node.value)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 441, in evaluate_statement
    return self.function_call(cur)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 778, in function_call
    return func(node, posargs, kwargs)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 285, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 285, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 285, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
  [Previous line repeated 1 more time]
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 155, in wrapped
    ret = f(*wrapped_args, **wrapped_kwargs)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreterbase.py", line 174, in wrapped
    return f(*wrapped_args, **wrapped_kwargs)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreter.py", line 3035, in func_dependency
    d = self.dependency_impl(name, display_name, kwargs)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/interpreter.py", line 3082, in dependency_impl
    dep = dependencies.find_external_dependency(name, self.environment, kwargs)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/dependencies/base.py", line 2526, in find_external_dependency
    d = c()
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/dependencies/base.py", line 2389, in __init__
    self.detect(name, paths)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/dependencies/base.py", line 2420, in detect
    incdir = self._get_framework_include_path(framework_path)
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/dependencies/base.py", line 2449, in _get_framework_include_path
    self._get_framework_latest_version(path))
  File "/nix/store/86fh8srw51c2nnawn5y6flmsj6mz3nvd-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/dependencies/base.py", line 2441, in _get_framework_latest_version
    return 'Versions/{}/Headers'.format(sorted(versions)[-1]._s)
IndexError: list index out of range

but now there is

Traceback (most recent call last):
  File "/nix/store/yi7xpxy8zh02b45aync86mqxi7izs9c8-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/mesonmain.py", line 127, in run
    return options.run_func(options)
  File "/nix/store/yi7xpxy8zh02b45aync86mqxi7izs9c8-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/minstall.py", line 514, in run
    installer.do_install(datafilename)
  File "/nix/store/yi7xpxy8zh02b45aync86mqxi7izs9c8-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/minstall.py", line 343, in do_install
    self.install_targets(d)
  File "/nix/store/yi7xpxy8zh02b45aync86mqxi7izs9c8-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/minstall.py", line 492, in install_targets
    install_name_mappings, verbose=False)
  File "/nix/store/yi7xpxy8zh02b45aync86mqxi7izs9c8-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/scripts/depfixer.py", line 462, in fix_rpath
    fix_darwin(fname, new_rpath, final_path, install_name_mappings)
  File "/nix/store/yi7xpxy8zh02b45aync86mqxi7izs9c8-meson-0.51.2/lib/python3.7/site-packages/mesonbuild/scripts/depfixer.py", line 427, in fix_darwin
    stderr=subprocess.DEVNULL)
  File "/nix/store/9a5bl4gvzdm69fvhwbwln5ld6vn55iyx-python3-3.7.5/lib/python3.7/subprocess.py", line 363, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['install_name_tool', '/nix/store/h3qkfhr1mggkbi962h4gk5vh068vmycr-gst-plugins-bad-1.16.1/lib/gstreamer-1.0/libgstopenexr.dylib', '-id', '/nix/store/h3qkfhr1mggkbi962h4gk5vh068vmycr-gst-plugins-bad-1.16.1/lib/gstreamer-1.0/libgstopenexr.dylib', '-change', '@rpath/libgstopenexr.dylib', '/nix/store/h3qkfhr1mggkbi962h4gk5vh068vmycr-gst-plugins-bad-1.16.1/lib/gstreamer-1.0/libgstopenexr.dylib']' returned non-zero exit status 1.```

@nh2
Copy link
Contributor

nh2 commented Nov 14, 2019

Works for my use case (SRT-based screen sharing). I ran in 2 terminals:

GST_GL_XINITTHREADS=1 NIX_PATH=nixpkgs=. nix-shell -p gst_all_1.gstreamer -p gst_all_1.gst-plugins-good -p gst_all_1.gst-plugins-base -p gst_all_1.gst-plugins-bad -p gst_all_1.gst-plugins-ugly -p gst_all_1.gst-libav --run 'gst-launch-1.0 ximagesrc startx=0 show-pointer=true use-damage=1 ! videoconvert ! x264enc bitrate=3000 tune=zerolatency speed-preset=ultrafast byte-stream=true threads=1 key-int-max=30 intra-refresh=true ! video/x-h264, profile=baseline, framerate=30/1 ! mpegtsmux ! queue ! srtsink uri=srt://127.0.0.1:5000 latency=100'
NIX_PATH=nixpkgs=. nix-shell -p gst_all_1.gstreamer -p gst_all_1.gst-plugins-good -p gst_all_1.gst-plugins-base -p gst_all_1.gst-plugins-bad -p gst_all_1.gst-plugins-ugly -p gst_all_1.gst-libav --run 'gst-launch-1.0 srtsrc latency=100 uri=srt://:5000/ ! tsdemux ! h264parse ! video/x-h264 ! avdec_h264 ! autovideosink sync=false'

For my reference, there are apparently also some SRT related improvements in this release's changelog:

  • srt: Add stats property, include sender-side statistics and fix a crash
  • srtserversrc: yields malformed rtp payloads
  • srtsink: Fix crash in case no URI
  • srt: handle races in state change
  • Backport of some minor srt commits without MR into 1.16

Copy link
Contributor

@nh2 nh2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve for my use case.

@jtojnar jtojnar changed the base branch from master to staging November 14, 2019 10:58
@jtojnar jtojnar force-pushed the update/gstreamer-1.16.1 branch from a92196e to f1949bb Compare November 14, 2019 11:11
@jtojnar
Copy link
Member

jtojnar commented Nov 14, 2019

Moved the meson fix to meson proper and fully dropped the autotools bit from base.

@NixOS/darwin-maintainers any idea how to fix the install_name_tool issue for the gst_all_1.gst-plugins-bad?

jtojnar and others added 4 commits November 14, 2019 12:22
* format withn nixpkgs-fmt
* drop unnecessary flags
* do not propagate gupnp-igd (it is only in Requires.private)
tests are failing there

FAIL: test-is-public
====================
valgrind: mmap-FIXED(0x7fff5f400000, 8388608) failed in UME (load_unixthread1) with error 22 (Invalid argument).
FAIL test-is-public (exit status: 1)
FAIL: test-is-public-all
========================
valgrind: mmap-FIXED(0x7fff5f400000, 8388608) failed in UME (load_unixthread1) with error 22 (Invalid argument).
FAIL test-is-public-all (exit status: 1)
FAIL: test-is-cookie-domain-acceptable
======================================
valgrind: mmap-FIXED(0x7fff5f400000, 8388608) failed in UME (load_unixthread1) with error 22 (Invalid argument).
FAIL test-is-cookie-domain-acceptable (exit status: 1)
FAIL: test-is-public-builtin
============================
valgrind: mmap-FIXED(0x7fff5f400000, 8388608) failed in UME (load_unixthread1) with error 22 (Invalid argument).
FAIL test-is-public-builtin (exit status: 1)
FAIL: test-registrable-domain
=============================
valgrind: mmap-FIXED(0x7fff5f400000, 8388608) failed in UME (load_unixthread1) with error 22 (Invalid argument).
FAIL test-registrable-domain (exit status: 1)
Commit be38210 broke evaluation
on Darwin because it added these unconditional buildInputs
that don't evaluate on Darwin:

    libnice librdf lilv lv2 serd sord sratom

This commit fixes it, and also fixes recently-added new dependencies
for other packages accordingly.

It further fixes the build of many gstreamer packages on Darwin.
Fixes building gst_all_1.gst-plugins-good.

Patch backported from 0.52.0.
@jtojnar jtojnar force-pushed the update/gstreamer-1.16.1 branch from f1949bb to 071d25a Compare November 14, 2019 11:23
@jtojnar
Copy link
Member

jtojnar commented Nov 14, 2019

@GrahamcOfBorg build gst_all_1.gst-editing-services gst_all_1.gst-plugins-base gst_all_1.gst-rtsp-server gst_all_1.gstreamer gst_all_1.gst-libav gst_all_1.gst-plugins-good gst_all_1.gst-vaapi gst_all_1.gstreamermm gst_all_1.gst-plugins-bad gst_all_1.gst-plugins-ugly gst_all_1.gst-validate

@jtojnar
Copy link
Member

jtojnar commented Nov 14, 2019

The failures appear to be unrelated. Let’s merge and see.

@jtojnar jtojnar merged commit c846ede into NixOS:staging Nov 14, 2019
@dtzWill
Copy link
Member Author

dtzWill commented Nov 18, 2019

Thanks!

jtojnar added a commit to jtojnar/nixpkgs that referenced this pull request Nov 27, 2019
@dtzWill dtzWill deleted the update/gstreamer-1.16.1 branch December 6, 2019 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

None yet

5 participants