## theoraparse

theoraparse — parse raw theora streams

## Synopsis

                        GstTheoraParse;

## Object Hierarchy

      GObject
       +----GstObject
             +----GstElement
                   +----GstTheoraParse

## Properties

      "synchronization-points"   GValueArray*          : Read / Write

## Description

The theoraparse element will parse the header packets of the Theora stream and put them as the streamheader in the caps. This is used in the multifdsink case where you want to stream live theora streams to multiple clients, each client has to receive the streamheaders first before they can consume the theora packets.

This element also makes sure that the buffers that it pushes out are properly timestamped and that their offset and offset_end are set. The buffers that theoraparse outputs have all of the metadata that oggmux expects to receive, which allows you to (for example) remux an ogg/theora file.

In addition, this element allows you to fix badly synchronized streams. You pass in an array of (granule time, buffer time) synchronization points via the synchronization-points GValueArray property, and this element will adjust the granulepos values that it outputs. The adjustment will be made by offsetting all buffers that it outputs by a specified amount, and updating that offset from the value array whenever a keyframe is processed.

### Example pipelines

    gst-launch -v filesrc location=video.ogg ! oggdemux ! theoraparse ! fakesink

This pipeline shows that the streamheader is set in the caps, and that each buffer has the timestamp, duration, offset, and offset_end set.

    gst-launch filesrc location=video.ogg ! oggdemux ! theoraparse \
               ! oggmux ! filesink location=video-remuxed.ogg

This pipeline shows remuxing. video-remuxed.ogg might not be exactly the same as video.ogg, but they should produce exactly the same decoded data.

Last reviewed on 2008-05-28 (0.10.20)

## Synopsis

### Element Information

plugin | theora
author | Andy Wingo <wingo@pobox.com>
class | Codec/Parser/Video

### Element Pads

name | sink
direction | sink
presence | always
details | video/x-theora

name | src
direction | source
presence | always
details | video/x-theora

## Details

### GstTheoraParse

    typedef struct _GstTheoraParse GstTheoraParse;

Opaque data structure.

## Property Details

### The `"synchronization-points"` property

      "synchronization-points"   GValueArray*          : Read / Write

An array of (granuletime, buffertime) pairs.

## See Also

theoradec, oggdemux, vorbisparse