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

John Rama john.rama01 at gmail.com
Fri Jul 17 13:37:27 UTC 2020


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
>>



More information about the gstreamer-devel mailing list