Re: gstreamer streaming video metadata help

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: gstreamer streaming video metadata help

Nicolas Dufresne-3
Hi Brateesh,

once of the intent of the gstreamer-devel list is to share with all the
readers problems and solutions to commonly encountered issues. For this
purpose, I'm re-introducing the gstreamer-devel to this thread.

Le mardi 03 mai 2016 à 06:31 +0100, [hidden email] a écrit :
> hi sir,
> In gstreamer-devel streaming video metadata, you have posted that
> instead of metadata i can use rtpheader to attach the extra data to
> the buffer, 1.whether it is unaffected during encoding ??.
> 2.and i m not able to have both in buffer ,either i can have only
> data or rtpheader not both please help me how to contain the both 

It's not during encoding. In fact, you should add the header on already
existing RTP buffer after the payloader. This could be done using a
data probe. Instead of creating a new buffer, you simply "map" the
existing RTP buffer, modify it, and finally unmap it (to commit you
work). See:

https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-b
ase-libs/html/gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-
map

cheers,
Nicolas

>
>     (buffer original data,buffer2 where i want both data and
> rtpheader)
>
>          GstBuffer *buffer2 = gst_buffer_new_allocate(NULL, size+100,
> NULL);
>
>
>
>
> gst_rtp_buffer_allocate_data(buffer2, 100, 0, 0);
>
> GstRTPBuffer rtp_buf ={ NULL,0 ,{ NULL, NULL, NULL, NULL },{ 0,
> 0, 0, 0 }, { { NULL, (GstMapFlags)0, NULL, 0, 0,{ 0, },{ 0, } },{
> NULL,(GstMapFlags) 0, NULL, 0, 0,{ 0, },{ 0, } },{ NULL,
> (GstMapFlags)0, NULL, 0, 0,{ 0, },{ 0, } },{ NULL,(GstMapFlags) 0,
> NULL, 0, 0,{ 0, },{ 0, } } } };
>
> if (gst_rtp_buffer_map(buffer2, GST_MAP_READ, &rtp_buf)) {
> int q = p;
> data = &q;
> for (int i = 0; i < 10; i++) {
> q++;
> gst_rtp_buffer_add_extension_onebyte_header(&rt
> p_buf, 1, data, sizeof(int));
> }
> }
> gst_rtp_buffer_unmap(&rtp_buf);
>
>
> GstMapInfo info2;
> gst_buffer_map(buffer2, &info2, (GstMapFlags)GST_MAP_WRITE);
> memcpy(info2.data, (guint8*)info.data, size);
> gst_buffer_unmap(buffer2, &info2);
> gst_buffer_unmap(buffer, &info);
>
>  
> thank you,
> brateesh
>
>
>
> _____________________________________
> Sent from http://gstreamer-devel.966125.n4.nabble.com
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (188 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: gstreamer streaming video metadata help

brateesh
I created a video writing pipeline of theora, i attached the metadata(gstmeta for pre-processed information of frame) to the each buffer(frame) but while reading this video file in reading pipeline metadata was not attached to the buffer  because of the format change in the pipeline

how to achieve this with the help of rtpbuffer