![]() |
![]() |
![]() |
GStreamer Bad Plugins 0.10 Plugins Reference Manual | |
---|---|---|---|---|
Top | Description | Object Hierarchy |
GstBaseMetadata; #define GST_BASE_METADATA_SINK_PAD (obj) #define GST_BASE_METADATA_SRC_PAD (obj) MetaOptions gst_base_metadata_get_option_flag (const GstBaseMetadata *base
); void gst_base_metadata_set_option_flag (GstBaseMetadata *base
,const MetaOptions options
); void gst_base_metadata_unset_option_flag (GstBaseMetadata *base
,const MetaOptions options
); void gst_base_metadata_update_inject_segment_with_new_data (GstBaseMetadata *base
,guint8 **data
,guint32 *size
,MetadataChunkType type
);
GObject +----GstObject +----GstElement +----GstBaseMetadata +----GstMetadataDemux +----GstMetadataMux
This is a generice base class for metadata handling elements. The following types of elements are supported:
parsers (only parse data)
demuxers (parse data and remove metadata chunks)
muxers
any other kind of element that wants to handle chunks in file formats based on chunks
This a abstract element that parses a stream and find chunks and offset where new chunks could be injected into it. Basically, the only thing need by implementors (parsers, (de)muxers) is to set virtual methods that will be used to setup the caps and do some 'processing', which is called after the stream is completely parsed and before the first buffer is sent to the next element. Usualy the 'processing' function will send tags messages and event in case of parsers and demuxers, and add chunks to be injected (using the helper function gst_base_metadata_update_inject_segment_with_new_data in case of muxers.
This can work in 'pull' and 'push' scheduling modes. In case of push mode, the stream will be parsed during sink activation if gst_pad_get_range is available on upstream element. If get_range function is not available upstream, then the data will be hold until the stream is completly parsed, and then after that the fisrt buffer will be pushed downstream. The same happens with pull mode, if the downstream element calls gst_pad_get_range it will only gets data after the stream has been completely parsed.
Seek, and query duration will only be available after the stream has been parsed. Query position will always be 0 (zero) before the stream is completely parsed.
Currently there is implementation for JPEG and PNG (demux mode only) stream types and EXIF, IPTC and XMP metadatas.
Last reviewed on 2008-01-21 (0.10.15)
typedef struct _GstBaseMetadata GstBaseMetadata;
The opaque GstBaseMetadata data structure.
#define GST_BASE_METADATA_SINK_PAD(obj) (GST_BASE_METADATA_CAST (obj)->sinkpad)
|
#define GST_BASE_METADATA_SRC_PAD(obj) (GST_BASE_METADATA_CAST (obj)->srcpad)
|
MetaOptions gst_base_metadata_get_option_flag (const GstBaseMetadata *base
);
Check how the this base class will behaviour. As a demuxer or muxer.
Hanlding EXIF, IPTC, XMP or not.
see_also
: gst_base_metadata_set_option_flag
gst_base_metadata_unset_option_flag
|
the base metadata instance |
Returns : |
The current mode of operation |
void gst_base_metadata_set_option_flag (GstBaseMetadata *base
,const MetaOptions options
);
Set how the this base class will behaviour. As a demuxer or muxer. Hanlding
EXIF, IPTC, XMP or not.
see_also
: gst_base_metadata_unset_option_flag
gst_base_metadata_get_option_flag
|
the base metadata instance |
|
mode of operation |
void gst_base_metadata_unset_option_flag (GstBaseMetadata *base
,const MetaOptions options
);
Set how the this base class will behaviour. As a demuxer or muxer. Hanlding
EXIF, IPTC, XMP or not.
see_also
: gst_base_metadata_set_option_flag
gst_base_metadata_get_option_flag
|
the base metadata instance |
|
mode of operation |
void gst_base_metadata_update_inject_segment_with_new_data (GstBaseMetadata *base
,guint8 **data
,guint32 *size
,MetadataChunkType type
);
If the file type specification of the parsed stream allows a chunk of type
,
set the data
and size
of the segment to be injected. This the data
has
been injected (metadata type supported by the stream type
) then, the
the data
ownership will be taken and data
and size
willl be set to 0;
Hanlding EXIF, IPTC, XMP or not.
see_also
: gst_base_metadata_calculate_offsets
|
the base metadata instance |
|
new data to be injected |
|
the size in bytes of data
|
|
kind of metadata chunk it is (currently EXIF, IPTC or XMP) |