gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

John Rama
Hello,

I'm trying to run avtp plugin as follows.
I would like to use interface "enp8s0", but no success with following error.
Would someone please help on this ?

$ ninja -C build devenv

$gst-launch-1.0 avtpsrc ifname=enp8s0 ! avtpcvfdepay ! avdec_h264 ! fakevideosink
Setting pipeline to PAUSED ...
0:00:00.029821666 26687 0x56526bbeca10 ERROR                avtpsrc gstavtpsrc.c:213:gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted
ERROR: from element /GstPipeline:pipeline0/GstAvtpSrc:avtpsrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
../subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3557): gst_base_src_start (): /GstPipeline:pipeline0/GstAvtpSrc:avtpsrc0:
Failed to start
ERROR: pipeline doesn't want to preroll.
Failed to set pipeline to PAUSED.
Setting pipeline to NULL ...
Freeing pipeline ...

$sudo gst-launch-1.0 avtpsrc ifname=enp8s0 ! avtpcvfdepay ! avdec_h264 ! fakevideosink
WARNING: erroneous pipeline: no element "avtpsrc"

John
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

Desouza, Ederson
Hi,

On Thu, 2020-07-16 at 10:56 -0400, John Rama wrote:

> Hello,
>
> I'm trying to run avtp plugin as follows.
> I would like to use interface "enp8s0", but no success with following error.
> Would someone please help on this ?
>
> $ ninja -C build devenv
>
> $gst-launch-1.0 avtpsrc ifname=enp8s0 ! avtpcvfdepay ! avdec_h264 ! fakevideosink
> Setting pipeline to PAUSED ...
> 0:00:00.029821666 26687 0x56526bbeca10 ERROR                avtpsrc gstavtpsrc.c:213:gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

The avtpsrc and avtpsink elements need CAP_NET_RAW/CAP_NET_ADMIN to
work, so the application will need to have that. If you are just
testing with gst-launch, you could do:

sudo setcap cap_net_admin,cap_net_raw+ep <path_to_gst_launch>

> ERROR: from element /GstPipeline:pipeline0/GstAvtpSrc:avtpsrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
> Additional debug info:
> ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3557): gst_base_src_start (): /GstPipeline:pipeline0/GstAvtpSrc:avtpsrc0:
> Failed to start
> ERROR: pipeline doesn't want to preroll.
> Failed to set pipeline to PAUSED.
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> $sudo gst-launch-1.0 avtpsrc ifname=enp8s0 ! avtpcvfdepay ! avdec_h264 ! fakevideosink
> WARNING: erroneous pipeline: no element "avtpsrc"

"sudo" clears up some environment variables set by the "devenv" target
- try using "sudo -E", if using 'sudo'.

Also, as you are interested in the avtp plugin, I'll take the liberty
to share this link: https://tsn.readthedocs.io/avb.html#system-setup
It may contain some useful information on how to test it, in case you
need. Note however that the build instructions are a bit outdated, as
they are from before we got everything working with gst-build. But you
are past this part already =D

Cheers!

>
> John
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

John Rama
In reply to this post by John Rama
According to this documentation,
https://gstreamer.freedesktop.org/documentation/avtp/index.html?gi-language=c
It seems that we need to add capability "cap_net_raw+ep" to gst-launch-1.0.

$ sudo setcap cap_net_raw+ep /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gstreamer/tools/gst-launch-1.0

Then I got the following error.
------------------------------------------------------------------------------------------------------------
$gst-launch-1.0  avtpsrc ifname=enp8s0  ! avtpcvfdepay ! avdec_h264 ! fakevideosink

(gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/libgstavtp.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request

(gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/libgstavtp.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request

(gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-libav/ext/libav/libgstlibav.so':/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-libav/ext/libav/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request

(gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/gst/debugutils/libgstdebugutilsbad.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/gst/debugutils/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
gst-launch-1.0: symbol lookup error: gst-launch-1.0: undefined symbol: gst_printerr
------------------------------------------------------------------------------------------------------------

Any comment are welcome. Thanks for the help !!

John


On 2020/07/16 10:56, John Rama wrote:

> Hello,
>
> I'm trying to run avtp plugin as follows.
> I would like to use interface "enp8s0", but no success with following error.
> Would someone please help on this ?
>
> $ ninja -C build devenv
>
> $gst-launch-1.0 avtpsrc ifname=enp8s0 ! avtpcvfdepay ! avdec_h264 ! fakevideosink
> Setting pipeline to PAUSED ...
> 0:00:00.029821666 26687 0x56526bbeca10 ERROR                avtpsrc gstavtpsrc.c:213:gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted
> ERROR: from element /GstPipeline:pipeline0/GstAvtpSrc:avtpsrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
> Additional debug info:
> ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3557): gst_base_src_start (): /GstPipeline:pipeline0/GstAvtpSrc:avtpsrc0:
> Failed to start
> ERROR: pipeline doesn't want to preroll.
> Failed to set pipeline to PAUSED.
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> $sudo gst-launch-1.0 avtpsrc ifname=enp8s0 ! avtpcvfdepay ! avdec_h264 ! fakevideosink
> WARNING: erroneous pipeline: no element "avtpsrc"
>
> John
>

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

Desouza, Ederson
On Thu, 2020-07-16 at 12:09 -0400, John Rama wrote:

> According to this documentation,
> https://gstreamer.freedesktop.org/documentation/avtp/index.html?gi-language=c
> It seems that we need to add capability "cap_net_raw+ep" to gst-launch-1.0.
>
> $ sudo setcap cap_net_raw+ep /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gstreamer/tools/gst-launch-1.0
>
> Then I got the following error.
> ------------------------------------------------------------------------------------------------------------
> $gst-launch-1.0  avtpsrc ifname=enp8s0  ! avtpcvfdepay ! avdec_h264 ! fakevideosink
>
> (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/libgstavtp.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
>
> (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/libgstavtp.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
>
> (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-libav/ext/libav/libgstlibav.so':/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-libav/ext/libav/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
>
> (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/gst/debugutils/libgstdebugutilsbad.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/gst/debugutils/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request

This looks like something is messed up on your environment - please
ensure that all subprojects are updated, try building from a clean
environment, etc.

> gst-launch-1.0: symbol lookup error: gst-launch-1.0: undefined symbol: gst_printerr
> ------------------------------------------------------------------------------------------------------------
>
> Any comment are welcome. Thanks for the help !!
>
> John
>
>
> On 2020/07/16 10:56, John Rama wrote:
> > Hello,
> >
> > I'm trying to run avtp plugin as follows.
> > I would like to use interface "enp8s0", but no success with following error.
> > Would someone please help on this ?
> >
> > $ ninja -C build devenv
> >
> > $gst-launch-1.0 avtpsrc ifname=enp8s0 ! avtpcvfdepay ! avdec_h264 ! fakevideosink
> > Setting pipeline to PAUSED ...
> > 0:00:00.029821666 26687 0x56526bbeca10 ERROR                avtpsrc gstavtpsrc.c:213:gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted
> > ERROR: from element /GstPipeline:pipeline0/GstAvtpSrc:avtpsrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
> > Additional debug info:
> > ../subprojects/gstreamer/libs/gst/base/gstbasesrc.c(3557): gst_base_src_start (): /GstPipeline:pipeline0/GstAvtpSrc:avtpsrc0:
> > Failed to start
> > ERROR: pipeline doesn't want to preroll.
> > Failed to set pipeline to PAUSED.
> > Setting pipeline to NULL ...
> > Freeing pipeline ...
> >
> > $sudo gst-launch-1.0 avtpsrc ifname=enp8s0 ! avtpcvfdepay ! avdec_h264 ! fakevideosink
> > WARNING: erroneous pipeline: no element "avtpsrc"
> >
> > John
> >
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

John Rama
Hello Desounza,

Thanks for your input.

>> ------------------------------------------------------------------------------------------------------------
>> $gst-launch-1.0  avtpsrc ifname=enp8s0  ! avtpcvfdepay ! avdec_h264 ! fakevideosink
>>
>> (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/libgstavtp.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
>>
>> (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/libgstavtp.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
>>
>> (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-libav/ext/libav/libgstlibav.so':/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-libav/ext/libav/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
>>
>> (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/gst/debugutils/libgstdebugutilsbad.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/gst/debugutils/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
>
> This looks like something is messed up on your environment - please
> ensure that all subprojects are updated, try building from a clean
> environment, etc.
>

I confirmed before setcap, following pipleline works.
$gst-launch-1.0 videotestsrc num-buffers=1 ! fakevideosink

Then if I do setcap, the same pipeline does not work.
$sudo setcap cap_net_raw+ep /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gstreamer/tools/gst-launch-1.0
$gst-launch-1.0 videotestsrc num-buffers=1 ! fakevideosink
...
gst-launch-1.0: symbol lookup error: gst-launch-1.0: undefined symbol: gst_printerr

$gst-launch-1.0 videotestsrc num-buffers=1 ! fakevideosink

Then if I do remove the capability, it work again.
$sudo setcap -r /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gstreamer/tools/gst-launch-1.0
$gst-launch-1.0 videotestsrc num-buffers=1 ! fakevideosink

So, setcap definitely affect this problem.


After investigating more, it turned out this is because of linker behavior.

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=7157699

> When one is raising the privileges of an executable, the runtime loader (rtld),
> better know as ld.so will not link with libraries in untrusted paths.
> This is the way the ld.so(1) has been designed. If one needs to run such an
> executable, then you have to add that path to the trusted paths of ld.so

After adding the path of libgstreamer-1.0.so.0 to linker, it works.
$cat /etc/ld.so.conf.d/gst-test.conf
/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gstreamer/gst/
$sudo ldconfig

(In my environment, I need to do this, even LD_LIBRARY_PATH is already set to the
correct path to use gstreamer plugins by "ninja -C build devenv".)

======================================================================

So, after fixing this problem, the pipeline has no error.
But I have another problem....
But, fakesink does not receive no data...

$gst-launch-1.0 avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' avdec_h264 '!' videoconvert '!' fakesink dump=true
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
...

Followings returns some data..
$gst-launch-1.0 avtpsrc ifname=enp8s0 '! fakesink dump=true
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
00000000 (0x7f3338003c90): 03 88 83 00 01 23 45 67 89 ab cd ef 00 00 00 00  .....#Eg........
00000010 (0x7f3338003ca0): 02 01 00 00 01 7b 20 00 16 17 89 67 5c 81 9a 6e  .....{ ....g\..n
00000020 (0x7f3338003cb0): 93 c2 1e 4c a6 04 ff 01 89 c8 c3 dd 80 10 11 8d  ...L............

But Followings does not return no data...
$gst-launch-1.0 avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' fakesink dump=true
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

Can you think of any reason why ?

(I have already confirmed that my PC enp8s0 is receiving the CVF stream with VLAN ID 2 (PCP=3).
 Do we need to do something to receive the stream with VLAN ?)

======================================================================

Another question is

This document describes I need to put -k ptp option to gst-launch-1.0.
https://gstreamer.freedesktop.org/documentation/avtp/index.html?gi-language=c

But gst-launch-1.0 does not recognize "-k" option.
$ gst-launch-1.0 -k ptp avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' fakesink dump=true
Error initializing: Unknown option -k

$gst-launch-1.0 --version
gst-launch-1.0 version 1.17.2
GStreamer 1.17.2 (GIT)

Thanks for your help !!

John

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

Desouza, Ederson
On Thu, 2020-07-16 at 15:33 -0400, John Rama wrote:

> Hello Desounza,
>
> Thanks for your input.
>
> > > ------------------------------------------------------------------------------------------------------------
> > > $gst-launch-1.0  avtpsrc ifname=enp8s0  ! avtpcvfdepay ! avdec_h264 ! fakevideosink
> > >
> > > (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/libgstavtp.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
> > >
> > > (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/libgstavtp.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/ext/avtp/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
> > >
> > > (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-libav/ext/libav/libgstlibav.so':/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-libav/ext/libav/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
> > >
> > > (gst-launch-1.0:8639): GStreamer-WARNING **: Failed to load plugin '/home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/gst/debugutils/libgstdebugutilsbad.so': /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gst-plugins-bad/gst/debugutils/../../../gstreamer/libs/gst/base/libgstbase-1.0.so.0: undefined symbol: gst_message_new_instant_rate_request
> >
> > This looks like something is messed up on your environment - please
> > ensure that all subprojects are updated, try building from a clean
> > environment, etc.
> >
>
> I confirmed before setcap, following pipleline works.
> $gst-launch-1.0 videotestsrc num-buffers=1 ! fakevideosink
>
> Then if I do setcap, the same pipeline does not work.
> $sudo setcap cap_net_raw+ep /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gstreamer/tools/gst-launch-1.0
> $gst-launch-1.0 videotestsrc num-buffers=1 ! fakevideosink
> ...
> gst-launch-1.0: symbol lookup error: gst-launch-1.0: undefined symbol: gst_printerr
>
> $gst-launch-1.0 videotestsrc num-buffers=1 ! fakevideosink
>
> Then if I do remove the capability, it work again.
> $sudo setcap -r /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gstreamer/tools/gst-launch-1.0
> $gst-launch-1.0 videotestsrc num-buffers=1 ! fakevideosink
>
> So, setcap definitely affect this problem.
>
>
> After investigating more, it turned out this is because of linker behavior.
>
> https://bugs.java.com/bugdatabase/view_bug.do?bug_id=7157699
>
> > When one is raising the privileges of an executable, the runtime loader (rtld),
> > better know as ld.so will not link with libraries in untrusted paths.
> > This is the way the ld.so(1) has been designed. If one needs to run such an
> > executable, then you have to add that path to the trusted paths of ld.so
>
> After adding the path of libgstreamer-1.0.so.0 to linker, it works.
> $cat /etc/ld.so.conf.d/gst-test.conf
> /home/makoto/Work/src/gstreamer/gst-build-master/build/subprojects/gstreamer/gst/
> $sudo ldconfig

Yeah, ld is picky with capabilities and non-default paths, sorry not
having noticed that...

>
> (In my environment, I need to do this, even LD_LIBRARY_PATH is already set to the
> correct path to use gstreamer plugins by "ninja -C build devenv".)
>
> ======================================================================
>
> So, after fixing this problem, the pipeline has no error.
> But I have another problem....
> But, fakesink does not receive no data...
>
> $gst-launch-1.0 avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' avdec_h264 '!' videoconvert '!' fakesink dump=true
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Pipeline is PREROLLED ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> ...
>
> Followings returns some data..
> $gst-launch-1.0 avtpsrc ifname=enp8s0 '! fakesink dump=true
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Pipeline is PREROLLED ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> 00000000 (0x7f3338003c90): 03 88 83 00 01 23 45 67 89 ab cd ef 00 00 00 00  .....#Eg........
> 00000010 (0x7f3338003ca0): 02 01 00 00 01 7b 20 00 16 17 89 67 5c 81 9a 6e  .....{ ....g\..n
> 00000020 (0x7f3338003cb0): 93 c2 1e 4c a6 04 ff 01 89 c8 c3 dd 80 10 11 8d  ...L............
>
> But Followings does not return no data...
> $gst-launch-1.0 avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' fakesink dump=true
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Pipeline is PREROLLED ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
>
> Can you think of any reason why ?

AVTP streams have a streamid - have you tried using:

... ! avtpcvfdepay streamid=<stream-id> ! ...

Also note that you can get debug information from the avtp plugin with:

GST_DEBUG=avtp*:<debug-level> gst-launch-1.0

So you can check what the plugin is doing.


>
> (I have already confirmed that my PC enp8s0 is receiving the CVF stream with VLAN ID 2 (PCP=3).
>  Do we need to do something to receive the stream with VLAN ?)
>
> ======================================================================
>
> Another question is
>
> This document describes I need to put -k ptp option to gst-launch-1.0.
> https://gstreamer.freedesktop.org/documentation/avtp/index.html?gi-language=c

Ouch, that's "hypothetical" =D
In the end, a way to set the pipeline clock when testing with
gst-launch is to use debugutilsbad "clockselect" element:

gst-launch-1.0 clockselect. \( clock-id=<clockid> <your pipieline here> \)

You can use "gst-inspect-1.0 clockselect" for more information on that element.

I'll try to update that documentation. Thank you for the heads up.

>
> But gst-launch-1.0 does not recognize "-k" option.
> $ gst-launch-1.0 -k ptp avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' fakesink dump=true
> Error initializing: Unknown option -k
>
> $gst-launch-1.0 --version
> gst-launch-1.0 version 1.17.2
> GStreamer 1.17.2 (GIT)
>
> Thanks for your help !!
>
> John
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

John Rama
In reply to this post by Desouza, Ederson
Hello Desounza,

Thanks again for your help on this.

>
>> But Followings does not return no data...
>> $gst-launch-1.0 avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' fakesink dump=true
>> Setting pipeline to PAUSED ...
>> Pipeline is live and does not need PREROLL ...
>> Pipeline is PREROLLED ...
>> Setting pipeline to PLAYING ...
>> New clock: GstSystemClock
>>
>> Can you think of any reason why ?
>
> AVTP streams have a streamid - have you tried using:
>
> ... ! avtpcvfdepay streamid=<stream-id> ! ...
>
> Also note that you can get debug information from the avtp plugin with:
>
> GST_DEBUG=avtp*:<debug-level> gst-launch-1.0
>
> So you can check what the plugin is doing.
gst-launch-1.0 --gst-debug-color-mode=off clockselect. '(clock-id=realtime' avtpsrc ifname=enp8s0 address=91:EF:00:00:FE:00 '!' avtpcvfdepay streamid=0x0123456789abcdef '!' fakesink dump=true ')'

I put streamid and destination mac address, but I still have no success ( I can not see fakesink receives the data)...
According to the log (I attached whole log), avtpcvfdepay surely receive CVF stream, but does not pass them to the fakesink...
Any idea ??

=====================================================

+ GST_DEBUG='avtp*:7'
+ gst-launch-1.0 --gst-debug-color-mode=off clockselect. '(clock-id=realtime' avtpsrc ifname=enp8s0 address=91:EF:00:00:FE:00 '!' avtpcvfdepay streamid=0x0123456789abcdef '!' fakesink dump=true ')'
0:00:00.021076523  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:156:gst_avtp_src_set_property:<avtpsrc0> prop_id 1
0:00:00.021102046  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:156:gst_avtp_src_set_property:<avtpsrc0> prop_id 2
0:00:00.021151987  3505 0x5566083a1c00 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:142:gst_avtp_base_depayload_set_property:<avtpcvfdepay0> prop_id 1
Setting pipeline to PAUSED ...
0:00:00.043151942  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:248:gst_avtp_src_start:<avtpsrc0> AVTP source started
Pipeline is live and does not need PREROLL ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
0:00:00.043562029  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event stream-start
New clock: DebugGstSystemClock
0:00:00.043681756  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event caps
0:00:00.069131412  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event segment
0:00:00.069168990  3505 0x5566083a1850 INFO            avtpcvfdepay gstavtpcvfdepay.c:379:gst_avtp_cvf_depay_validate_avtpdu:<avtpcvfdepay0> Unexpected AVTP header seq num 166, expected 0
0:00:00.069178877  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
0:00:00.069188523  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 1 end: 0
0:00:00.069293505  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
0:00:00.069307743  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 0 end: 0
...
0:00:00.084477094  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
0:00:00.084485950  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 0 end: 1
0:00:00.084499930  3505 0x5566083a1850 LOG             avtpcvfdepay gstavtpcvfdepay.c:452:gst_avtp_cvf_depay_internal_push:<avtpcvfdepay0> Adding buffer of size 45829 (nalu size 45825) to out_buffer
...
=====================================================

P.S
You might wonder what's this in the log....
>0:00:00.069168990 3505 0x5566083a1850 INFO avtpcvfdepay gstavtpcvfdepay.c:379:gst_avtp_cvf_depay_validate_avtpdu:<avtpcvfdepay0> Unexpected AVTP header seq num 166, expected 0
This is because there is another AVTP message(AVDECC ADC) in the network.
I do not think this is the problem.
But please let me know if this is the problem..

Thanks !!

John


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

tmp2.log.gz (117K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

Desouza, Ederson
On Thu, 2020-07-16 at 17:58 -0400, John Rama wrote:

> Hello Desounza,
>
> Thanks again for your help on this.
>
> > > But Followings does not return no data...
> > > $gst-launch-1.0 avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' fakesink dump=true
> > > Setting pipeline to PAUSED ...
> > > Pipeline is live and does not need PREROLL ...
> > > Pipeline is PREROLLED ...
> > > Setting pipeline to PLAYING ...
> > > New clock: GstSystemClock
> > >
> > > Can you think of any reason why ?
> >
> > AVTP streams have a streamid - have you tried using:
> >
> > ... ! avtpcvfdepay streamid=<stream-id> ! ...
> >
> > Also note that you can get debug information from the avtp plugin with:
> >
> > GST_DEBUG=avtp*:<debug-level> gst-launch-1.0
> >
> > So you can check what the plugin is doing.
>
> gst-launch-1.0 --gst-debug-color-mode=off clockselect. '(clock-id=realtime' avtpsrc ifname=enp8s0 address=91:EF:00:00:FE:00 '!' avtpcvfdepay streamid=0x0123456789abcdef '!' fakesink dump=true ')'
>
> I put streamid and destination mac address, but I still have no success ( I can not see fakesink receives the data)...
> According to the log (I attached whole log), avtpcvfdepay surely receive CVF stream, but does not pass them to the fakesink...
> Any idea ??

From the log, it appears that no avtp packet arrives with M bit set, so
avtpcvfdepay keeps just accumulating nal units.
Can you ensure that what is generating the stream is properly setting
the M bit on the last access unit ("packet of a frame")? Wireshark can
be of help here.

>
> =====================================================
>
> + GST_DEBUG='avtp*:7'
> + gst-launch-1.0 --gst-debug-color-mode=off clockselect. '(clock-id=realtime' avtpsrc ifname=enp8s0 address=91:EF:00:00:FE:00 '!' avtpcvfdepay streamid=0x0123456789abcdef '!' fakesink dump=true ')'
> 0:00:00.021076523  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:156:gst_avtp_src_set_property:<avtpsrc0> prop_id 1
> 0:00:00.021102046  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:156:gst_avtp_src_set_property:<avtpsrc0> prop_id 2
> 0:00:00.021151987  3505 0x5566083a1c00 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:142:gst_avtp_base_depayload_set_property:<avtpcvfdepay0> prop_id 1
> Setting pipeline to PAUSED ...
> 0:00:00.043151942  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:248:gst_avtp_src_start:<avtpsrc0> AVTP source started
> Pipeline is live and does not need PREROLL ...
> Pipeline is PREROLLED ...
> Setting pipeline to PLAYING ...
> 0:00:00.043562029  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event stream-start
> New clock: DebugGstSystemClock
> 0:00:00.043681756  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event caps
> 0:00:00.069131412  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event segment
> 0:00:00.069168990  3505 0x5566083a1850 INFO            avtpcvfdepay gstavtpcvfdepay.c:379:gst_avtp_cvf_depay_validate_avtpdu:<avtpcvfdepay0> Unexpected AVTP header seq num 166, expected 0
> 0:00:00.069178877  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
> 0:00:00.069188523  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 1 end: 0
> 0:00:00.069293505  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
> 0:00:00.069307743  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 0 end: 0
> ...
> 0:00:00.084477094  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
> 0:00:00.084485950  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 0 end: 1
> 0:00:00.084499930  3505 0x5566083a1850 LOG             avtpcvfdepay gstavtpcvfdepay.c:452:gst_avtp_cvf_depay_internal_push:<avtpcvfdepay0> Adding buffer of size 45829 (nalu size 45825) to out_buffer
> ...
> =====================================================
>
> P.S
> You might wonder what's this in the log....
> > 0:00:00.069168990 3505 0x5566083a1850 INFO avtpcvfdepay gstavtpcvfdepay.c:379:gst_avtp_cvf_depay_validate_avtpdu:<avtpcvfdepay0> Unexpected AVTP header seq num 166, expected 0
> This is because there is another AVTP message(AVDECC ADC) in the network.
> I do not think this is the problem.
> But please let me know if this is the problem..

It is not, you can see them being safely discarded with
"Unexpected AVTP header subtype 250, expected 3" message.

Cheers!

>
> Thanks !!
>
> John
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

John Rama
Thanks Desouza

> From the log, it appears that no avtp packet arrives with M bit set, so
> avtpcvfdepay keeps just accumulating nal units.
> Can you ensure that what is generating the stream is properly setting
> the M bit on the last access unit ("packet of a frame")? Wireshark can
> be of help here.
>

Confirmed the cvf stream generated by talker has no "M bit" set at all.
So, this is a reason. thank you so much for your help for me to reach this conclusion !!


Now question is does talker really need to set M bit ?

IEEE1722 section "8.5.2.4 M field" says
> The M field shall be set according to RFC6184, Section 5.1.

And RFC6184, Section 5.1 says
https://tools.ietf.org/html/rfc6184

>Marker bit (M): 1 bit
>Set for the very last packet of the access unit indicated by the
>RTP timestamp, in line with the normal use of the M bit in video
>formats, to allow an efficient playout buffer handling.
>  Decoders MAY use this bit as
>  an early indication of the last packet of an access unit but MUST
>  NOT rely on this property.

So this implies that it would be great if we can add the feature to the CVF plugin
to support the stream without M bit field set.

I can not say which AVB talker I'm using to generate the CVF stream,
but at least there is such AVB stack in the market.


John

On 2020/07/16 18:32, Desouza, Ederson wrote:

> On Thu, 2020-07-16 at 17:58 -0400, John Rama wrote:
>> Hello Desounza,
>>
>> Thanks again for your help on this.
>>
>>>> But Followings does not return no data...
>>>> $gst-launch-1.0 avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' fakesink dump=true
>>>> Setting pipeline to PAUSED ...
>>>> Pipeline is live and does not need PREROLL ...
>>>> Pipeline is PREROLLED ...
>>>> Setting pipeline to PLAYING ...
>>>> New clock: GstSystemClock
>>>>
>>>> Can you think of any reason why ?
>>>
>>> AVTP streams have a streamid - have you tried using:
>>>
>>> ... ! avtpcvfdepay streamid=<stream-id> ! ...
>>>
>>> Also note that you can get debug information from the avtp plugin with:
>>>
>>> GST_DEBUG=avtp*:<debug-level> gst-launch-1.0
>>>
>>> So you can check what the plugin is doing.
>>
>> gst-launch-1.0 --gst-debug-color-mode=off clockselect. '(clock-id=realtime' avtpsrc ifname=enp8s0 address=91:EF:00:00:FE:00 '!' avtpcvfdepay streamid=0x0123456789abcdef '!' fakesink dump=true ')'
>>
>> I put streamid and destination mac address, but I still have no success ( I can not see fakesink receives the data)...
>> According to the log (I attached whole log), avtpcvfdepay surely receive CVF stream, but does not pass them to the fakesink...
>> Any idea ??
>
> From the log, it appears that no avtp packet arrives with M bit set, so
> avtpcvfdepay keeps just accumulating nal units.
> Can you ensure that what is generating the stream is properly setting
> the M bit on the last access unit ("packet of a frame")? Wireshark can
> be of help here.
>
>>
>> =====================================================
>>
>> + GST_DEBUG='avtp*:7'
>> + gst-launch-1.0 --gst-debug-color-mode=off clockselect. '(clock-id=realtime' avtpsrc ifname=enp8s0 address=91:EF:00:00:FE:00 '!' avtpcvfdepay streamid=0x0123456789abcdef '!' fakesink dump=true ')'
>> 0:00:00.021076523  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:156:gst_avtp_src_set_property:<avtpsrc0> prop_id 1
>> 0:00:00.021102046  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:156:gst_avtp_src_set_property:<avtpsrc0> prop_id 2
>> 0:00:00.021151987  3505 0x5566083a1c00 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:142:gst_avtp_base_depayload_set_property:<avtpcvfdepay0> prop_id 1
>> Setting pipeline to PAUSED ...
>> 0:00:00.043151942  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:248:gst_avtp_src_start:<avtpsrc0> AVTP source started
>> Pipeline is live and does not need PREROLL ...
>> Pipeline is PREROLLED ...
>> Setting pipeline to PLAYING ...
>> 0:00:00.043562029  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event stream-start
>> New clock: DebugGstSystemClock
>> 0:00:00.043681756  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event caps
>> 0:00:00.069131412  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event segment
>> 0:00:00.069168990  3505 0x5566083a1850 INFO            avtpcvfdepay gstavtpcvfdepay.c:379:gst_avtp_cvf_depay_validate_avtpdu:<avtpcvfdepay0> Unexpected AVTP header seq num 166, expected 0
>> 0:00:00.069178877  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
>> 0:00:00.069188523  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 1 end: 0
>> 0:00:00.069293505  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
>> 0:00:00.069307743  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 0 end: 0
>> ...
>> 0:00:00.084477094  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
>> 0:00:00.084485950  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 0 end: 1
>> 0:00:00.084499930  3505 0x5566083a1850 LOG             avtpcvfdepay gstavtpcvfdepay.c:452:gst_avtp_cvf_depay_internal_push:<avtpcvfdepay0> Adding buffer of size 45829 (nalu size 45825) to out_buffer
>> ...
>> =====================================================
>>
>> P.S
>> You might wonder what's this in the log....
>>> 0:00:00.069168990 3505 0x5566083a1850 INFO avtpcvfdepay gstavtpcvfdepay.c:379:gst_avtp_cvf_depay_validate_avtpdu:<avtpcvfdepay0> Unexpected AVTP header seq num 166, expected 0
>> This is because there is another AVTP message(AVDECC ADC) in the network.
>> I do not think this is the problem.
>> But please let me know if this is the problem..
>
> It is not, you can see them being safely discarded with
> "Unexpected AVTP header subtype 250, expected 3" message.
>
> Cheers!
>
>>
>> Thanks !!
>>
>> John
>>

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

Desouza, Ederson
On Fri, 2020-07-17 at 09:37 -0400, John Rama wrote:

> Thanks Desouza
>
> > From the log, it appears that no avtp packet arrives with M bit set, so
> > avtpcvfdepay keeps just accumulating nal units.
> > Can you ensure that what is generating the stream is properly setting
> > the M bit on the last access unit ("packet of a frame")? Wireshark can
> > be of help here.
> >
>
> Confirmed the cvf stream generated by talker has no "M bit" set at all.
> So, this is a reason. thank you so much for your help for me to reach this conclusion !!
>
>
> Now question is does talker really need to set M bit ?

Well, IEEE 1722-2016, Annex F (Protocol Implementation Conformance
Statement), Table F.12, Item H.264-4 says that, *yes*, the talker
really need to set the M bit...

>
> IEEE1722 section "8.5.2.4 M field" says
> > The M field shall be set according to RFC6184, Section 5.1.
>
> And RFC6184, Section 5.1 says
> https://tools.ietf.org/html/rfc6184
>
> > Marker bit (M): 1 bit
> > Set for the very last packet of the access unit indicated by the
> > RTP timestamp, in line with the normal use of the M bit in video
> > formats, to allow an efficient playout buffer handling.
> >  Decoders MAY use this bit as
> >  an early indication of the last packet of an access unit but MUST
> >  NOT rely on this property.
>
> So this implies that it would be great if we can add the feature to the CVF plugin
> to support the stream without M bit field set.

One source of inspiration here could be the
gst-plugins-good/gstrtph264depay.c:gst_rtp_h264_depay_handle_nal() - it
has some code to guess where M should be. Look for "marker".

>
> I can not say which AVB talker I'm using to generate the CVF stream,
> but at least there is such AVB stack in the market.
>
>
> John
>
> On 2020/07/16 18:32, Desouza, Ederson wrote:
> > On Thu, 2020-07-16 at 17:58 -0400, John Rama wrote:
> > > Hello Desounza,
> > >
> > > Thanks again for your help on this.
> > >
> > > > > But Followings does not return no data...
> > > > > $gst-launch-1.0 avtpsrc ifname=enp8s0 '!' avtpcvfdepay '!' fakesink dump=true
> > > > > Setting pipeline to PAUSED ...
> > > > > Pipeline is live and does not need PREROLL ...
> > > > > Pipeline is PREROLLED ...
> > > > > Setting pipeline to PLAYING ...
> > > > > New clock: GstSystemClock
> > > > >
> > > > > Can you think of any reason why ?
> > > >
> > > > AVTP streams have a streamid - have you tried using:
> > > >
> > > > ... ! avtpcvfdepay streamid=<stream-id> ! ...
> > > >
> > > > Also note that you can get debug information from the avtp plugin with:
> > > >
> > > > GST_DEBUG=avtp*:<debug-level> gst-launch-1.0
> > > >
> > > > So you can check what the plugin is doing.
> > >
> > > gst-launch-1.0 --gst-debug-color-mode=off clockselect. '(clock-id=realtime' avtpsrc ifname=enp8s0 address=91:EF:00:00:FE:00 '!' avtpcvfdepay streamid=0x0123456789abcdef '!' fakesink dump=true ')'
> > >
> > > I put streamid and destination mac address, but I still have no success ( I can not see fakesink receives the data)...
> > > According to the log (I attached whole log), avtpcvfdepay surely receive CVF stream, but does not pass them to the fakesink...
> > > Any idea ??
> >
> > From the log, it appears that no avtp packet arrives with M bit set, so
> > avtpcvfdepay keeps just accumulating nal units.
> > Can you ensure that what is generating the stream is properly setting
> > the M bit on the last access unit ("packet of a frame")? Wireshark can
> > be of help here.
> >
> > > =====================================================
> > >
> > > + GST_DEBUG='avtp*:7'
> > > + gst-launch-1.0 --gst-debug-color-mode=off clockselect. '(clock-id=realtime' avtpsrc ifname=enp8s0 address=91:EF:00:00:FE:00 '!' avtpcvfdepay streamid=0x0123456789abcdef '!' fakesink dump=true ')'
> > > 0:00:00.021076523  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:156:gst_avtp_src_set_property:<avtpsrc0> prop_id 1
> > > 0:00:00.021102046  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:156:gst_avtp_src_set_property:<avtpsrc0> prop_id 2
> > > 0:00:00.021151987  3505 0x5566083a1c00 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:142:gst_avtp_base_depayload_set_property:<avtpcvfdepay0> prop_id 1
> > > Setting pipeline to PAUSED ...
> > > 0:00:00.043151942  3505 0x5566083a1c00 DEBUG                avtpsrc gstavtpsrc.c:248:gst_avtp_src_start:<avtpsrc0> AVTP source started
> > > Pipeline is live and does not need PREROLL ...
> > > Pipeline is PREROLLED ...
> > > Setting pipeline to PLAYING ...
> > > 0:00:00.043562029  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event stream-start
> > > New clock: DebugGstSystemClock
> > > 0:00:00.043681756  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event caps
> > > 0:00:00.069131412  3505 0x5566083a1850 DEBUG      avtpbasedepayload gstavtpbasedepayload.c:178:gst_avtp_base_depayload_sink_event:<avtpcvfdepay0> event segment
> > > 0:00:00.069168990  3505 0x5566083a1850 INFO            avtpcvfdepay gstavtpcvfdepay.c:379:gst_avtp_cvf_depay_validate_avtpdu:<avtpcvfdepay0> Unexpected AVTP header seq num 166, expected 0
> > > 0:00:00.069178877  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
> > > 0:00:00.069188523  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 1 end: 0
> > > 0:00:00.069293505  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
> > > 0:00:00.069307743  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 0 end: 0
> > > ...
> > > 0:00:00.084477094  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:582:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment indicator - NRI: 2
> > > 0:00:00.084485950  3505 0x5566083a1850 DEBUG           avtpcvfdepay gstavtpcvfdepay.c:590:gst_avtp_cvf_depay_handle_fu_a:<avtpcvfdepay0> Fragment header - type: 1 start: 0 end: 1
> > > 0:00:00.084499930  3505 0x5566083a1850 LOG             avtpcvfdepay gstavtpcvfdepay.c:452:gst_avtp_cvf_depay_internal_push:<avtpcvfdepay0> Adding buffer of size 45829 (nalu size 45825) to out_buffer
> > > ...
> > > =====================================================
> > >
> > > P.S
> > > You might wonder what's this in the log....
> > > > 0:00:00.069168990 3505 0x5566083a1850 INFO avtpcvfdepay gstavtpcvfdepay.c:379:gst_avtp_cvf_depay_validate_avtpdu:<avtpcvfdepay0> Unexpected AVTP header seq num 166, expected 0
> > > This is because there is another AVTP message(AVDECC ADC) in the network.
> > > I do not think this is the problem.
> > > But please let me know if this is the problem..
> >
> > It is not, you can see them being safely discarded with
> > "Unexpected AVTP header subtype 250, expected 3" message.
> >
> > Cheers!
> >
> > > Thanks !!
> > >
> > > John
> > >
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: gst-plugins-bad: avtp: error on gst_avtp_src_start:<avtpsrc0> Failed to open socket: Operation not permitted

John Rama
Desounza,

>> Now question is does talker really need to set M bit ?
>
> Well, IEEE 1722-2016, Annex F (Protocol Implementation Conformance
> Statement), Table F.12, Item H.264-4 says that, *yes*, the talker
> really need to set the M bit...
>
Oh, Yes. It's described so. I did not notice that.
Thank you for pointing out.

>>
>> IEEE1722 section "8.5.2.4 M field" says
>>> The M field shall be set according to RFC6184, Section 5.1.
>>
>> And RFC6184, Section 5.1 says
>> https://tools.ietf.org/html/rfc6184
>>
>>> Marker bit (M): 1 bit
>>> Set for the very last packet of the access unit indicated by the
>>> RTP timestamp, in line with the normal use of the M bit in video
>>> formats, to allow an efficient playout buffer handling.
>>>  Decoders MAY use this bit as
>>>  an early indication of the last packet of an access unit but MUST
>>>  NOT rely on this property.
>>
>> So this implies that it would be great if we can add the feature to the CVF plugin
>> to support the stream without M bit field set.
>
> One source of inspiration here could be the
> gst-plugins-good/gstrtph264depay.c:gst_rtp_h264_depay_handle_nal() - it
> has some code to guess where M should be. Look for "marker".

Yes, I have already noticed this code, and seems not so hard to implement.
I'll update this post if I could make some progress here.

Anyway, thank you so much for your help !!
Really appreciated.

John
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel