Plugins: compile specific plugin with newer version

F Weers dedomme123 at gmail.com
Mon Jul 26 16:15:30 UTC 2021


Thank you for the information! Good to know the Rust bindings should just
work.

I made progress, but I am currently stuck on a SegFault. Not sure whether
this is a bug, or something I am doing wrong.

I've attached the DockerFile (builds Google Storage and uses it to build
GStreamer+GS-plugin).

After copying my service account credentials .json to the docker container
and setting 'GOOGLE_APPLICATION_CREDENTIALS', I try to refer to my video in
storage. This is output when using 'gdb':

Starting program: /usr/local/bin/gst-launch-1.0 gssrc
location=gs://datastorage-test/videos/test1.mp4
warning: Error disabling address space randomization: Operation not
permitted[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Setting pipeline to PAUSED ...[New Thread 0x7f8b48e2b700 (LWP
208)][Thread 0x7f8b48e2b700 (LWP 208) exited][New Thread
0x7f8b48e2b700 (LWP 209)][Thread 0x7f8b48e2b700 (LWP 209) exited][New
Thread 0x7f8b48e2b700 (LWP 210)][Thread 0x7f8b48e2b700 (LWP 210)
exited]

Thread 1 "gst-launch-1.0" received signal SIGSEGV, Segmentation
fault.0x00007f8b4af70827 in gst_gs_src_start (basesrc=<optimized out>)
at /usr/include/c++/8/bits/hashtable_policy.h:389389
_Node_const_iterator(__node_type* __p) noexcept


Using a URL that does not exist gives me the following output, which looks
like some things work:

root at 90f2e355d926:/# gst-launch-1.0 gssrc
location=gs://datastorage-test/videos/test1a.mp4
Setting pipeline to PAUSED ...ERROR: from element
/GstPipeline:pipeline0/GstGsSrc:gssrc0: Could not get object metadata
(Permanent error in GetObjectMetadata: {
  "error": {
    "code": 404,
    "message": "No such object: datastorage-test/videos/test1a.mp4",
    "errors": [
      {
        "message": "No such object: datastorage-test/videos/test1a.mp4",
        "domain": "global",
        "reason": "notFound"
      }
    ]
  }})
Additional debug
info:../gst-build/subprojects/gst-plugins-bad/ext/gs/gstgssrc.cpp(491):
gst_gs_src_start (): /GstPipeline:pipeline0/GstGsSrc:gssrc0:system
error: SuccessERROR: pipeline doesn't want to preroll.ERROR: from
element /GstPipeline:pipeline0/GstGsSrc:gssrc0: GStreamer error: state
change failed and some element failed to post a proper error message
with the reason for the failure.
Additional debug
info:../gst-build/subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3557):
gst_base_src_start (): /GstPipeline:pipeline0/GstGsSrc:gssrc0:
Failed to startERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...



I am aware that the pipeline is not complete, but I get the same SegFault
when running a whole pipeline. Anyone who sees what goes wrong?
By the way, if you see any mistakes/easy optimizations in the Docker Image,
happy to hear them (haven't touched those in quite some time)!

Thanks again, really stoked to see this working!


Op ma 26 jul. 2021 om 08:14 schreef Sebastian Dröge <
sebastian at centricular.com>:

> On Mon, 2021-07-19 at 15:52 +0200, F Weers via gstreamer-devel wrote:
>
> I am running everything inside a Docker container and use apt-get install
> libgstreamer1.0 to install the required packages. Since the above
> mentioned plugin is part of 1.19.1 (if I understand correctly), it is not
> included in the gstreamer1.0-plugins-bad package yet. What would be the
> easiest way to install this package and use it?
>
>    1. Can I build this plugin on its own or should I build the whole
>    https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/ repository?
>    In that case, is gst-build the way to go (
>    https://gitlab.freedesktop.org/gstreamer/gst-build/blob/master/README.md
>    )?
>
>
> gst-build would be a good way for building the latest git version of
> GStreamer. You generally need to build all the modules and not just a
> single plugin or module set.
> It should however be possible to backport this specific plugin to an older
> version and then it should be possible to just compile that.
>
>
>    1. If I'm building the plugin from source, should the version of
>    GStreamer match this (and thus also be compiled from source to 1.19.1)? Or
>    can I keep using the publicly available packages that refer to 1.18 (if I'm
>    correctly)?
>
>
> The build will simply fail otherwise.
>
>
>    1. This is probably not the right place, but if I need to update all
>    of these, do I also need to update the Rust bindings?
>
>
> No, they will work with any GStreamer version >= 1.8. The only reason why
> you might want to update the bindings would be if there are newer features
> or bugfixes that you need.
>
> --
>
> Sebastian Dröge, Centricular Ltd · https://www.centricular.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210726/fef91114/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Dockerfile
Type: application/octet-stream
Size: 2416 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20210726/fef91114/attachment-0001.obj>


More information about the gstreamer-devel mailing list