Avnu / libavtp

Open source implementation of Audio Video Transport Protocol (AVTP) specified in IEEE 1722-2016 spec.
BSD 3-Clause "New" or "Revised" License
63 stars 35 forks source link

Avtp plugin? #37

Open RioChan opened 2 years ago

RioChan commented 2 years ago

Hi.

1. I have install the libavtp, log is like below.

2. But, I'm fail to use the gstreamer to test with avtp.

root@ubuntu-vm:/opt/libavtp# sudo ninja -C build install ninja: Entering directory `build' ninja: warning: bad deps log signature or version; starting over [24/25] Installing files. Installing libavtp.so.0.1.0 to /usr/local/lib/x86_64-linux-gnu Installing symlink pointing to libavtp.so.0.1.0 to /usr/local/lib/x86_64-linux-gnu/libavtp.so.0 Installing symlink pointing to libavtp.so.0 to /usr/local/lib/x86_64-linux-gnu/libavtp.so Installing /opt/libavtp/include/avtp.h to /usr/local/include Installing /opt/libavtp/include/avtp_aaf.h to /usr/local/include Installing /opt/libavtp/include/avtp_crf.h to /usr/local/include Installing /opt/libavtp/include/avtp_cvf.h to /usr/local/include Installing /opt/libavtp/include/avtp_rvf.h to /usr/local/include Installing /opt/libavtp/include/avtp_ieciidc.h to /usr/local/include Installing /opt/libavtp/build/meson-private/avtp.pc to /usr/local/lib/x86_64-linux-gnu/pkgconfig NOTICE: You are using Python 3.6 which is EOL. Starting with v0.62.0, Meson will require Python 3.7 or newer root@ubuntu-vm:/opt/libavtp# cd ..

3. This is my error, may you guide me how to solve it?

root@ubuntu-vm:/opt# cd gstreamer/ root@ubuntu-vm:/opt/gstreamer# gst-inspect-1.0 avtp No such element or plugin 'avtp'

Thanks.

BR Rio

edersondisouza commented 2 years ago

Hi @RioChan,

I'm a bit confused, did you build gstreamer after installing libavtp? Note that you need to build gstreamer, which will then find libavtp and build itself with the AVTP plugin.

RioChan commented 2 years ago

Hi edersondisouza : Thanks for the feedback. Sorry, I never know the sequence as your saying. Let me double confirm: The AVTP needs to be installed after Gstreamer installed?

BR Rio

RioChan commented 2 years ago

Hi edersondisouza :

1. please see the build / test log as the below.

2. I have deleted the libavtp and re-installed/built the libavtp.

But the Gstreamer found not avtp.

May you comment how to solve this? Thank you very much.

BR Rio

audioparsers: aacparse: AAC audio stream parser audioparsers: ac3parse: AC3 audio stream parser audioparsers: amrparse: AMR audio stream parser audioparsers: dcaparse: DTS Coherent Acoustics audio stream parser audioparsers: flacparse: FLAC audio parser audioparsers: mpegaudioparse: MPEG1 Audio Parser audioparsers: sbcparse: SBC audio parser audioparsers: wavpackparse: Wavpack audio stream parser audiorate: audiorate: Audio rate adjuster audioresample: audioresample: Audio resampler audiotestsrc: audiotestsrc: Audio test source auparse: auparse: AU audio demuxer : autodetect: autoaudiosink: Auto audio sink

root@ubuntu-vm:/opt/gstreamer# cd .. root@ubuntu-vm:/opt# cd libavtp/ root@ubuntu-vm:/opt/libavtp# ls build CONTRIBUTING.md examples HACKING.md include LICENSE meson.build meson_options.txt README.md src travis.sh unit root@ubuntu-vm:/opt/libavtp# sudo ninjia -C build install sudo: ninjia: command not found root@ubuntu-vm:/opt/libavtp# sudo ninja -C build install ninja: Entering directory `build' ninja: warning: bad deps log signature or version; starting over [24/25] Installing files. Installing libavtp.so.0.1.0 to /usr/local/lib/x86_64-linux-gnu Installing symlink pointing to libavtp.so.0.1.0 to /usr/local/lib/x86_64-linux-gnu/libavtp.so.0 Installing symlink pointing to libavtp.so.0 to /usr/local/lib/x86_64-linux-gnu/libavtp.so Installing /opt/libavtp/include/avtp.h to /usr/local/include Installing /opt/libavtp/include/avtp_aaf.h to /usr/local/include Installing /opt/libavtp/include/avtp_crf.h to /usr/local/include Installing /opt/libavtp/include/avtp_cvf.h to /usr/local/include Installing /opt/libavtp/include/avtp_rvf.h to /usr/local/include Installing /opt/libavtp/include/avtp_ieciidc.h to /usr/local/include Installing /opt/libavtp/build/meson-private/avtp.pc to /usr/local/lib/x86_64-linux-gnu/pkgconfig root@ubuntu-vm:/opt/libavtp# cd .. root@ubuntu-vm:/opt# gst-inspect-1.0 avtp No such element or plugin 'avtp'

edersondisouza commented 2 years ago

You definitely need to build gstreamer. Are you building it? If so, can you share the log from gstreamer build, please?

RioChan commented 2 years ago

Hi edersondisouza:

1.

Thanks for continuing helping me, appreciated. I have re-built the gstreamer with 1.19.2, full built log is as the bottom.

2.

But, the below cmd still found no avtp. gst-inspect-1.0 avtp No such element or plugin 'avtp'

3. however, test with dummy cmd as the below is working, I think my problem is how to find the plugin.

st-launch-1.0 -v fakesrc num_buffers=5 ! fakesink Setting pipeline to PAUSED ... Pipeline is PREROLLING ... Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: GstSystemClock Got EOS from element "pipeline0". Execution ended after 0:00:00.012475278 Setting pipeline to NULL ... Freeing pipeline ...

BR Rio

Anaconda3.5 mcu_plus_sdk_am64x_08_01_00_36 ti-processor-sdk-linux-am57xx-evm-06.01.00.08 bazel-0.15.0-installer-linux-x86_64.sh mcu_plus_sdk_am64x_08_01_00_36-linux-x64-installer.run ti-processor-sdk-linux-am64xx-evm-08.00.00.21 build-gstreamer.log mediapipe ti-processor-sdk-linux-am65xx-evm-07_01_00_17 build_streamer.sh media_plex ti-processor-sdk-linux-am65xx-evm-08_00_00_04 caffe Neo-AI ti-processor-sdk-linux-j7200-evm-07_03_00_04 caffe-jacinto OpenAvnu ti-processor-sdk-linux-j7200-evm-08_00_00_05 containerd OpenCL_workspace ti-processor-sdk-linux-j7200-evm-08_01_00_01 Delta_Linux_SDK8.0 orc ti-processor-sdk-linux-j7-evm-07_01_00_10 depthai_hand_tracker plexmediaserver_1.13.5.5332-21ab172de_amd64.deb ti-processor-sdk-linux-j7-evm-07_02_00_07 detectron2 processor_sdk_sitara_am64x_00_09_00_01 ti-processor-sdk-linux-j7-evm-07_03_00_05 docker processor_sdk_sitara_am64x_07_02_00_02 ti-processor-sdk-linux-j7-evm-08_00_00_08 DRA821_703 processor_sdk_sitara_am64x_linux_07_02_00_01 ti-processor-sdk-linux-rt-am65xx-evm-06.02.00.81 DRA821_703_env_setup.sh PROCESSOR_SDK_VISION_03_07_00_00 ti-processor-sdk-rtos-j7200-evm-07_03_00_07 DRA821_800 PROCESSOR_SDK_VISION_03_08_00_00 ti-processor-sdk-rtos-j7200-evm-08_00_00_12 DRA821_801 psdk_rtos_auto_j7_06_00_01_00 ti-processor-sdk-rtos-j7200-evm-08_01_00_11 edgeai-yolov5 psdk_rtos_auto_j7_06_02_00_21 ti-processor-sdk-rtos-j721e-evm-07_01_00_11 etcher psdk_rtos_auto_j7_06_02_00_21_original ti-processor-sdk-rtos-j721e-evm-07_02_00_06 Foxconn_7200_Debug pytorch3d ti-processor-sdk-rtos-j721e-evm-07_03_00_07 gcc-11.2.0 Rio_2021_7_30_2ETH.txt ti-processor-sdk-rtos-j721e-evm-08_00_00_12 gcc-11.2.0.tar.gz SSC_Stack_5.12 tsn-doc gst-libav TDA4_601_env_setup.sh usb-eth-RTL-unix-driver gst-plugins-bad TDA4_602_TIDL_Patch yolov5 gst-plugins-base TDA4_701 root@ubuntu-vm:/opt# cd gstreamer root@ubuntu-vm:/opt/gstreamer# ls AUTHORS COPYING docs gst-element-check-1.0.m4 hooks MAINTAINERS meson_options.txt plugins README RELEASE tests ChangeLog data gst gstreamer.doap libs meson.build NEWS po README.static-linking scripts tools root@ubuntu-vm:/opt/gstreamer# meson build ^CFatal Python error: initsite: Failed to import the site module Traceback (most recent call last): File "/usr/lib/python3.7/site.py", line 79, in import os File "/usr/lib/python3.7/os.py", line 29, in from _collections_abc import _check_methods File "/usr/lib/python3.7/_collections_abc.py", line 114, in class Coroutine(Awaitable): File "/usr/lib/python3.7/_collections_abc.py", line 148, in Coroutine @classmethod KeyboardInterrupt root@ubuntu-vm:/opt/gstreamer# clear

root@ubuntu-vm:/opt/gstreamer# meson build

The Meson build system Version: 0.61.1 Source dir: /opt/gstreamer Build dir: /opt/gstreamer/build Build type: native build Project name: gstreamer Project version: 1.19.2 C compiler for the host machine: ccache cc (gcc 7.5.0 "cc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0") C linker for the host machine: cc ld.bfd 2.30 Host machine cpu family: x86_64 Host machine cpu: x86_64 Compiler for C supports link arguments -Wl,-Bsymbolic-functions: YES Compiler for C supports arguments -fvisibility=hidden: YES Compiler for C supports arguments -fno-strict-aliasing: YES Message: Disabling deprecated GLib API Has header "dlfcn.h" : YES Has header "inttypes.h" : YES Has header "memory.h" : YES Has header "poll.h" : YES Has header "stdint.h" : YES Has header "stdio_ext.h" : YES Has header "strings.h" : YES Has header "string.h" : YES Has header "sys/param.h" : YES Has header "sys/poll.h" : YES Has header "sys/prctl.h" : YES Has header "sys/socket.h" : YES Has header "sys/stat.h" : YES Has header "sys/times.h" : YES Has header "sys/time.h" : YES Has header "sys/types.h" : YES Has header "sys/utsname.h" : YES Has header "sys/wait.h" : YES Has header "ucontext.h" : YES Has header "unistd.h" : YES Has header "sys/resource.h" : YES Has header "sys/uio.h" : YES Checking whether type "struct tm" has member "tm_gmtoff" : YES Checking for function "gmtime_r" : YES Checking for function "sigaction" : YES Checking for function "getrusage" : YES Checking for function "fseeko" : YES Checking for function "ftello" : YES Checking for function "poll" : YES Checking for function "ppoll" : YES Checking for function "pselect" : YES Checking for function "getpagesize" : YES Checking for function "clock_gettime" : YES Checking for function "clock_nanosleep" : YES Checking for function "strnlen" : YES Checking for function "getline" : YES Checking for function "mkstemp" : YES Checking for function "alarm" : YES Checking for function "gettimeofday" : YES Checking for function "localtime_r" : YES Checking if "pthread_setname_np(const char*)" : links: NO Header has symbol "pthread_condattr_setclock" : YES Header has symbol "pthread_cond_timedwait_relative_np" : NO Checking if "futex(2) system call" : links: YES Checking if "posix timers from time.h" : compiles: YES Checking if "monotonic clock from time.h" : compiles: YES Checking if "__uint128_t available" : compiles: YES Checking for function "getpid" : YES Checking for function "strdup" : YES Checking for function "strsignal" : YES Checking for type "clockid_t" : YES Checking for type "timer_t" : YES Checking whether type "struct timespec" has members "tv_sec", "tv_nsec" : YES Checking whether type "struct itimerspec" has members "it_interval", "it_value" : YES Found pkg-config: /usr/bin/pkg-config (0.29.1) Found CMake: /usr/local/bin/cmake (3.16.5) Run-time dependency libunwind found: NO (tried pkgconfig and cmake) Run-time dependency libdw found: NO (tried pkgconfig and cmake) Has header "dbghelp.h" : NO Checking for function "backtrace" : YES Message: Minimal support for stack traces, no source info. Has header "execinfo.h" : YES Checking for function "backtrace" : YES Compiler for C supports arguments -Wmissing-declarations: YES Compiler for C supports arguments -Wmissing-prototypes: YES Compiler for C supports arguments -Wredundant-decls: YES Compiler for C supports arguments -Wundef: YES Compiler for C supports arguments -Wwrite-strings: YES Compiler for C supports arguments -Wformat: YES Compiler for C supports arguments -Wformat-nonliteral: YES Compiler for C supports arguments -Wformat-security: YES Compiler for C supports arguments -Wold-style-definition: YES Compiler for C supports arguments -Winit-self: YES Compiler for C supports arguments -Wmissing-include-dirs: YES Compiler for C supports arguments -Waddress: YES Compiler for C supports arguments -Waggregate-return: YES Compiler for C supports arguments -Wno-multichar: YES Compiler for C supports arguments -Wdeclaration-after-statement: YES Compiler for C supports arguments -Wvla: YES Compiler for C supports arguments -Wpointer-arith: YES Library gmp found: NO Library gsl found: NO Library gslcblas found: NO Library dl found: YES Checking for function "dladdr" with dependency -ldl: YES Run-time dependency glib-2.0 found: YES 2.56.4 Run-time dependency gobject-2.0 found: YES 2.56.4 Run-time dependency gmodule-2.0 found: YES 2.56.4 Run-time dependency gio-2.0 found: YES 2.56.4 Run-time dependency gio-unix-2.0 found: YES 2.56.4 Library m found: YES Library rt found: YES Program g-ir-scanner found: NO Program python3 found: YES (/root/anaconda3/bin/python3) WARNING: Python files installed by Meson might not be found by python interpreter. This warning can be avoided by setting "python.platlibdir" option. WARNING: Python files installed by Meson might not be found by python interpreter. This warning can be avoided by setting "python.purelibdir" option. Run-time dependency bash-completion found: YES 2.8 Configuring gstconfig.h using configuration Configuring gstversion.h using configuration Program glib-mkenums found: YES (/root/anaconda3/bin/glib-mkenums) Program glib-mkenums found: YES (/root/anaconda3/bin/glib-mkenums) Program flex found: YES (/usr/bin/flex) Program get_flex_version.py found: YES (/opt/gstreamer/gst/parse/get_flex_version.py) Message: flex version 2.6.4 >= 2.5.31: YES Configuring gen_lex.py using configuration Program bison found: YES (/usr/bin/bison) WARNING: You should add the boolean check kwarg to the run_command call. It currently defaults to false, but it will default to true in future releases of meson. See also: https://github.com/mesonbuild/meson/issues/9300 Message: bison version 3.0.4 >= 2.4: YES Configuring grammar.y using configuration Configuring gen_grammar.py using configuration Compiler for C supports arguments -Wno-format-nonliteral: YES Checking if "long long" : compiles: YES Checking if "uintmax_t in inttypes.h" : compiles: YES Checking if "uintmax_t in stdint.h" : compiles: YES WARNING: extract_all_objects called without setting recursive keyword argument. Meson currently defaults to non-recursive to maintain backward compatibility but the default will be changed in the future.

Program glib-mkenums found: YES (/root/anaconda3/bin/glib-mkenums) Program glib-mkenums found: YES (/root/anaconda3/bin/glib-mkenums) Message: PTP supported on linux. Checking if "SIOCGIFCONF, SIOCGIFFLAGS and SIOCGIFHWADDR available" : compiles: YES Checking if "getifaddrs() and AF_LINK available" : compiles: NO Program setcap found: YES (/sbin/setcap) Run-time dependency libcap found: NO (tried pkgconfig and cmake) Message: How to install gst-ptp-helper: setuid-root Configuring libgstreamer-1.0.so.0.1902.0-gdb.py using configuration Configuring check.h using configuration Compiler for C supports arguments -Wno-undef: YES Compiler for C supports arguments -Wno-redundant-decls: YES Compiler for C supports arguments -Wno-missing-prototypes: YES Compiler for C supports arguments -Wno-missing-declarations: YES Compiler for C supports arguments -Wno-old-style-definition: YES Compiler for C supports arguments -Wno-declaration-after-statement: YES Compiler for C supports arguments -Wno-format-nonliteral: YES (cached) Compiler for C supports arguments -Wno-tautological-constant-out-of-range-compare: NO Configuring internal-check.h using configuration Run-time dependency threads found: YES C++ compiler for the host machine: ccache c++ (gcc 7.5.0 "c++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0") C++ linker for the host machine: c++ ld.bfd 2.30 Run-time dependency gtk+-3.0 found: YES 3.22.30 Has header "pthread.h" : YES Dependency threads found: YES unknown (cached) Configuring gst using configuration Program /opt/gstreamer/build/docs/gst-plugins-doc-cache-generator found: YES (/opt/gstreamer/build/docs/gst-plugins-doc-cache-generator) Program hotdoc found: NO Message: Hotdoc not found, not building the documentation Program xgettext found: YES (/usr/bin/xgettext) Program scripts/extract-release-date-from-doap-file.py found: YES (/opt/gstreamer/scripts/extract-release-date-from-doap-file.py) Message: Package release date: 2021-09-23 Configuring config.h using configuration Build targets in project: 202 NOTICE: Future-deprecated features used:

gstreamer 1.19.2

Plugins: coreelements, coretracers

Found ninja-1.10.2 at /root/anaconda3/bin/ninja root@ubuntu-vm:/opt/gstreamer# root@ubuntu-vm:/opt/gstreamer# root@ubuntu-vm:/opt/gstreamer# ninja -C build ninja: Entering directory `build' [509/509] Linking target tests/examples/controller/controller-graph root@ubuntu-vm:/opt/gstreamer#

RioChan commented 2 years ago

i have also installed the gst-plugin-bad, I don't why it find the gstreamer 1.14.2, but I'm using the 1.19.3. Log is as the below. BR Rio

Found pkg-config: /usr/bin/pkg-config (0.29.1) Dependency gstreamer-1.0 found: NO found 1.14.2 but need: '>= 1.19.0' Found CMake: /usr/local/bin/cmake (3.16.5) Run-time dependency gstreamer-1.0 found: NO (tried pkgconfig and cmake) Looking for a fallback subproject for the dependency gstreamer-1.0

meson.build:270:0: ERROR: Neither a subproject directory nor a gstreamer.wrap file was found.

A full log can be found at /opt/gst-plugins-bad/build/meson-logs/meson-log.txt

edersondisouza commented 2 years ago

Hi,

There's no need to worry about gstreamer vs gst-plugins-bad anymore, since the monorepo. Try following these instructions https://gstreamer.freedesktop.org/documentation/installing/building-from-source-using-meson.html?gi-language=c#setting-up-the-build-with-meson. It should build all of gstreamer, including the avtp plugin, quite transparently.

If that doesn't work, just post the logs =D

RioChan commented 2 years ago

Hi.

1. I have installed more than 10 times for Gstreamer.

I can perform: meson test -C build:

108/108 gst_gstbufferpool TIMEOUT 180.02s killed by signal 15 SIGTERM

MALLOCPERTURB=26 GST_PLUGIN_PATH_1_0=/opt/gstreamer/build CK_DEFAULT_TIMEOUT=20 GST_PLUGIN_SYSTEM_PATH_1_0='' GST_PLUGIN_LOADING_WHITELIST=gstreamer GST_PLUGIN_SCANNER_1_0=/opt/gstreamer/build/libs/gst/helpers/gst-plugin-scanner GST_REGISTRY=/opt/gstreamer/build/tests/check/gst_gstbufferpool.registry GST_STATE_IGNORE_ELEMENTS='' /opt/gstreamer/build/tests/check/gst_gstbufferpool

Ok: 38
Expected Fail: 0
Fail: 68
Unexpected Pass: 0
Skipped: 1
Timeout: 1

2. and my livavtp can be tested as well.

ninja: Entering directory `/opt/libavtp/build' ninja: warning: bad deps log signature or version; starting over [24/24] Linking target test-ieciidc 1/7 AVTP API OK 0.05s 2/7 Stream API OK 0.03s 3/7 AAF API OK 0.02s 4/7 CRF API OK 0.01s 5/7 CVF API OK 0.01s 6/7 RVF API OK 0.01s 7/7 IEC61883/IIDC API OK 0.01s

Ok: 7
Expected Fail: 0
Fail: 0
Unexpected Pass: 0
Skipped: 0
Timeout: 0

Full log written to /opt/libavtp/build/meson-logs/testlog.txt

3. May you guide me more solutions for letting the Gstreamer to find the LibAVTP/OpenAvnu?

Thanks.

BR Rio

edersondisouza commented 2 years ago

Hi,

Can you share the steps you are using to build gstreamer? If I do these steps:

git clone git@gitlab.freedesktop.org:gstreamer/gstreamer.git
cd gstreamer
meson build

I'll see this in the middle of the logs:

gst-plugins-bad| Checking for type "struct sock_txtime" : YES
gst-plugins-bad| Run-time dependency avtp found: NO (tried pkgconfig and cmake)
gst-plugins-bad| Looking for a fallback subproject for the dependency avtp
Cloning into 'avtp'...
remote: Enumerating objects: 250, done.
remote: Counting objects: 100% (26/26), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 250 (delta 8), reused 6 (delta 1), pack-reused 224
Receiving objects: 100% (250/250), 128.64 KiB | 1.71 MiB/s, done.
Resolving deltas: 100% (127/127), done.
HEAD is now at 9482c11 Fix compilation with GCC 9

Executing subproject gst-plugins-bad:avtp

avtp| Project name: libavtp
avtp| Project version: 0.1.0
avtp| C compiler for the host machine: cc (gcc 11.1.0 "cc (GCC) 11.1.0")
avtp| C linker for the host machine: cc ld.bfd 2.36.1
avtp| Run-time dependency cmocka found: NO (tried pkgconfig and cmake)
avtp| Library m found: YES
avtp| Build targets in project: 1020
avtp| Subproject avtp finished.

gst-plugins-bad| Dependency avtp from subproject subprojects/avtp found: YES 0.1.0
(...)
gstreamer-full 1.19.90

  Build options
    gstreamer-full            : NO

  Subprojects
    avtp                      : YES

So, gstreamer just downloads libavtp if it doesn't find it on the system. Can you share (on pastebin) the full log generated by the meson build step of gstreamer, so we can see what is doing wrong?

RioChan commented 2 years ago

Hi edersondisouza:

Sorry for replying late due to vocation.

1, Thanks for your new git site for me, It seems better than my previous git.

   This is my problematic git of Gstreamer: git clone https://github.com/GStreamer/gstreamer.git
   This is yours: git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git

   Obvious, your gitlab gstreamer is better than my used one, I don't know why the reason.
   May you teach me why there are difference between them?

  At least, I know your gitlab gstreamer will auto git clone the Gstreamer bad/base/ugly....plugins.
  My previous one github is ........

2. This is my part of the logs.

root@ubuntu-vm:/opt# git clone https://gitlab.freedesktop.org/gstreamer/gstreamer.git Cloning into 'gstreamer'... remote: Enumerating objects: 839648, done. remote: Counting objects: 100% (1330/1330), done. remote: Compressing objects: 100% (655/655), done. remote: Total 839648 (delta 849), reused 1068 (delta 671), pack-reused 838318 Receiving objects: 100% (839648/839648), 207.03 MiB | 584.00 KiB/s, done. Resolving deltas: 100% (657961/657961), done. Checking out files: 100% (9964/9964), done. root@ubuntu-vm:/opt# root@ubuntu-vm:/opt# root@ubuntu-vm:/opt# root@ubuntu-vm:/opt# cd gstreamer root@ubuntu-vm:/opt/gstreamer# ls ci data gst-env.py gst-uninstalled.py LICENSE meson.build meson_options.txt README.md scripts subprojects tests root@ubuntu-vm:/opt/gstreamer# meson build The Meson build system Version: 0.61.1 Source dir: /opt/gstreamer Build dir: /opt/gstreamer/build Build type: native build Project name: gstreamer-full Project version: 1.20.0

3. I can tell the avpt is in the below

gst-plugins-bad 1.20.0

Plugins               : accurip, adpcmdec, adpcmenc, aiff, asfmux, audiobuffersplit, audiofxbad, audiomixmatrix, audiolatency, audiovisualizers, autoconvert, bayer,
                        camerabin, codecalpha, coloreffects, debugutilsbad, dvbsubenc, dvbsuboverlay, dvdspu, faceoverlay, festival, fieldanalysis, freeverb, frei0r,
                        gaudieffects, gdp, geometrictransform, id3tag, inter, interlace, ivfparse, ivtc, jp2kdecimator, jpegformat, rfbsrc, midi, mpegpsdemux, mpegpsmux,
                        mpegtsdemux, mpegtsmux, mxf, netsim, rtponvif, pcapparse, pnm, proxy, legacyrawparse, removesilence, rist, rtmp2, rtpmanagerbad, sdpelem,
                        segmentclip, siren, smooth, speed, subenc, switchbin, timecode, transcode, videofiltersbad, videoframe_audiolevel, videoparsersbad, videosignal,
                        vmnc, y4mdec, decklink, dvb, fbdevsink, ipcpipeline, kms, nvcodec, shm, aes, **avtp**, closedcaption, colormanagement, dash, dc1394, dtls, fdkaac,
                        hls, microdns, openexr, openjpeg, opusparse, sctp, smoothstreaming, sndfile, ttmlsubs, webrtc
(A)GPL license allowed: False

4. But, in the end, it shows me those errors as the below, how to fixt it?

BR Rio

In file included from ../subprojects/gst-plugins-good/ext/qt/qtitem.cc:30:0: ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:33:27: error: ‘function’ in namespace ‘std’ does not name a template type using Callable = std::function<void()>; ^~~~ ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:35:33: error: expected ‘)’ before ‘c’ explicit RenderJob(Callable c) : _c(c) { } ^ ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:40:5: error: ‘Callable’ does not name a type; did you mean ‘glEnable’? Callable _c; ^~~~ glEnable ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h: In member function ‘virtual void RenderJob::run()’: ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:37:18: error: ‘_c’ was not declared in this scope void run() { _c(); } ^~ ../subprojects/gst-plugins-good/ext/qt/qtitem.cc: In member function ‘void QtGLVideoItem::handleWindowChanged(QQuickWindow*)’: ../subprojects/gst-plugins-good/ext/qt/qtitem.cc:684:15: error: ‘bind’ is not a member of ‘std’ bind (&QtGLVideoItem::onSceneGraphInitialized, this)), ^~~~ ../subprojects/gst-plugins-good/ext/qt/qtitem.cc:684:15: note: suggested alternative: ‘find’ bind (&QtGLVideoItem::onSceneGraphInitialized, this)), ^~~~ find ninja: build stopped: subcommand failed. root@ubuntu-vm:/opt/gstreamer#

RioChan commented 2 years ago

This is the full - Fail Logs, Sir

[2378/6942] Compiling C++ object subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtglutility.cc.o FAILED: subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtglutility.cc.o ccache c++ -Isubprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p -Isubprojects/gst-plugins-good/ext/qt -I../subprojects/gst-plugins-good/ext/qt -Isubprojects/gst-plugins-good -I../subprojects/gst-plugins-good -I../subprojects/gst-plugins-good/gst-libs -Isubprojects/gstreamer -I../subprojects/gstreamer -Isubprojects/gst-plugins-base/gst-libs -I../subprojects/gst-plugins-base/gst-libs -Isubprojects/gstreamer/libs -I../subprojects/gstreamer/libs -Isubprojects/orc -I../subprojects/orc -Isubprojects/gl-headers/abyss -I../subprojects/gl-headers/abyss -Isubprojects/gl-headers/wglext -I../subprojects/gl-headers/wglext -Isubprojects/gstreamer/gst -Isubprojects/gst-plugins-base/gst-libs/gst/video -Isubprojects/gst-plugins-base/gst-libs/gst/gl -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libdrm -I/root/anaconda3/include/qt -I/root/anaconda3/include/qt/QtCore -I/root/anaconda3/include/qt/QtGui -I/root/anaconda3/include/qt/QtQml -I/root/anaconda3/include/qt/QtQuick -I/root/anaconda3/include/qt/QtX11Extras -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++11 -O2 -g -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Winit-self -Wmissing-include-dirs -Wno-multichar -Wvla -Wpointer-arith -fPIC -DQT_X11EXTRAS_LIB -DQT_CORE_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_QUICK_LIB -pthread -DHAVE_CONFIG_H -DHAVE_QT_QPA_HEADER '-DQT_QPA_HEADER=<5.6.2/QtGui/qpa/qplatformnativeinterface.h>' -DHAVE_QT_X11 -DHAVE_QT_EGLFS -MD -MQ subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtglutility.cc.o -MF subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtglutility.cc.o.d -o subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtglutility.cc.o -c ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.cc In file included from ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.cc:25:0: ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:33:27: error: ‘function’ in namespace ‘std’ does not name a template type using Callable = std::function<void()>; ^~~~ ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:35:33: error: expected ‘)’ before ‘c’ explicit RenderJob(Callable c) : _c(c) { } ^ ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:40:5: error: ‘Callable’ does not name a type; did you mean ‘llabs’? Callable _c; ^~~~ llabs ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h: In member function ‘virtual void RenderJob::run()’: ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:37:18: error: ‘_c’ was not declared in this scope void run() { _c(); } ^~ In file included from /root/anaconda3/include/qt/QtCore/qatomic.h:34:0, from /root/anaconda3/include/qt/QtCore/qvariant.h:37, from /root/anaconda3/include/qt/QtCore/QVariant:1, from ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:27, from ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.cc:25: /root/anaconda3/include/qt/QtCore/qmetatype.h: In instantiation of ‘constexpr int qMetaTypeId() [with T = std::nullptr_t]’: /root/anaconda3/include/qt/QtCore/qvariant.h:496:35: required from ‘QVariant qVariantFromValue(const T&) [with T = std::nullptr_t]’ /root/anaconda3/include/qt/QtCore/qvariant.h:350:31: required from ‘static QVariant QVariant::fromValue(const T&) [with T = std::nullptr_t]’ ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.cc:358:39: required from here /root/anaconda3/include/qt/QtCore/qglobal.h:724:47: error: static assertion failed: Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object system

define Q_STATIC_ASSERT_X(Condition, Message) static_assert(bool(Condition), Message)

                                           ^

/root/anaconda3/include/qt/QtCore/qmetatype.h:1739:5: note: in expansion of macro ‘Q_STATIC_ASSERT_X’ Q_STATIC_ASSERT_X(QMetaTypeId2::Defined, "Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt's meta-object system"); ^~~~~ In file included from /root/anaconda3/include/qt/QtCore/qvariant.h:40:0, from /root/anaconda3/include/qt/QtCore/QVariant:1, from ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:27, from ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.cc:25: /root/anaconda3/include/qt/QtCore/qmetatype.h: In instantiation of ‘static constexpr int QMetaTypeId2::qt_metatype_id() [with T = std::nullptr_t]’: /root/anaconda3/include/qt/QtCore/qmetatype.h:1740:43: required from ‘constexpr int qMetaTypeId() [with T = std::nullptr_t]’ /root/anaconda3/include/qt/QtCore/qvariant.h:496:35: required from ‘QVariant qVariantFromValue(const T&) [with T = std::nullptr_t]’ /root/anaconda3/include/qt/QtCore/qvariant.h:350:31: required from ‘static QVariant QVariant::fromValue(const T&) [with T = std::nullptr_t]’ ../subprojects/gst-plugins-good/ext/qt/gstqtglutility.cc:358:39: required from here /root/anaconda3/include/qt/QtCore/qmetatype.h:1598:96: error: ‘qt_metatype_id’ is not a member of ‘QMetaTypeId’ static inline Q_DECL_CONSTEXPR int qt_metatype_id() { return QMetaTypeId::qt_metatype_id(); }


/root/anaconda3/include/qt/QtCore/qmetatype.h:1598:100: error: body of constexpr function ‘static constexpr int QMetaTypeId2<T>::qt_metatype_id() [with T = std::nullptr_t]’ not a return-statement
     static inline Q_DECL_CONSTEXPR int qt_metatype_id() { return QMetaTypeId<T>::qt_metatype_id(); }
                                                                                                    ^
[2381/6942] Compiling C++ object subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtoverlay.cc.o
FAILED: subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtoverlay.cc.o 
ccache c++ -Isubprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p -Isubprojects/gst-plugins-good/ext/qt -I../subprojects/gst-plugins-good/ext/qt -Isubprojects/gst-plugins-good -I../subprojects/gst-plugins-good -I../subprojects/gst-plugins-good/gst-libs -Isubprojects/gstreamer -I../subprojects/gstreamer -Isubprojects/gst-plugins-base/gst-libs -I../subprojects/gst-plugins-base/gst-libs -Isubprojects/gstreamer/libs -I../subprojects/gstreamer/libs -Isubprojects/orc -I../subprojects/orc -Isubprojects/gl-headers/abyss -I../subprojects/gl-headers/abyss -Isubprojects/gl-headers/wglext -I../subprojects/gl-headers/wglext -Isubprojects/gstreamer/gst -Isubprojects/gst-plugins-base/gst-libs/gst/video -Isubprojects/gst-plugins-base/gst-libs/gst/gl -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/libdrm -I/root/anaconda3/include/qt -I/root/anaconda3/include/qt/QtCore -I/root/anaconda3/include/qt/QtGui -I/root/anaconda3/include/qt/QtQml -I/root/anaconda3/include/qt/QtQuick -I/root/anaconda3/include/qt/QtX11Extras -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -std=c++11 -O2 -g -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Winit-self -Wmissing-include-dirs -Wno-multichar -Wvla -Wpointer-arith -fPIC -DQT_X11EXTRAS_LIB -DQT_CORE_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_QUICK_LIB -pthread -DHAVE_CONFIG_H -DHAVE_QT_QPA_HEADER '-DQT_QPA_HEADER=<5.6.2/QtGui/qpa/qplatformnativeinterface.h>' -DHAVE_QT_X11 -DHAVE_QT_EGLFS -MD -MQ subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtoverlay.cc.o -MF subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtoverlay.cc.o.d -o subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtoverlay.cc.o -c ../subprojects/gst-plugins-good/ext/qt/gstqtoverlay.cc
In file included from ../subprojects/gst-plugins-good/ext/qt/gstqtoverlay.cc:85:0:
../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:33:27: error: ‘function’ in namespace ‘std’ does not name a template type
     using Callable = std::function<void()>;
                           ^~~~~~~~
../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:35:33: error: expected ‘)’ before ‘c’
     explicit RenderJob(Callable c) : _c(c) { }
                                 ^
../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:40:5: error: ‘Callable’ does not name a type; did you mean ‘glEnable’?
     Callable _c;
     ^~~~~~~~
     glEnable
../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h: In member function ‘virtual void RenderJob::run()’:
../subprojects/gst-plugins-good/ext/qt/gstqtglutility.h:37:18: error: ‘_c’ was not declared in this scope
     void run() { _c(); }
                  ^~
[2383/6942] Compiling C++ object subprojects/gst-plugins-good/ext/qt/libgstqmlgl.so.p/gstqtsrc.cc.o
ninja: build stopped: subcommand failed.
root@ubuntu-vm:/opt/gstreamer#   
RioChan commented 2 years ago

I tried to build the subprojects/gst-plugins-good, it shows me this error. Do I need to fix this first? But I don't know how to fix it :(.

Found pkg-config: /usr/bin/pkg-config (0.29.1) Dependency gstreamer-1.0 found: NO found 1.14.2 but need: '>= 1.20.0' Found CMake: /usr/local/bin/cmake (3.16.5) Run-time dependency gstreamer-1.0 found: NO (tried pkgconfig and cmake) Looking for a fallback subproject for the dependency gstreamer-1.0

meson.build:255:0: ERROR: Neither a subproject directory nor a gstreamer.wrap file was found.

A full log can be found at /opt/gstreamer/subprojects/gst-plugins-good/build/meson-logs/meson-log.txt

edersondisouza commented 2 years ago

Hi,

May you teach me why there are difference between them?

Not sure, as the github one should be a mirror of the gitlab one. Anyway, gitlab is the official one for gstreamer.

About the compilation errors, I'd guess it's about the compiler version you're using. Nevertheless, if you are not using those parts of gstreamer (Qt from the failing logs), you could do something like meson -Dgst-plugins-good:qt5=disabled so not to build Qt support. You can find more information on how to enable/disable parts of gstreamer build here: https://gitlab.freedesktop.org/gstreamer/gst-build/blob/master/README.md

Finally, I don't think you're supposed to go inside the subproject directory to build only it - refer to the link above for more details on how to build gstreamer.

RioChan commented 2 years ago

Hi Ederson:

Sorry for replying late. I have tested some ubuntu versions with Gstreamer. Only the ubuntu 22.04 can make it compiled finished and the UI screen of the ubuntu won't be black.

Now, I'm going to test the Gstreamer. I confirm my gstreamer has the "videotestsrc". But, testing it will show me the "no element of the videotestsrc". May you guide me how to solve this?

I have read almost > 50 articles by google. None of them fixes my issue. :(.

BR Rio

edersondisouza commented 2 years ago

It seems that you are having problems with gstreamer itself, not the avtp plugin. Maybe try asking on gstreamer forums, mailing list, IRC?

KilledByBugs commented 1 year ago

You definitely need to build gstreamer. Are you building it? If so, can you share the log from gstreamer build, please?

Hi guys,

I hope you have solved the problems. Can you give me a hand? I find the same problem after building the libavtp. My system is Ubuntu 20.04. I have installed GStreamer by using the command: $ sudo apt-get install gcc build-essential libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools \ gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-qt5 gstreamer1.0-pulseaudio Then, I downloaded the libavtp from https://github.com/AVnu/libavtp, and built it successfully. However, I also get the message "No such element or plugin 'avtp'" when I try "gst-inspect-1.0 avtp".

edersondisouza commented 1 year ago

Hi @KilledByBugs,

You need to rebuild gstreamer so that it can find libavtp during build time - if it was built without support for it, just getting libavtp after won't help.

KilledByBugs commented 1 year ago

Hi @KilledByBugs,

You need to rebuild gstreamer so that it can find libavtp during build time - if it was built without support for it, just getting libavtp after won't help.

Hi Ederson,

Thank you so much for your reply. I am going to uninstall my GStreamer now. Do you think the AVTP plugin will work if I re-install GStreamer using apt? Do I have to build GStreamer from source code using meson and ninja?

edersondisouza commented 1 year ago

You need to build it from source - shouldn't be hard, though.

KilledByBugs commented 1 year ago

You need to build it from source - shouldn't be hard, though. The AVTP plugin doesn't work after a build of GStreamer. It's not that easy for me to build GStreamer from the source. I need to install a lot of dependencies. Also, my Ubuntu crashed when I uninstalled libgstreamer to re-installing GStreamer last time.😂 I am going to try AVTP plugin in Ubuntu 22.04 now. Thank you anyway.