c - Limitations of gst_parse_launch()? -
from understand, gst_parse_launch() creates new pipeline based on command line syntax describing pipeline. automatically takes care of intricate details of request pads, pads etc , constructs pipeline.
so question is, why not use time? why bother adding pad-added-handlers, requesting , linking pads etc?
are there situations using gst_parse_launch() wont do?
many gstreamer elements use these features probe plug-in should load. best example comes mind decodebin or playbin plug-ins. first one, chose source (for example filesrc).
now, happens when playing our media stream ?
at beginning, "inside" of decodebin :
--- sink -->|[ typefind] |
there no source pad coming out @ time because element still not aware of stream content.
if have avi video file, decodebin first use particular gstreamer element probe container/codec used in stream. element (gsttypefind) compute score depending of similarity between stream , codecs/containers.
in example, typefind hit avi container, allocate avi parser. "inner" of decodebin expanding ... avi parser analyses stream know if there audio/video sub-streams parse. if so, typefind comes in again find codec used.
the appropriate decoders allocated. here, decodebin ready , downstream element such sink elements must link against newly created source pads stream going. done through pad-added signals , pad linking procedures.
if there not of these pad features, behaviour not possible , have set statically, in metal before getting stream. means have know in advance content of stream read (this very very heavy constraint !)
a last remark : when specify pipeline through command line (like gst-launch guess), @ high level interface. within elements specified, mechanisms of pad linking can of significant importance ! thing don't have bother since things done. "have not bother of something" not mean thing useless you.
Comments
Post a Comment