[gst-devel] proposal of new core element
Thomas Vander Stichele
thomas at apestaart.org
Wed Apr 21 15:53:09 CEST 2004
Hi,
> Hi Thomas,
>
> audio and video are slightly different. The purpose of the audio one is
> make sure that the buffer has a specific/fixed amount of samples. Incoming
> buffers might have different amounts of samples, but will still be
> aligned. For video, however, each buffer is one, and exactly one, frame.
> It makes no sense to have buffers of zero or three or X frames.
I know, but in practice this cannot be guaranteed. Raw video coming in
from a file, a pipe, or a socket just doesn't know how much bytes a
buffer should contain.
Also, the core basically contains a set of general pipe elements, which
have "pipe theory" operations. A reframing one is missing there IMO.
With the current core, I also don't see another way of doing this
nicely. If I subclass the generic core element and calculate the frame
byte size from the video caps this works quite well.
> For the compressed case, it's even more complicated because of different
> sizes per frame.
Agreed, but it might still be possible to do this.
> An extension to bytestream would make much more sense
> here imo, especially if we make it chain-based functional (or we go ahead
> with Dave/Benjamin's idea of making everything iterate-based, in which
> case this is not needed).
I don't see how bytestream is solving this, esp. for elements that
aren't using bytestream in the first place :)
> The extension would be to suggest buffer sizes
> to previous elements, e.g. something like my proposal of some time ago to
> add an optionally implemtable read(num_bytes) call next to the default
> get() call to get-based elements.
Yeah, that makes sense, but it's probably not going to be in 0.8.x is it
?
Anyway, even with all of this in place, for testing purposes and generic
stuff a simple reframer still sounds like a good idea to me :)
Thomas
More information about the gstreamer-devel
mailing list