gi-gst-0.1.6.13: Gst bindings

CopyrightWill Thompson, Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.Gst.Structs.Toc

Contents

Description

GstToc and #GstTocEntry structures. Also they are used to convert GstStructure and vice versa.

#GstToc lets you to inform other elements in pipeline or application that playing source has some kind of table of contents (TOC). These may be chapters, editions, angles or other types. For example: DVD chapters, Matroska chapters or cue sheet TOC. Such TOC will be useful for applications to display instead of just a playlist.

Using TOC is very easy. Firstly, create #GstToc structure which represents root contents of the source. You can also attach TOC-specific tags to it. Then fill it with GstToc using gst_toc_append_entry(), and appending subentries to a #GstTocEntry using gst_toc_entry_append_sub_entry().

Note that root level of the TOC can contain only either editions or chapters. You should not mix them together at the same level. Otherwise you will get serialization /deserialization errors. Make sure that no one of the entries has negative start and stop values.

Use gst_event_new_toc() to create a new TOC #GstEvent, and gst_event_parse_toc() to parse received TOC event. Use gst_event_new_toc_select() to create a new TOC select #GstEvent, and gst_event_parse_toc_select() to parse received TOC select event. The same rule for the GstMessage, and gst_message_parse_toc() to parse received TOC message.

TOCs can have global scope or current scope. Global scope TOCs contain all entries that can possibly be selected using a toc select event, and are what an application is usually interested in. TOCs with current scope only contain the parts of the TOC relevant to the currently selected/playing stream; the current scope TOC is used by downstream elements such as muxers to write correct TOC entries when transcoding files, for example. When playing a DVD, the global TOC would contain a hierarchy of all titles, chapters and angles, for example, while the current TOC would only contain the chapters for the currently playing title if playback of a specific title was requested.

Applications and plugins should not rely on TOCs having a certain kind of structure, but should allow for different alternatives. For example, a simple CUE sheet embedded in a file may be presented as a flat list of track entries, or could have a top-level edition node (or some other alternative type entry) with track entries underneath that node; or even multiple top-level edition nodes (or some other alternative type entries) each with track entries underneath, in case the source file has extracted a track listing from different sources).

Synopsis

Exported types

newtype Toc Source

Constructors

Toc (ForeignPtr Toc) 

Instances

BoxedObject Toc Source 

Methods

boxedType :: Toc -> IO GType

((~) * info (ResolveTocMethod t Toc), MethodInfo * info Toc p) => IsLabel t (Toc -> p) Source 

Methods

fromLabel :: Proxy# Symbol t -> Toc -> p

((~) * info (ResolveTocMethod t Toc), MethodInfo * info Toc p) => IsLabelProxy t (Toc -> p) Source 

Methods

fromLabelProxy :: Proxy Symbol t -> Toc -> p

((~) (TYPE Lifted) signature (Maybe TagList -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) TocSetTagsMethodInfo Toc signature Source 
((~) (TYPE Lifted) signature (Maybe TagList -> TagMergeMode -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) TocMergeTagsMethodInfo Toc signature Source 
((~) (TYPE Lifted) signature (m TagList), MonadIO m) => MethodInfo (TYPE Lifted) TocGetTagsMethodInfo Toc signature Source 
((~) (TYPE Lifted) signature (m TocScope), MonadIO m) => MethodInfo (TYPE Lifted) TocGetScopeMethodInfo Toc signature Source 
((~) (TYPE Lifted) signature (m [TocEntry]), MonadIO m) => MethodInfo (TYPE Lifted) TocGetEntriesMethodInfo Toc signature Source 
((~) (TYPE Lifted) signature (Text -> m TocEntry), MonadIO m) => MethodInfo (TYPE Lifted) TocFindEntryMethodInfo Toc signature Source 
((~) (TYPE Lifted) signature (m ()), MonadIO m) => MethodInfo (TYPE Lifted) TocDumpMethodInfo Toc signature Source 
((~) (TYPE Lifted) signature (TocEntry -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) TocAppendEntryMethodInfo Toc signature Source 

Methods

tocAppendEntry

tocDump

data TocDumpMethodInfo Source

Instances

((~) (TYPE Lifted) signature (m ()), MonadIO m) => MethodInfo (TYPE Lifted) TocDumpMethodInfo Toc signature Source 

tocDump :: MonadIO m => Toc -> m () Source

tocFindEntry

tocGetEntries

tocGetScope

tocGetTags

tocMergeTags

tocNew

tocSetTags

data TocSetTagsMethodInfo Source

Instances

((~) (TYPE Lifted) signature (Maybe TagList -> m ()), MonadIO m) => MethodInfo (TYPE Lifted) TocSetTagsMethodInfo Toc signature Source