Failed delayed linking some pad of GstRTSPSrc named rtspsrc0 to some pad of GstQTDemux named demux!

I am using Jetson AGX Xavier.

This is the pipeline I am using:
gst-launch-1.0 rtspsrc location=‘rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103’ ! qtdemux name=demux! queue ! h264parse ! nvv4l2decoder ! nvvideoconvert ! nveglglessink

This is the output:
Setting pipeline to PAUSED …

Using winsys: x11
Opening in BLOCKING MODE
Pipeline is live and does not need PREROLL …
Got context from element ‘eglglessink0’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (open) Opened Stream
Setting pipeline to PLAYING …
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
WARNING: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Delayed linking failed.
Additional debug info:
./grammar.y(510): gst_parse_no_more_pads (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
failed delayed linking some pad of GstRTSPSrc named rtspsrc0 to some pad of GstQTDemux named demux!
ERROR: from element /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1: Internal data stream error.
Additional debug info:
gstbasesrc.c(3055): gst_base_src_loop (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0/GstUDPSrc:udpsrc1:
streaming stopped, reason not-linked (-1)
Execution ended after 0:00:00.457519337
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …

Pls suggest what’s wrong here?

Thanks.

Hi,
It should be rtph264depay after rtspsrc. Please try

gst-launch-1.0 rtspsrc location='rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103' ! <b>rtph264depay</b> ! queue ! h264parse ! nvv4l2decoder ! nvvideoconvert ! nveglglessink

Reference links:
https://devtalk.nvidia.com/default/topic/1014789/jetson-tx1/-the-cpu-usage-cannot-down-use-cuda-decode-/post/5188538/#5188538
https://devtalk.nvidia.com/default/topic/1043770/jetson-tx2/problems-minimizing-latency-and-maximizing-quality-for-rtsp-and-mpeg-ts-/post/5295828/#5295828

Thank you for the response.

With this command:
gst-launch-1.0 rtspsrc location=‘rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103’ ! rtph264depay ! queue ! h264parse ! nvv4l2decoder ! nvvideoconvert ! nveglglessink

This is the output:

Setting pipeline to PAUSED …

Using winsys: x11
Opening in BLOCKING MODE
Pipeline is live and does not need PREROLL …
Got context from element ‘eglglessink0’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Progress: (open) Opening Stream
Progress: (connect) Connecting to rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103
Progress: (open) Retrieving server options
Progress: (open) Retrieving media info
Progress: (request) SETUP stream 0
Progress: (open) Opened Stream
Setting pipeline to PLAYING …
New clock: GstSystemClock
Progress: (request) Sending PLAY request
Progress: (request) Sending PLAY request
Progress: (request) Sent PLAY request
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261

(gst-launch-1.0:10815): GStreamer-CRITICAL **: 19:19:04.612: gst_mini_object_unref: assertion ‘mini_object != NULL’ failed
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
^Chandling interrupt.
Interrupt: Stopping pipeline …
Execution ended after 0:11:54.781073316
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …

I do not see any graphical output from the pipeline. It stays blank.
Elsewhere I read that the CRITICAL error is due to gstreamerXX-ffmpeg not installed. But I see no such package in Jetson AGX.


To be sure, I have done: export DISPLAY=:0


1 Like

The pipeline works with a HDMI connected monitor but not with ssh -X or -Y.

This is good enough for my purposes as I need to do appsink and retrieve the RGBA buffer.

Thank you for the support.

Regards.

I have moved the pipeline to C code replacing nveglglessink with appsink.

I get the following error:
(appsink:11281): GLib-GObject-CRITICAL **: 15:09:49.871: g_object_set: assertion ‘G_IS_OBJECT (object)’ failed

(appsink:11281): GLib-GObject-WARNING **: 15:09:49.871: invalid (NULL) pointer instance

(appsink:11281): GLib-GObject-CRITICAL **: 15:09:49.871: g_signal_connect_data: assertion ‘G_TYPE_CHECK_INSTANCE (instance)’ failed

(appsink:11281): GStreamer-CRITICAL **: 15:09:49.872: gst_object_unref: assertion ‘object != NULL’ failed
Opening in BLOCKING MODE
Let’s run!
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261

(appsink:11281): GStreamer-CRITICAL **: 15:09:51.403: gst_mini_object_unref: assertion ‘mini_object != NULL’ failed
NvMMLiteOpen : Block : BlockType = 261
NVMEDIA: Reading vendor.tegra.display-size : status: 6
NvMMLiteBlockCreate : Block : BlockType = 261
^C

This is my sample code that I am working on.

static GstFlowReturn
on_new_sample_from_sink (GstElement * elt, ProgramData * data)
{
  GstSample *sample;
  GstBuffer *app_buffer, *buffer;
  GstElement *source;
  GstFlowReturn ret;

  /* get the sample from appsink */
  sample = gst_app_sink_pull_sample (GST_APP_SINK (elt));
  buffer = gst_sample_get_buffer (sample);

  /* make a copy */
  app_buffer = gst_buffer_copy (buffer);

  printf("buffer size=%d\n",(int)gst_buffer_get_size(app_buffer));

  /* we don't need the appsink sample anymore */
  gst_sample_unref (sample);

  /* get source an push new buffer */
  //source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
  //ret = gst_app_src_push_buffer (GST_APP_SRC (source), app_buffer);
  //gst_object_unref (source);

  return ret;
}

static gboolean
on_source_message (GstBus * bus, GstMessage * message, ProgramData * data)
{
  GstElement *source;

  switch (GST_MESSAGE_TYPE (message)) {
    case GST_MESSAGE_EOS:
      g_print ("The source got dry\n");
      //source = gst_bin_get_by_name (GST_BIN (data->sink), "testsource");
      //gst_app_src_end_of_stream (GST_APP_SRC (source));
      gst_object_unref (source);
      break;
    case GST_MESSAGE_ERROR:
      g_print ("Received error\n");
      g_main_loop_quit (data->loop);
      break;
    default:
      break;
  }
  return TRUE;
}

int
main (int argc, char *argv[])
{
  gchar *filename = NULL;
  ProgramData *data = NULL;
  gchar *string = NULL;
  GstBus *bus = NULL;
  GstElement *testsink = NULL;
  GstElement *testsource = NULL;

  gst_init (&argc, &argv);

  if (argc == 2)
    filename = g_strdup (argv[1]);
  else
    filename = g_strdup ("rtspsrc location='rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103' ! rtph264depay ! queue ! h264parse ! nvv4l2decoder ! nvvideoconvert ! appsink");

  /*
  if (!g_file_test (filename, G_FILE_TEST_EXISTS)) {
    g_print ("File %s does not exist\n", filename);
    g_free (filename);
    return -1;
  }
  */

  data = g_new0 (ProgramData, 1);

  data->loop = g_main_loop_new (NULL, FALSE);

  /* setting up source pipeline, we read from a file and convert to our desired
   * caps. */
  string =
      g_strdup_printf
      ("rtspsrc location=rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103 ! rtph264depay ! queue ! h264parse ! nvv4l2decoder ! nvvideoconvert ! appsink");

  g_free (filename);

  data->source = gst_parse_launch (string, NULL);
  g_free (string);

  if (data->source == NULL) {
    g_print ("Bad source\n");
    g_main_loop_unref (data->loop);
    g_free (data);
    return -1;
  }

  /* to be notified of messages from this pipeline, mostly EOS */
  bus = gst_element_get_bus (data->source);
  gst_bus_add_watch (bus, (GstBusFunc) on_source_message, data);
  gst_object_unref (bus);

  /* we use appsink in push mode, it sends us a signal when data is available
   * and we pull out the data in the signal callback. We want the appsink to
   * push as fast as it can, hence the sync=false */
  testsink = gst_bin_get_by_name (GST_BIN (data->source), "testsink");
  g_object_set (G_OBJECT (testsink), "emit-signals", TRUE, "sync", FALSE, NULL);
  g_signal_connect (testsink, "new-sample",
      G_CALLBACK (on_new_sample_from_sink), data);
  gst_object_unref (testsink);

  /* launching things */
  gst_element_set_state (data->source, GST_STATE_PLAYING);

  /* let's run !, this loop will quit when the sink pipeline goes EOS or when an
   * error occurs in the source or sink pipelines. */
  g_print ("Let's run!\n");
  g_main_loop_run (data->loop);
  g_print ("Going out\n");

  gst_element_set_state (data->source, GST_STATE_NULL);

  gst_object_unref (data->source);
  gst_object_unref (data->sink);
  g_main_loop_unref (data->loop);
  g_free (data);

  return 0;
}

Do you have any suggestions?

Hi,
You may run

rtspsrc location=rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103 ! rtph264depay ! queue ! h264parse ! nvv4l2decoder ! nvvideoconvert( or nvvidconv ) ! video/x-raw,format=I420 ! appsink

To get I420 GstBuffer in appsink.

Two samples of using appsink:
https://devtalk.nvidia.com/default/topic/1011376/jetson-tx1/gstreamer-decode-live-video-stream-with-the-delay-difference-between-gst-launch-1-0-command-and-appsink-callback/post/5160929/#5160929
https://devtalk.nvidia.com/default/topic/1010111/jetson-tx1/nvmm-memory/post/5158652/#5158652

Thank you for your support.

I tried your suggestions.

With this pipeline:

"rtspsrc location=rtsp://admin:admin12345@192.168.1.21:554/Streaming/Channels/103  ! rtph264depay ! queue ! h264parse ! nvv4l2decoder ! nvvidconv ! video/x-raw,format=I420,width=1280,height=720 ! appsink"

I am still getting these errors:

(appsink:15085): GLib-GObject-CRITICAL **: 18:03:02.518: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(appsink:15085): GLib-GObject-WARNING **: 18:03:02.519: invalid (NULL) pointer instance

(appsink:15085): GLib-GObject-CRITICAL **: 18:03:02.519: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(appsink:15085): GStreamer-CRITICAL **: 18:03:02.519: gst_object_unref: assertion 'object != NULL' failed
Opening in BLOCKING MODE 
Let's run!
NvMMLiteOpen : Block : BlockType = 261 
NVMEDIA: Reading vendor.tegra.display-size : status: 6 
NvMMLiteBlockCreate : Block : BlockType = 261 

(appsink:15085): GStreamer-CRITICAL **: 18:03:03.058: gst_mini_object_unref: assertion 'mini_object != NULL' failed
NvMMLiteOpen : Block : BlockType = 261 
NVMEDIA: Reading vendor.tegra.display-size : status: 6 
NvMMLiteBlockCreate : Block : BlockType = 261

I have also tried adding width and height to format specifier in video/x-raw.


With GST_DEBUG set to 3, the following errors are seen:

export GST_DEBUG="*:3";./appsink

(appsink:15289): GLib-GObject-CRITICAL **: 18:48:17.065: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(appsink:15289): GLib-GObject-WARNING **: 18:48:17.066: invalid (NULL) pointer instance

(appsink:15289): GLib-GObject-CRITICAL **: 18:48:17.066: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(appsink:15289): GStreamer-CRITICAL **: 18:48:17.066: gst_object_unref: assertion 'object != NULL' failed
Opening in BLOCKING MODE 
0:00:00.190503234 15289   0x559f72c410 WARN                    v4l2 gstv4l2object.c:4408:gst_v4l2_object_probe_caps:<nvv4l2decoder0:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:00.190713805 15289   0x559f72c410 WARN                    v4l2 gstv4l2object.c:2370:gst_v4l2_object_add_interlace_mode:0x559f711210 Failed to determine interlace mode
Let's run!
0:00:00.290936992 15289   0x7f98054230 FIXME                default gstutils.c:3981:gst_pad_create_stream_id_internal:<fakesrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
0:00:00.694341640 15289   0x559f724050 FIXME               basesink gstbasesink.c:3145:gst_base_sink_default_event:<appsink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
NvMMLiteOpen : Block : BlockType = 261 
NVMEDIA: Reading vendor.tegra.display-size : status: 6 
NvMMLiteBlockCreate : Block : BlockType = 261 

(appsink:15289): GStreamer-CRITICAL **: 18:48:17.605: gst_mini_object_unref: assertion 'mini_object != NULL' failed
NvMMLiteOpen : Block : BlockType = 261 
NVMEDIA: Reading vendor.tegra.display-size : status: 6 
NvMMLiteBlockCreate : Block : BlockType = 261 
0:00:00.827671497 15289   0x559f724050 WARN                    v4l2 gstv4l2object.c:4408:gst_v4l2_object_probe_caps:<nvv4l2decoder0:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:00.827794767 15289   0x559f724050 WARN                    v4l2 gstv4l2object.c:2370:gst_v4l2_object_add_interlace_mode:0x559f711210 Failed to determine interlace mode
0:00:00.829764367 15289   0x559f724050 WARN            v4l2videodec gstv4l2videodec.c:1433:gst_v4l2_video_dec_decide_allocation:<nvv4l2decoder0> Duration invalid, not setting latency
0:00:00.830631577 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1054:gst_v4l2_buffer_pool_start:<nvv4l2decoder0:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:00.836116804 15289   0x7f98007f70 WARN          v4l2bufferpool gstv4l2bufferpool.c:1518:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:src> Driver should never set v4l2_buffer.field to ANY
0:00:02.767310518 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.767746188 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.767996952 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.768659608 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.770704796 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.780937198 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.789271716 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.793908902 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.885363566 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.886179542 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:02.964982678 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:03.083673357 15289   0x559f724050 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
.......
.......
.......

test2.cpp attached in the thread:
https://devtalk.nvidia.com/default/topic/1011376/jetson-tx1/gstreamer-decode-live-video-stream-with-the-delay-difference-between-gst-launch-1-0-command-and-appsink-callback/post/5160929/#5160929

produces the same output as well.

Using launch string: filesrc location=sample_720p.mp4 ! decodebin ! nvvidconv ! video/x-raw, format=I420, width=1280, height=720 ! appsink name=mysink 
0:00:00.150269945 16294   0x55757d6e60 WARN                 basesrc gstbasesrc.c:3583:gst_base_src_start_complete:<filesrc0> pad not activated yet
0:00:00.178273606 16294   0x7f7807b770 WARN                 qtdemux qtdemux_types.c:233:qtdemux_type_get: unknown QuickTime node type sgpd
0:00:00.178405068 16294   0x7f7807b770 WARN                 qtdemux qtdemux_types.c:233:qtdemux_type_get: unknown QuickTime node type sbgp
0:00:00.178523282 16294   0x7f7807b770 WARN                 qtdemux qtdemux.c:3031:qtdemux_parse_trex:<qtdemux0> failed to find fragment defaults for stream 1
0:00:00.178935687 16294   0x7f7807b770 WARN                 qtdemux qtdemux.c:3031:qtdemux_parse_trex:<qtdemux0> failed to find fragment defaults for stream 2
Opening in BLOCKING MODE 
0:00:00.424130306 16294   0x7f70014590 WARN                    v4l2 gstv4l2object.c:4408:gst_v4l2_object_probe_caps:<nvv4l2decoder0:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:00.424368302 16294   0x7f70014590 WARN                    v4l2 gstv4l2object.c:2370:gst_v4l2_object_add_interlace_mode:0x7f68020040 Failed to determine interlace mode
NvMMLiteOpen : Block : BlockType = 261 
NVMEDIA: Reading vendor.tegra.display-size : status: 6 
NvMMLiteBlockCreate : Block : BlockType = 261 
0:00:00.538144246 16294   0x7f70014590 WARN                    v4l2 gstv4l2object.c:4408:gst_v4l2_object_probe_caps:<nvv4l2decoder0:src> Failed to probe pixel aspect ratio with VIDIOC_CROPCAP: Unknown error -1
0:00:00.538257148 16294   0x7f70014590 WARN                    v4l2 gstv4l2object.c:2370:gst_v4l2_object_add_interlace_mode:0x7f68020040 Failed to determine interlace mode
0:00:00.540987779 16294   0x7f70014590 WARN            v4l2videodec gstv4l2videodec.c:1433:gst_v4l2_video_dec_decide_allocation:<nvv4l2decoder0> Duration invalid, not setting latency
0:00:00.541638339 16294   0x7f70014590 WARN          v4l2bufferpool gstv4l2bufferpool.c:1054:gst_v4l2_buffer_pool_start:<nvv4l2decoder0:pool:src> Uncertain or not enough buffers, enabling copy threshold
0:00:00.546195973 16294   0x7f70014590 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:00.548426740 16294   0x7f70014590 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:00.548805415 16294   0x7f70014590 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:00.549628624 16294   0x7f70014590 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:00.549877148 16294   0x7f70014590 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:00.550286832 16294   0x7f70014de0 WARN          v4l2bufferpool gstv4l2bufferpool.c:1518:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:src> Driver should never set v4l2_buffer.field to ANY
0:00:00.551341572 16294   0x7f70014590 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
0:00:00.589358721 16294   0x7f70014590 WARN          v4l2bufferpool gstv4l2bufferpool.c:1474:gst_v4l2_buffer_pool_dqbuf:<nvv4l2decoder0:pool:sink> v4l2 provided buffer that is too big for the memory it was writing into.  v4l2 claims 976 bytes used but memory is only 0B.  This is probably a driver bug.
.......
.......
.......

This is possibly some other issue.

Do you have any suggestions?


Hi,
Looks like decoding is on-going. Please enable the following print and check if new_buffer() callback is executed each frame.

printf("map.size = %lu\n", map.size);

It works. Thanks for your help.