I am interested in video subregion information. I had plan to add caps to do this. Now you may help to estimate the feasibility of this plan. <br>Adding 5 caps, x, y, subwidth, subheight, first data byte offset in original video. substream tests these caps, if they are zeros, then ignores subregion information. Otherwise we operate subregion according to these information.
<br><br><br><div><span class="gmail_quote">2008/1/16, Stefan Kost <<a href="mailto:ensonic@hora-obscura.de">ensonic@hora-obscura.de</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>Jan Schmidt schrieb:<br>> <quote who="Stefan Kost"><br>><br>>> hi,<br>>><br>>> I am looking for a way to send some private data along with a buffer.<br>>> During data capture I get some metadata about capture settings and I would
<br>>> like to store/analyze them later along with the data stream. I tried to add<br>>> a payload item to caps and put a GstBuffer there. But this seems to be<br>>> painful and I am afraid that it will cause renegotiation as the content
<br>>> changes for each buffer. Has anyone been doing something similar?<br>>><br>>> alternative (better approach) seems to be using a buffer subclass, right?<br>>><br>>> Attached is my current test. Its a bit hackish and fails. One thing I was
<br>>> wondering is that fakesrc send buffer with caps=NULL. A bug?<br>>><br>><br>>>From time to time, I've thought about adding something like this directly<br>> to GstBuffer, for carrying information whose presence been negotiated in
<br>> the caps, but whose content should be allowed to change without<br>> renegotiating.<br>><br>> Examples:<br>> * Pan and scan (video subregion) position information<br>> * interlacing markers (top field, bottom field)
<br>> * theora granulepos, instead of slapping it in the 'offset' field<br>> * MPEG Decoding timestamps, which we currently never send along.<br>><br>> My thought was to add a GstStructure to GstBuffer which is allowed to be
<br>> NULL.<br>><br>> Wim has expressed concern that it would cause performance issues, and it<br>> would certainly require extending various bits of GStreamer to support<br>> properly (buffer serialisation/deserialisation in GDP, for example). Also,
<br>> the semantics of how to handle the 'extradata' when transforming a buffer<br>> need to be clearly defined, ie the extradata has to be clearly specified<br>> by the caps attached to the buffer, and there needs to be a way for it to
<br>> be handled by elements that don't understand the extradata they've been<br>> given. It can't just be a dumping ground in which to place arbitrary data,<br>> or I don't think it can be made to work.
<br>><br>> J.<br>><br>Maybe some GstTaglist features can help. I am thinking of the merge-modes here.<br>Atleast this is needed when mixing data.<br><br>No idea how to express constraints that would render the data useless.
E.g.<br>muxing two streams removes the 'frame' context from video frames. Thus the muxer<br>would not copy/merge the extra-data to outgoing buffers.<br><br>I am not so much concerned with performance. In most cases it would not be used.
<br>Freeing buffers would need to release the taglst if its not NULL. Copying<br>buffers need to copy it.<br><br>As we have hierarchical structures now, we could probably require that the<br>producer uses its element name as a root tag. This way the taglist could carry
<br>multiple data-sets identified in a unique way. Elements that can use the data<br>need to know the name of the element that created it.<br><br>I'll think more about it - may be we can use our shiny new wiki to draft it :)
<br><br>Stefan<br><br><br>-------------------------------------------------------------------------<br>This SF.net email is sponsored by: Microsoft<br>Defy all challenges. Microsoft(R) Visual Studio 2008.<br><a href="http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/">
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/</a><br>_______________________________________________<br>gstreamer-devel mailing list<br><a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net
</a><br><a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br></blockquote></div><br>