GNOME Bugzilla – Bug 632871
[NEW PLUGIN] dataprobe plugin. A simple caps and packet probe to insert into pipeline
Last modified: 2011-05-02 18:46:04 UTC
Created attachment 172986 [details] Source files for this plugin This plugin has the aim to discover the capabilities negotiated between two plugins. E.g.: filesrc location=video.mp4 ! qtdemux ! dataprobe ! ffdec_h264 ! xvimagesink In this way you will see on the stdout a human-readable resume of sinkpad caps and srcpad caps (corresponding to qtdemux srcpad caps and to ffdec_h264 sinkpad caps) and then will be shown a report of all packets that flow between these two pads. For every packet it is shown buffer mimetype, lenght (in bytes), timestamp and duration and optionally you can have a dump of a variable number of bytes in the packet. Properties: - identifier: [string] a name that will identify every print of this dataprobe plugin (useful if you use more than one dataprobe in a single pipeline); - onlycaps: [boolean] no dump of packets, only pad capabilities will be shown; - events: [boolean] dump also for events; - printdata: [int] dump of the first n bytes of every packet. If set to -1 will show all packet content; - h264-info: additional infos for h264 AVC/SVC stream. The functionalities of this plugin can be found using identity combined with fakesink (with "-vvv") but it is easier to insert dataprobe inside pipelines to understand where packets are lost, why pipeline returns "not linked", or simply to know what capabilities have been instantiated between two plugins.
I'm not sure this plugin really adds much to what there is already. There's also a capsdebug element in -good/gst/debug now, for what it's worth. I think the way forward is to find ways to improve the way we report linking / negotiation errors in core. For everything, identity/fakesink/capsdebug are sufficient IMHO. The h264-info addition seems a bit random here, I don't think it really belongs into a general purpose element. Are fakesink/identity/capsdebug missing any features you would like to see?
Sorry, this capsdebug pluin was inserted into gst-plugin-good after version 0.10.22? Becouse I have gstreamer 0.10.29 and I can't build gst-plugin-good-0.10.25 so I want to undestand If I need to upgrade my gstreamer version. So I don't know how capsdebug is, but I can say that dataprobe plugin is more versatile than fakesink and identity, otherwise I would not need to create my own plugin! I don't need to cancel many plugins from my pipeline to insert fakesink, I keep my pipeline and insert dataprobe where I want for see capabilities in that point. Working on command line (gst-launch-0.10) it is fast and simple. About h264-info, it is absolutly not something of general. In fact is a property that I used in my tests. But I've made it, I thank it was a good idea to let it into the plugin (maybe someone else can use it). But if this is bad for my plugin I can modify it and submit a new (more general) version.
One such thing that could be improved in core, is described in bug #350545.
Stefan, Tim, could you answer the question in comment #2? Andrea, did you get around to try capsdebug?
(In reply to comment #2) > So I don't know how capsdebug is, but I can say that dataprobe plugin is more > versatile than fakesink and identity, otherwise I would not need to create my > own plugin! capsdebug is equal to the "onlycaps" property in your element. The data dumping and events can be done with identity. If needed I would not mind having a dump-max-size property on identity to limmit the dump to first/last n-bytes. > I don't need to cancel many plugins from my pipeline to insert fakesink, I keep > my pipeline and insert dataprobe where I want for see capabilities in that > point. Working on command line (gst-launch-0.10) it is fast and simple. capsdebug and identity can be kept in the pipeline as well. > > About h264-info, it is absolutly not something of general. In fact is a > property that I used in my tests. But I've made it, I thank it was a good idea > to let it into the plugin (maybe someone else can use it). > But if this is bad for my plugin I can modify it and submit a new (more > general) version. I would prefer to add the features to existing elements to avoid the overlap. Also gst-tracelib can be used to get a lot of info from a running pipleine: http://cgit.freedesktop.org/~ensonic/gst-tracelib/
So I assume the patch to be rejected and mark this bus as WONTFIX. Please reopen if this is not the case.
Andrea, please open a new bug with new-patch if you'd like to add a dump-max-size property on identity/fakesrc/fakesink.