Grabbing frames from GStreamer pipeline
Kiran Kumar
kirank3240 at gmail.com
Tue Jun 14 19:34:53 UTC 2016
Hi,
Sorry for the confusion. Even I am able to pass full 1920x1080 frames.
But,
GstMapInfo map;
gst_buffer_map(buffer, &map, GST_MAP_READ);
Here, the size of "map.data" which is "map.size" will always be 4096 bytes
for each chunk of data (I get multiple chunks, so that the entire frame is
streamed). How to increase this chunk size? So that I get more data in a
single chunk itself.
For example if a video frame is 512x512x8 (bit depth)=2097152 bits. And at
the appsink I don't want 4096 bytes to be transferred 64 times to transfer
the entire frame. I want 2097152 bits to be available in a single shot at
appsink so that I can copy this data in a buffer of size 2097152 bits and
pass this buffer to my application for image processing.
One of the filter which I am using in my image processing application needs
the entire frame as its input and not in the form of chunks.
Or, is there a way in which I can accumulate these chunks into a single
buffer? In case of a video sequence each frame needs to be associated with
a particular buffer.
Thanks,
Kiran
On Mon, Jun 13, 2016 at 10:51 PM, Thornton, Keith <keith.thornton at zeiss.com>
wrote:
> Hi,
>
> I think you are mistaken when you say “The gst_app_sink_pull_sample(),
> gst_sample_get_buffer() and gst_buffer_map() hands out only streams which
> are of size 4096 bytes each”. I am using these APIs to pass full 1920 *
> 1080 frames. You should provide more details so that we can maybe see what
> is going wrong.
>
>
>
>
>
>
>
> *Von:* gstreamer-devel [mailto:
> gstreamer-devel-bounces at lists.freedesktop.org] *Im Auftrag von *Kiran
> Kumar
> *Gesendet:* Montag, 13. Juni 2016 21:20
> *An:* gstreamer-devel at lists.freedesktop.org
> *Betreff:* Grabbing frames from GStreamer pipeline
>
>
>
> Hi,
>
>
>
> I am new to this forum.
>
> I am trying to pull frames from gstreamer pipeline and feed it to user
> application. I am using appsink pad to pull out the frames while the
> pipeline is in the PLAYING state.
>
> Problem:
> 1. The gst_app_sink_pull_sample(), gst_sample_get_buffer() and
> gst_buffer_map() hands out only streams which are of size 4096 bytes each.
> I tried changing the blocksize but, there is no effect.
>
> My goal:
> To extract or pull a single frame into a single buffer and feed this
> buffer as input to my application which does some image processing (I am
> not using OpenCV).
>
> I want to pull every frame from the video-source, populate the buffer
> (each frame is associated with a particular buffer) and finally feed the
> buffer to my application. I don't want to dump this frame into a file in my
> filesystem.
>
> Questions:
> 1. Are there any other ways in which I can achieve my goal without using
> appsink?
> 2. If using appsink is the only way I can pull data from gstreamer, how
> can I achieve my goal using appsink?
>
>
>
> I appreciate any guidance.
>
> Thanks in advance.
> Kiran
>
> _______________________________________________
> 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/20160614/23040dcc/attachment.html>
More information about the gstreamer-devel
mailing list