Discrepancy in byte count when reading from appsink with NV16_10LE32 and NV16 formats

Israel Díaz isra601988 at gmail.com
Wed Jun 14 15:05:42 UTC 2023


Hello GStreamer developers,

I have a question regarding reading bytes from an appsink in a GStreamer
pipeline. I have set up a pipeline using the "videotestsrc" source with two
different video formats: "NV16_10LE32" and "NV16". Here are the pipelines I
am using:

1. With NV16_10LE32 format:
videotestsrc is-live=true !
video/x-raw,width=1920,height=1080,framerate=30/1,format=(string)NV16_10LE32
! appsink name=videosourcesink


2. With NV16 format:
videotestsrc is-live=true !
video/x-raw,width=1920,height=1080,framerate=30/1,format=(string)NV16 !
appsink name=videosourcesink


I have implemented a callback function for the appsink, where I attempt to
read the bytes from the received buffer. Here is the callback function
implementation:

```
GstFlowReturn
VDRE2GStreamerCaptureEncodingSourceTask::on_new_sample_from_videoSource_sink(GstElement
*elt, ProgramData *data)
{
  GstSample *sample;
  GstBuffer *app_buffer, *buffer;
  GstElement *source;
  GstFlowReturn ret;
  GstMapInfo map;

  // ...

  sample = gst_app_sink_pull_sample(GST_APP_SINK(elt));
  buffer = gst_sample_get_buffer(sample);

  app_buffer = gst_buffer_copy(buffer);
  gst_buffer_map(app_buffer, &map, GST_MAP_WRITE);

  g_print("Array size: %ld \n", map.size);

  // ...

  gst_buffer_unmap(app_buffer, &map);
  gst_object_unref(source);
  gst_sample_unref(sample);

  return ret;
}
```

My issue is as follows: when using the NV16_10LE32 (4:2:2 10 bits per
component packed to 16) format, where a frame size of* 8294400* bytes is
expected (resolution 1920x1080), I am getting a size of *5529600 *bytes
instead. However, when I switch to the NV16 (4:2:2 8 bits per component)
format, where a size of 4147200 bytes is expected, I get the correct result.

My question is: What could be causing this discrepancy in the byte count
between the NV16_10LE32 and NV16 formats? Is there something wrong with my
implementation or the pipeline configuration?

I appreciate your help and guidance in resolving this issue. If you need
any additional information or further details, I would be happy to provide
them.

Thank you,
Israel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20230614/a36210dc/attachment.htm>


More information about the gstreamer-devel mailing list