AppSrc resolution restrictions

Ilya Aleshkov ilya.aleshkov at gmail.com
Thu Nov 21 18:23:15 UTC 2019


Hi Nicolas,

Thank you so much! I've never heard about buffer metadata.

Now I'm able to specify metadata for a GRAY8  buffer:
gsize offset[1] = { 0 };
gint stride[1] = { width };
gst_buffer_add_video_meta_full(buffer,
GST_VIDEO_FRAME_FLAG_NONE, GST_VIDEO_FORMAT_GRAY8, width, height,
    1, offset, stride); // single plane, zero offset and stride equal to
width

But I'm stuck dealing with my RGB buffers. I have some observations:
1 ) gst_buffer_add_video_meta(buffer ,
GST_VIDEO_FRAME_FLAG_NONE, GST_VIDEO_FORMAT_RGB, width, height); // It
allows me to use an arbitrary resolution. But I've got a distorted image.
Artifacts look like errors with strides.
2 ) gst_buffer_add_video_meta_full (buffer ,
GST_VIDEO_FRAME_FLAG_NONE, GST_VIDEO_FORMAT_RGB, width, height, 3, ...);
// It leaves me with error "gst_video_frame_map_id: assertion
'info->finfo->n_planes == meta->n_planes' failed".
3 ) gst_buffer_add_video_meta_full (buffer ,
GST_VIDEO_FRAME_FLAG_NONE, GST_VIDEO_FORMAT_RGB, width, height, 1, ...);
// I've got the same distorted image again.

Thanks,
Ilya

On Tue, Nov 19, 2019 at 4:40 AM Nicolas Dufresne <nicolas at ndufresne.ca>
wrote:

> Le lundi 18 novembre 2019 à 23:18 +0300, Ilya Aleshkov a écrit :
> > Hi,
> >
> > I am trying to feed a 658x492 frame to AppSrc element.
> > And I always get the same error: default
> video-frame.c:175:gst_video_frame_map_id: invalid buffer size 971208 <
> 972192
> > It seems that AppSrc element just can't adopt this particular resolution
> - 658x492 (and some others too).
> > It's relatively easy to fix by slightly changing the resolution
> (660x490). I wonder why.
> > How to deal with it in proper way? I would not want to crop/resize my
> frames.
>
> You forgot to mention which pixel formats. GStreamer will assume some
> default alignments which do make sense for memory access. If you don't
> follow the default alignment then add GstVideMeta on the buffer to
> specify. This can be done using gst_buffer_add_video_meta_full() prior
> to pushing.
>
> Note that some software element don't fully check their alignments and
> will just crash in some cases. Feel free to fix as needed.
>
> Nicolas
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20191121/e70d4de7/attachment-0001.html>


More information about the gstreamer-devel mailing list