GNOME Bugzilla – Bug 612282
recombine: a simple module to recombine GstBuffers into larger ones
Last modified: 2018-01-25 12:36:57 UTC
[mleeman@bane gst-recombine-0.10.3]$ gst-inspect recombine Factory Details: Long name: Recombine GST Buffers Class: Generic Description: Recombine smaller GST buffers into larger ones Author(s): Marc Leeman <marc.leeman@gmail.com> Rank: none (0) Plugin Details: Name: recombine Description: GStreamer Buffer Recombine Filename: /usr/local/lib/gstreamer-0.10/libgstrecombine.so Version: 0.10.0.3 License: unknown Source module: gst-recombine Binary package: Barco Origin URL: http://www.barco.com/ GObject +----GstObject +----GstElement +----GstRecombine Pad Templates: SINK template: 'sink' Availability: Always Capabilities: ANY SRC template: 'src' Availability: Always Capabilities: ANY Element Flags: no flags set Element Implementation: Has change_state() function: gst_element_change_state_func Has custom save_thyself() function: gst_element_save_thyself Has custom restore_thyself() function: gst_element_restore_thyself Element has no clocking capabilities. Element has no indexing capabilities. Element has no URI handling capabilities. Pads: SRC: 'src' Implementation: Pad Template: 'src' SINK: 'sink' Implementation: Has chainfunc(): gst_recombine_chain Pad Template: 'sink' Element Properties: name : The name of the object flags: readable, writable String. Default: null Current: "recombine0" size : Maximum buffer size flags: readable, writable Unsigned Integer. Range: 0 - 16777216 Default: 0 Current: 0
Created attachment 155632 [details] C
Created attachment 155634 [details] H
Moving to -bad, since that's where new elements usually get added. I'm not entirely sure about the name, it might make sense in your envisaged usage context, but I think it'd be nice to have a 'buffer' or 'buf' in the name somewhere. And why 'the re-' prefix? And since It seems very similar to nagling, maybe one should from the start think about other similar usage scenarios as well (not sure if that's useful or what that means exactly, just thinking out loud :)).
You can name it to whatever you want; just add the name here so that I can adjust my bin :-) the recombine is just a name since it was intended to 'recombine' the GstBuffers afer passing through mpegtsparse (that splits up to 188 byte buffers that cripples switches). Don't know about nagling; but tried to get input in irc before writing this (/me hates doing double work).
Maybe I should just rewrite it to something along the lines of bufresize; and enable splitting up in smaller buffers too; could possibly be slightly better when decoding streams with a low bitrate when multiple frames are in one network packet.
Created attachment 156980 [details] C code
Created attachment 156981 [details] C code header
renamed it to bufresize; only concat support atm.
Does this element still make sense now that: * tsparse no longer outputs very small buffers by default * we have the new memory/buffer handling in 1.x * it's only circumventing issues with elements that should be accumulating data in a better fashion * we have an efficient adapter when you can get buffers with multiple gstmemory (instead of recombining (expensive) memory) ?