Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dropping old buffer - queue has 11 items #89

Open
shabaz123 opened this issue Dec 12, 2021 · 9 comments
Open

Dropping old buffer - queue has 11 items #89

shabaz123 opened this issue Dec 12, 2021 · 9 comments

Comments

@shabaz123
Copy link

Hello,

I'm new to this plugin, but I think I have built it correctly, and I have tried the following pipeline, where 192.168.1.85:5961 is the IP address/port of an NDI source (found using gst-device-monitor-1.0), and host=192.168.1.250 port=1234 is the address of the destination machine running VLC Media Player with an appropriate SDP file. No image appears, and I have run tshark, and see no UDP packets generated.

gst-launch-1.0 --gst-debug=3 ndisrc url-address=192.168.1.85:5961 ! ndisrcdemux name=demux demux.video ! videoconvert ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=192.168.1.250 port=1234 demux.audio ! fakesink sync=false

When I run it, I see the following debug output:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
0:00:00.082723224  1950   0x559fb55000 FIXME                default gstutils.c:3981:gst_pad_create_stream_id_internal:<ndisrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
0:00:02.063782791  1950   0x7f68003530 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.130537229  1950   0x7f68003530 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.323813387  1950   0x7f68003530 WARN             ndireceiver src/receiver.rs:353:gstndi::receiver:<ndisrc0> Delta 1033615241 too far from skew 265757, resetting
0:00:02.327066490  1950   0x7f68003530 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items

I don't know if I'm doing something wrong, or if it is an issue with the plugin. How can I troubleshoot this further?
Is the pipeline incorrect, how should I change it?

Apologies if this is a silly issue at my end; I've spent a day troubleshooting, and tried to figure it out on my own, but would appreciate a helping hand.

Many thanks.

@sdroege
Copy link
Contributor

sdroege commented Dec 13, 2021

Like in the README.md, you have to add big enough queues after both source pads of ndisrcdemux. That will likely solve it.

@shabaz123
Copy link
Author

Thank you for the response, I had tried with and without queue, but both fail for me. I have attached a level 4 debug below.

gst-launch-1.0 --gst-debug=4 ndisrc url-address=192.168.1.85:5961 ! ndisrcdemux name=demux demux.video ! queue ! videoconvert ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=192.168.1.250 port=1234 demux.audio ! queue ! fakesink sync=false

Result (level 4 debug):
debuglevel4.txt

Level 3 debug:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
0:00:00.084467023 12366   0x5597c836d0 FIXME                default gstutils.c:3981:gst_pad_create_stream_id_internal:<ndisrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Redistribute latency...
Redistribute latency...
0:00:02.229755868 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.283460188 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.335539832 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:353:gstndi::receiver:<ndisrc0> Delta 1044645150 too far from skew 51112, resetting
0:00:02.338128387 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.398646108 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.582945435 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.587964259 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.592667607 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items
0:00:02.647812224 12366   0x7f68003470 WARN             ndireceiver src/receiver.rs:755:gstndi::receiver:<ndisrc0> Dropping old buffer -- queue has 11 items

@shabaz123
Copy link
Author

Hello, I was wondering, is there any other debug I should try, to troubleshoot this further?
Many thanks.

@shabaz123
Copy link
Author

Just noticed a closed issue, #86 that was created by @danjenkins
I think I may be hitting the same issue, since I'm using HX as well. I'm using the Android HX Camera App.
I've reached out to NewTek to request the Linux/ARM Advanced NDI SDK with the potential fix. I'll close this issue if it turns out to be the same thing.

@Rajiv91
Copy link

Rajiv91 commented Jul 22, 2023

Hey @shabaz123 i'm seing the same issue with a birddog camera, no matter how big are my queues the problem persists.
Were you able to solve it?

@shabaz123
Copy link
Author

Hello,
I still have this issue.

:gstndi::receiver: Dropping old buffer -- queue has 11 items
0:00:17.529585863 12401 0x7f58003470 WARN ndireceiver src/receiver.rs:736:gstndi::receiver: Dropping old buffer -- queue has 11 items
0:00:17.563872836 12401 0x7f58003470 WARN ndireceiver src/receiver.rs:736:gstndi::receiver: Dropping old buffer -- queue has 11 items
0:00:17.592449759 12401 0x7f58003470 WARN ndireceiver src/receiver.rs:736:gstndi::receiver: Dropping old buffer -- queue has 11 items

I'm running it on an ARM-based Linux platform, if that makes any difference.

@Rajiv91
Copy link

Rajiv91 commented Oct 5, 2023

Hey @shabaz123, in my case i was able to solve the issue adding an async property to the fakesing element:
fakesink sync=false async=false

@shabaz123
Copy link
Author

shabaz123 commented Oct 5, 2023

Hi @Rajiv91
Thank you! That gets me a lot further.
I used this syntax (on my ARM device):

gst-launch-1.0 --gst-debug=4 ndisrc url-address=192.168.1.91:5961 ! ndisrcdemux name=demux demux.video ! queue ! videoconvert ! x264enc tune=zerolatency bitrate=500 speed-preset=superfast ! rtph264pay ! udpsink host=192.168.1.250 port=1234 demux.audio ! queue ! fakesink sync=false async=false

For the video source, I am using the Android NDI HX app.

I see this output:

gstbin.c:2623:gst_bin_element_set_state:<ndisrc0> skipping transition from PLAYING to  PLAYING
0:00:00.492219264 23527   0x7f88004680 INFO              GST_STATES gstbin.c:2954:gst_bin_change_state_func:<pipeline0> child 'ndisrc0' changed state to 4(PLAYING) successfully
0:00:00.492272130 23527   0x7f88004680 INFO              GST_STATES gstelement.c:2676:gst_element_continue_state:<pipeline0> completed state change to PLAYING
0:00:00.492305047 23527   0x7f88004680 INFO              GST_STATES gstelement.c:2579:_priv_gst_element_state_changed:<pipeline0> notifying about state-changed PAUSED to PLAYING (VOID_PENDING pending)
0:00:01.438288176 23527   0x7f7c003470 WARN             ndireceiver src/receiver.rs:345:gstndi::receiver:<ndisrc0> Delta 1012482166 too far from skew 72852, resetting
0:00:02.440498586 23527   0x7f7c003470 WARN             ndireceiver src/receiver.rs:345:gstndi::receiver:<ndisrc0> Delta 1002227963 too far from skew 251802, resetting
0:00:03.446071733 23527   0x7f7c003470 WARN             ndireceiver src/receiver.rs:345:gstndi::receiver:<ndisrc0> Delta 1005582001 too far from skew 465167, resetting
0:00:04.451576649

The VLC Player has the following file (which I called h264.sdp) contents:

c=IN IP4 127.0.0.1
m=video 1234 RTP/AVP 96
a=rtpmap:96 H264/90000

However I do not see any video appear, but I do see this message displayed in VLC Media Player:
vlc-display

Do you know what I may be doing wrong here? From the message displayed on the VLC player, it sounds like the NDI decoder is not installed, but I did install it. Here is the output from gst-inspect-1.0 ndi:

gst-inspect-1.0 ndi
Plugin Details:
  Name                     ndi
  Description              NewTek NDI Plugin
  Filename                 /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstndi.so
  Version                  1.0.0-12656af
  License                  LGPL
  Source module            gst-plugin-ndi
  Source release date      2022-04-09
  Binary package           gst-plugin-ndi
  Origin URL               https://github.com/teltek/gst-plugin-ndi

  ndideviceprovider: NewTek NDI Device Provider
  ndisrc: NewTek NDI Source
  ndisrcdemux: NewTek NDI Source Demuxer

  3 features:
  +-- 2 elements
  +-- 1 device providers

The SDK is correctly installed I believe, because I was successfully able to run an example application:
:~/development/ndi/ndi_adv_sdk/examples/C++/NDIlib_Send_PNG
and I was able to successfully see an image file as video, using the NDI Studio Monitor software on the Windows PC.

Is it a problem with the NDI HX app do you think? If so, is there any other NDI app to try? I do not have any other NDI source.
My actual goal was to use a mobile phone (I don't mind what app, it doesn't have to be the NDI HX app if there is another one), and so I do not have any other suitable video source since the goal is to use mobile.

I'm a newcomer to NDI so apologies if I'm asking very basic things! If you have a suggestion for what the gst-launch syntax should be, or what I should place in the VLC player file, then it would be gratefully appreciated.
Thank you for all the help so far!

@ajit1433
Copy link

ajit1433 commented Jan 7, 2024

Hi @shabaz123,
Were you able to get past this "Video decoder not found" message?

@Rajiv91 If you can share something, that would be great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants