Blame doc/libtheora/html/group__oldfuncs.html

Packit 00c01a
Packit 00c01a
<html xmlns="http://www.w3.org/1999/xhtml">
Packit 00c01a
<head>
Packit 00c01a
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
Packit 00c01a
<title>libtheora: Legacy pre-1.0 C API</title>
Packit 00c01a
<link href="tabs.css" rel="stylesheet" type="text/css"/>
Packit 00c01a
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
Packit 00c01a
</head>
Packit 00c01a
<body>
Packit 00c01a
Packit 00c01a
Packit 00c01a
  
Packit 00c01a
    
    Packit 00c01a
          
  • Main Page
  • Packit 00c01a
          
  • Modules
  • Packit 00c01a
          
  • Data Structures
  • Packit 00c01a
          
  • Files
  • Packit 00c01a
        
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Legacy pre-1.0 C API

    Packit 00c01a

    Data Structures

    Packit 00c01a
    struct  yuv_buffer
    Packit 00c01a
     A YUV buffer for passing uncompressed frames to and from the codec.  More...
    Packit 00c01a
    struct  theora_info
    Packit 00c01a
     Theora bitstream info.  More...
    Packit 00c01a
    struct  theora_state
    Packit 00c01a
     Codec internal state and context.  More...
    Packit 00c01a
    struct  theora_comment
    Packit 00c01a
     Comment header metadata.  More...
    Packit 00c01a

    Files

    Packit 00c01a
    file  theora.h
    Packit 00c01a
    Packit 00c01a

     

    The libtheora pre-1.0 legacy C API.

    Packit 00c01a

    Packit 00c01a

    Packit 00c01a

    Defines

    Packit 00c01a
    #define OC_FAULT   -1
    Packit 00c01a
     General failure.  
    Packit 00c01a
    #define OC_EINVAL   -10
    Packit 00c01a
     Library encountered invalid internal data.  
    Packit 00c01a
    #define OC_DISABLED   -11
    Packit 00c01a
     Requested action is disabled.  
    Packit 00c01a
    #define OC_BADHEADER   -20
    Packit 00c01a
     Header packet was corrupt/invalid.  
    Packit 00c01a
    #define OC_NOTFORMAT   -21
    Packit 00c01a
     Packet is not a theora packet.  
    Packit 00c01a
    #define OC_VERSION   -22
    Packit 00c01a
     Bitstream version is not handled.  
    Packit 00c01a
    #define OC_IMPL   -23
    Packit 00c01a
     Feature or action not implemented.  
    Packit 00c01a
    #define OC_BADPACKET   -24
    Packit 00c01a
     Packet is corrupt.  
    Packit 00c01a
    #define OC_NEWPACKET   -25
    Packit 00c01a
     Packet is an (ignorable) unhandled extension.  
    Packit 00c01a
    #define OC_DUPFRAME   1
    Packit 00c01a
     Packet is a dropped frame.  
    Packit 00c01a

    Enumerations

    Packit 00c01a
    enum  theora_colorspace { OC_CS_UNSPECIFIED, 
    Packit 00c01a
    OC_CS_ITU_REC_470M, 
    Packit 00c01a
    OC_CS_ITU_REC_470BG, 
    Packit 00c01a
    OC_CS_NSPACES
    Packit 00c01a
     }
    Packit 00c01a
     

    A Colorspace.

    Packit 00c01a
     More...
    Packit 00c01a
    enum  theora_pixelformat { OC_PF_420, 
    Packit 00c01a
    OC_PF_RSVD, 
    Packit 00c01a
    OC_PF_422, 
    Packit 00c01a
    OC_PF_444
    Packit 00c01a
     }
    Packit 00c01a
     

    A Chroma subsampling.

    Packit 00c01a
     More...
    Packit 00c01a

    Functions

    Packit 00c01a
    const char * theora_version_string (void)
    Packit 00c01a
     Retrieve a human-readable string to identify the encoder vendor and version.  
    Packit 00c01a
    ogg_uint32_t theora_version_number (void)
    Packit 00c01a
     Retrieve a 32-bit version number.  
    Packit 00c01a
    int theora_encode_init (theora_state *th, theora_info *ti)
    Packit 00c01a
     Initialize the theora encoder.  
    Packit 00c01a
    int theora_encode_YUVin (theora_state *t, yuv_buffer *yuv)
    Packit 00c01a
     Submit a YUV buffer to the theora encoder.  
    Packit 00c01a
    int theora_encode_packetout (theora_state *t, int last_p, ogg_packet *op)
    Packit 00c01a
     Request the next packet of encoded video.  
    Packit 00c01a
    int theora_encode_header (theora_state *t, ogg_packet *op)
    Packit 00c01a
     Request a packet containing the initial header.  
    Packit 00c01a
    int theora_encode_comment (theora_comment *tc, ogg_packet *op)
    Packit 00c01a
     Request a comment header packet from provided metadata.  
    Packit 00c01a
    int theora_encode_tables (theora_state *t, ogg_packet *op)
    Packit 00c01a
     Request a packet containing the codebook tables for the stream.  
    Packit 00c01a
    int theora_decode_header (theora_info *ci, theora_comment *cc, ogg_packet *op)
    Packit 00c01a
     Decode an Ogg packet, with the expectation that the packet contains an initial header, comment data or codebook tables.  
    Packit 00c01a
    int theora_decode_init (theora_state *th, theora_info *c)
    Packit 00c01a
     Initialize a theora_state handle for decoding.  
    Packit 00c01a
    int theora_decode_packetin (theora_state *th, ogg_packet *op)
    Packit 00c01a
     Input a packet containing encoded data into the theora decoder.  
    Packit 00c01a
    int theora_decode_YUVout (theora_state *th, yuv_buffer *yuv)
    Packit 00c01a
     Output the next available frame of decoded YUV data.  
    Packit 00c01a
    int theora_packet_isheader (ogg_packet *op)
    Packit 00c01a
     Report whether a theora packet is a header or not This function does no verification beyond checking the header flag bit so it should not be used for bitstream identification; use theora_decode_header() for that.  
    Packit 00c01a
    int theora_packet_iskeyframe (ogg_packet *op)
    Packit 00c01a
     Report whether a theora packet is a keyframe or not.  
    Packit 00c01a
    int theora_granule_shift (theora_info *ti)
    Packit 00c01a
     Report the granulepos shift radix.  
    Packit 00c01a
    ogg_int64_t theora_granule_frame (theora_state *th, ogg_int64_t granulepos)
    Packit 00c01a
     Convert a granulepos to an absolute frame index, starting at 0.  
    Packit 00c01a
    double theora_granule_time (theora_state *th, ogg_int64_t granulepos)
    Packit 00c01a
     Convert a granulepos to absolute time in seconds.  
    Packit 00c01a
    void theora_info_init (theora_info *c)
    Packit 00c01a
     Initialize a theora_info structure.  
    Packit 00c01a
    void theora_info_clear (theora_info *c)
    Packit 00c01a
     Clear a theora_info structure.  
    Packit 00c01a
    void theora_clear (theora_state *t)
    Packit 00c01a
     Free all internal data associated with a theora_state handle.  
    Packit 00c01a
    void theora_comment_init (theora_comment *tc)
    Packit 00c01a
     Initialize an allocated theora_comment structure.  
    Packit 00c01a
    void theora_comment_add (theora_comment *tc, char *comment)
    Packit 00c01a
     Add a comment to an initialized theora_comment structure.  
    Packit 00c01a
    void theora_comment_add_tag (theora_comment *tc, char *tag, char *value)
    Packit 00c01a
     Add a comment to an initialized theora_comment structure.  
    Packit 00c01a
    char * theora_comment_query (theora_comment *tc, char *tag, int count)
    Packit 00c01a
     Look up a comment value by tag.  
    Packit 00c01a
    int theora_comment_query_count (theora_comment *tc, char *tag)
    Packit 00c01a
     Look up the number of instances of a tag.  
    Packit 00c01a
    void theora_comment_clear (theora_comment *tc)
    Packit 00c01a
     Clear an allocated theora_comment struct so that it can be freed.  
    Packit 00c01a
    int theora_control (theora_state *th, int req, void *buf, size_t buf_sz)
    Packit 00c01a
     Encoder control function.  
    Packit 00c01a

    theora_control() codes

    Packit 00c01a

    Packit 00c01a


    Packit 00c01a
    #define TH_DECCTL_GET_PPLEVEL_MAX   (1)
    Packit 00c01a
     Get the maximum post-processing level.  
    Packit 00c01a
    #define TH_DECCTL_SET_PPLEVEL   (3)
    Packit 00c01a
     Set the post-processing level.  
    Packit 00c01a
    #define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE   (4)
    Packit 00c01a
     Sets the maximum distance between key frames.  
    Packit 00c01a
    #define TH_DECCTL_SET_GRANPOS   (5)
    Packit 00c01a
     Set the granule position.  
    Packit 00c01a
    #define TH_ENCCTL_SET_QUANT_PARAMS   (2)
    Packit 00c01a
     Sets the quantization parameters to use.  
    Packit 00c01a
    #define TH_ENCCTL_SET_VP3_COMPATIBLE   (10)
    Packit 00c01a
     Disables any encoder features that would prevent lossless transcoding back to VP3.  
    Packit 00c01a
    #define TH_ENCCTL_GET_SPLEVEL_MAX   (12)
    Packit 00c01a
     Gets the maximum speed level.  
    Packit 00c01a
    #define TH_ENCCTL_SET_SPLEVEL   (14)
    Packit 00c01a
     Sets the speed level.  
    Packit 00c01a
    Packit 00c01a

    Define Documentation

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_BADHEADER   -20
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Header packet was corrupt/invalid.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_BADPACKET   -24
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Packet is corrupt.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_DISABLED   -11
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Requested action is disabled.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_DUPFRAME   1
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Packet is a dropped frame.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_EINVAL   -10
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Library encountered invalid internal data.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_FAULT   -1
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    General failure.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_IMPL   -23
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Feature or action not implemented.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_NEWPACKET   -25
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Packet is an (ignorable) unhandled extension.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_NOTFORMAT   -21
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Packet is not a theora packet.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define OC_VERSION   -22
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Bitstream version is not handled.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define TH_DECCTL_GET_PPLEVEL_MAX   (1)
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Get the maximum post-processing level.

    Packit 00c01a

    The decoder supports a post-processing filter that can improve the appearance of the decoded images. This returns the highest level setting for this post-processor, corresponding to maximum improvement and computational expense.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define TH_DECCTL_SET_GRANPOS   (5)
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Set the granule position.

    Packit 00c01a

    Call this after a seek, to update the internal granulepos in the decoder, to insure that subsequent frames are marked properly. If you track timestamps yourself and do not use the granule postion returned by the decoder, then you do not need to use this control.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define TH_DECCTL_SET_PPLEVEL   (3)
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Set the post-processing level.

    Packit 00c01a

    Sets the level of post-processing to use when decoding the compressed stream. This must be a value between zero (off) and the maximum returned by TH_DECCTL_GET_PPLEVEL_MAX.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define TH_ENCCTL_GET_SPLEVEL_MAX   (12)
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Gets the maximum speed level.

    Packit 00c01a

    Higher speed levels favor quicker encoding over better quality per bit. Depending on the encoding mode, and the internal algorithms used, quality may actually improve, but in this case bitrate will also likely increase. In any case, overall rate/distortion performance will probably decrease. The maximum value, and the meaning of each value, may change depending on the current encoding mode (VBR vs. CQI, etc.).

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        <tt>[out]</tt> buf int: The maximum encoding speed level. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        OC_FAULT theora_state or buf is NULL. 
    Packit 00c01a
        OC_EINVAL buf_sz is not sizeof(int). 
    Packit 00c01a
        OC_IMPL Not supported by this implementation in the current encoding mode. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE   (4)
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Sets the maximum distance between key frames.

    Packit 00c01a

    This can be changed during an encode, but will be bounded by 1<<th_info::keyframe_granule_shift. If it is set before encoding begins, th_info::keyframe_granule_shift will be enlarged appropriately.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        <tt>[in]</tt> buf ogg_uint32_t: The maximum distance between key frames. 
    Packit 00c01a
        <tt>[out]</tt> buf ogg_uint32_t: The actual maximum distance set. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        OC_FAULT theora_state or buf is NULL. 
    Packit 00c01a
        OC_EINVAL buf_sz is not sizeof(ogg_uint32_t). 
    Packit 00c01a
        OC_IMPL Not supported by this implementation. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define TH_ENCCTL_SET_QUANT_PARAMS   (2)
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Sets the quantization parameters to use.

    Packit 00c01a

    The parameters are copied, not stored by reference, so they can be freed after this call. NULL may be specified to revert to the default parameters.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        <tt>[in]</tt> buf th_quant_info 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        OC_FAULT theora_state is NULL. 
    Packit 00c01a
        OC_EINVAL Encoding has already begun, the quantization parameters are not acceptable to this version of the encoder, buf is NULL and buf_sz is not zero, or buf is non-NULL and buf_sz is not sizeof(th_quant_info). 
    Packit 00c01a
        OC_IMPL Not supported by this implementation. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define TH_ENCCTL_SET_SPLEVEL   (14)
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Sets the speed level.

    Packit 00c01a

    By default a speed value of 1 is used.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        <tt>[in]</tt> buf int: The new encoding speed level. 0 is slowest, larger values use less CPU. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        OC_FAULT theora_state or buf is NULL. 
    Packit 00c01a
        OC_EINVAL buf_sz is not sizeof(int), or the encoding speed level is out of bounds. The maximum encoding speed level may be implementation- and encoding mode-specific, and can be obtained via TH_ENCCTL_GET_SPLEVEL_MAX. 
    Packit 00c01a
        OC_IMPL Not supported by this implementation in the current encoding mode. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              #define TH_ENCCTL_SET_VP3_COMPATIBLE   (10)
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Disables any encoder features that would prevent lossless transcoding back to VP3.

    Packit 00c01a

    This primarily means disabling block-level QI values and not using 4MV mode when any of the luma blocks in a macro block are not coded. It also includes using the VP3 quantization tables and Huffman codes; if you set them explicitly after calling this function, the resulting stream will not be VP3-compatible. If you enable VP3-compatibility when encoding 4:2:2 or 4:4:4 source material, or when using a picture region smaller than the full frame (e.g. a non-multiple-of-16 width or height), then non-VP3 bitstream features will still be disabled, but the stream will still not be VP3-compatible, as VP3 was not capable of encoding such formats. If you call this after encoding has already begun, then the quantization tables and codebooks cannot be changed, but the frame-level features will be enabled or disabled as requested.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        <tt>[in]</tt> buf int: a non-zero value to enable VP3 compatibility, or 0 to disable it (the default). 
    Packit 00c01a
        <tt>[out]</tt> buf int: 1 if all bitstream features required for VP3-compatibility could be set, and 0 otherwise. The latter will be returned if the pixel format is not 4:2:0, the picture region is smaller than the full frame, or if encoding has begun, preventing the quantization tables and codebooks from being set. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        OC_FAULT theora_state or buf is NULL. 
    Packit 00c01a
        OC_EINVAL buf_sz is not sizeof(int). 
    Packit 00c01a
        OC_IMPL Not supported by this implementation. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Enumeration Type Documentation

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              enum theora_colorspace
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    A Colorspace.

    Packit 00c01a
    Enumerator:
    Packit 00c01a
    OC_CS_UNSPECIFIED 
    Packit 00c01a

    The colorspace is unknown or unspecified.

    Packit 00c01a
    Packit 00c01a
    OC_CS_ITU_REC_470M 
    Packit 00c01a

    This is the best option for 'NTSC' content.

    Packit 00c01a
    Packit 00c01a
    OC_CS_ITU_REC_470BG 
    Packit 00c01a

    This is the best option for 'PAL' content.

    Packit 00c01a
    Packit 00c01a
    OC_CS_NSPACES 
    Packit 00c01a

    This marks the end of the defined colorspaces.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              enum theora_pixelformat
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    A Chroma subsampling.

    Packit 00c01a

    These enumerate the available chroma subsampling options supported by the theora format. See Section 4.4 of the specification for exact definitions.

    Packit 00c01a
    Enumerator:
    Packit 00c01a
    OC_PF_420 
    Packit 00c01a

    Chroma subsampling by 2 in each direction (4:2:0).

    Packit 00c01a
    Packit 00c01a
    OC_PF_RSVD 
    Packit 00c01a

    Reserved value.

    Packit 00c01a
    Packit 00c01a
    OC_PF_422 
    Packit 00c01a

    Horizonatal chroma subsampling by 2 (4:2:2).

    Packit 00c01a
    Packit 00c01a
    OC_PF_444 
    Packit 00c01a

    No chroma subsampling at all (4:4:4).

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Function Documentation

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              void theora_clear 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               t
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Free all internal data associated with a theora_state handle.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        t A theora_state handle. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              void theora_comment_add 
    Packit 00c01a
              (
    Packit 00c01a
              theora_comment
    Packit 00c01a
               tc, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              char * 
    Packit 00c01a
               comment 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Add a comment to an initialized theora_comment structure.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        tc A previously initialized theora comment structure 
    Packit 00c01a
        comment A null-terminated string encoding the comment in the form "TAG=the value"
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a

    Neither theora_comment_add() nor theora_comment_add_tag() support comments containing null values, although the bitstream format supports this. To add such comments you will need to manipulate the theora_comment structure directly.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              void theora_comment_add_tag 
    Packit 00c01a
              (
    Packit 00c01a
              theora_comment
    Packit 00c01a
               tc, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              char * 
    Packit 00c01a
               tag, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              char * 
    Packit 00c01a
               value 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Add a comment to an initialized theora_comment structure.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        tc A previously initialized theora comment structure 
    Packit 00c01a
        tag A null-terminated string containing the tag associated with the comment. 
    Packit 00c01a
        value The corresponding value as a null-terminated string
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a

    Neither theora_comment_add() nor theora_comment_add_tag() support comments containing null values, although the bitstream format supports this. To add such comments you will need to manipulate the theora_comment structure directly.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              void theora_comment_clear 
    Packit 00c01a
              (
    Packit 00c01a
              theora_comment
    Packit 00c01a
               tc
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Clear an allocated theora_comment struct so that it can be freed.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        tc An allocated theora_comment structure. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              void theora_comment_init 
    Packit 00c01a
              (
    Packit 00c01a
              theora_comment
    Packit 00c01a
               tc
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Initialize an allocated theora_comment structure.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        tc An allocated theora_comment structure 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              char* theora_comment_query 
    Packit 00c01a
              (
    Packit 00c01a
              theora_comment
    Packit 00c01a
               tc, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              char * 
    Packit 00c01a
               tag, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              int 
    Packit 00c01a
               count 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Look up a comment value by tag.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        tc Tn initialized theora_comment structure 
    Packit 00c01a
        tag The tag to look up 
    Packit 00c01a
        count The instance of the tag. The same tag can appear multiple times, each with a distinct and ordered value, so an index is required to retrieve them all. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Returns:
    A pointer to the queried tag's value
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        NULL No matching tag is found
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Note:
    Use theora_comment_query_count() to get the legal range for the count parameter.
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_comment_query_count 
    Packit 00c01a
              (
    Packit 00c01a
              theora_comment
    Packit 00c01a
               tc, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              char * 
    Packit 00c01a
               tag 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Look up the number of instances of a tag.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        tc An initialized theora_comment structure 
    Packit 00c01a
        tag The tag to look up 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Returns:
    The number on instances of a particular tag.
    Packit 00c01a

    Call this first when querying for a specific tag and then interate over the number of instances with separate calls to theora_comment_query() to retrieve all instances in order.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_control 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               th, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              int 
    Packit 00c01a
               req, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              void * 
    Packit 00c01a
               buf, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              size_t 
    Packit 00c01a
               buf_sz 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Encoder control function.

    Packit 00c01a

    This is used to provide advanced control the encoding process.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        th A theora_state handle. 
    Packit 00c01a
        req The control code to process. See the list of available  control codes for details. 
    Packit 00c01a
        buf The parameters for this control code. 
    Packit 00c01a
        buf_sz The size of the parameter buffer. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_decode_header 
    Packit 00c01a
              (
    Packit 00c01a
              theora_info
    Packit 00c01a
               ci, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              theora_comment
    Packit 00c01a
               cc, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              ogg_packet * 
    Packit 00c01a
               op 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Decode an Ogg packet, with the expectation that the packet contains an initial header, comment data or codebook tables.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        ci A theora_info structure to fill. This must have been previously initialized with theora_info_init(). If op contains an initial header, theora_decode_header() will fill ci with the parsed header values. If op contains codebook tables, theora_decode_header() will parse these and attach an internal representation to ci->codec_setup. 
    Packit 00c01a
        cc A theora_comment structure to fill. If op contains comment data, theora_decode_header() will fill cc with the parsed comments. 
    Packit 00c01a
        op An ogg_packet structure which you expect contains an initial header, comment data or codebook tables.
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        OC_BADHEADER op is NULL; OR the first byte of op->packet has the signature of an initial packet, but op is not a b_o_s packet; OR this packet has the signature of an initial header packet, but an initial header packet has already been seen; OR this packet has the signature of a comment packet, but the initial header has not yet been seen; OR this packet has the signature of a comment packet, but contains invalid data; OR this packet has the signature of codebook tables, but the initial header or comments have not yet been seen; OR this packet has the signature of codebook tables, but contains invalid data; OR the stream being decoded has a compatible version but this packet does not have the signature of a theora initial header, comments, or codebook packet 
    Packit 00c01a
        OC_VERSION The packet data of op is an initial header with a version which is incompatible with this version of libtheora. 
    Packit 00c01a
        OC_NEWPACKET the stream being decoded has an incompatible (future) version and contains an unknown signature. 
    Packit 00c01a
        0 Success
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Note:
    The normal usage is that theora_decode_header() be called on the first three packets of a theora logical bitstream in succession.
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_decode_init 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               th, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              theora_info
    Packit 00c01a
               c 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Initialize a theora_state handle for decoding.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        th The theora_state handle to initialize. 
    Packit 00c01a
        c A theora_info struct filled with the desired decoding parameters. This is of course usually obtained from a previous call to theora_decode_header(). 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        0 Success 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_decode_packetin 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               th, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              ogg_packet * 
    Packit 00c01a
               op 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Input a packet containing encoded data into the theora decoder.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        th A theora_state handle previously initialized for decoding. 
    Packit 00c01a
        op An ogg_packet containing encoded theora data. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        0 Success 
    Packit 00c01a
        OC_BADPACKET op does not contain encoded video data 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_decode_YUVout 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               th, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              yuv_buffer
    Packit 00c01a
               yuv 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Output the next available frame of decoded YUV data.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        th A theora_state handle previously initialized for decoding. 
    Packit 00c01a
        yuv A yuv_buffer in which libtheora should place the decoded data. Note that the buffer struct itself is allocated by the user, but that the luma and chroma pointers will be filled in by the library. Also note that these luma and chroma regions should be considered read-only by the user. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        0 Success 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_encode_comment 
    Packit 00c01a
              (
    Packit 00c01a
              theora_comment
    Packit 00c01a
               tc, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              ogg_packet * 
    Packit 00c01a
               op 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Request a comment header packet from provided metadata.

    Packit 00c01a

    A pointer to the comment data is placed in a user-provided ogg_packet structure.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        tc A theora_comment structure filled with the desired metadata 
    Packit 00c01a
        op An ogg_packet structure to fill. libtheora will set all elements of this structure, including a pointer to the encoded comment data. The memory for the comment data is owned by libtheora. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        0 Success 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_encode_header 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               t, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              ogg_packet * 
    Packit 00c01a
               op 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Request a packet containing the initial header.

    Packit 00c01a

    A pointer to the header data is placed in a user-provided ogg_packet structure.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        t A theora_state handle previously initialized for encoding. 
    Packit 00c01a
        op An ogg_packet structure to fill. libtheora will set all elements of this structure, including a pointer to the header data. The memory for the header data is owned by libtheora. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        0 Success 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_encode_init 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               th, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              theora_info
    Packit 00c01a
               ti 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Initialize the theora encoder.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        th The theora_state handle to initialize for encoding. 
    Packit 00c01a
        ti A theora_info struct filled with the desired encoding parameters. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        0 Success 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_encode_packetout 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               t, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              int 
    Packit 00c01a
               last_p, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              ogg_packet * 
    Packit 00c01a
               op 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Request the next packet of encoded video.

    Packit 00c01a

    The encoded data is placed in a user-provided ogg_packet structure.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        t A theora_state handle previously initialized for encoding. 
    Packit 00c01a
        last_p whether this is the last packet the encoder should produce. 
    Packit 00c01a
        op An ogg_packet structure to fill. libtheora will set all elements of this structure, including a pointer to encoded data. The memory for the encoded data is owned by libtheora. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        0 No internal storage exists OR no packet is ready 
    Packit 00c01a
        -1 The encoding process has completed 
    Packit 00c01a
        1 Success 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_encode_tables 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               t, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              ogg_packet * 
    Packit 00c01a
               op 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Request a packet containing the codebook tables for the stream.

    Packit 00c01a

    A pointer to the codebook data is placed in a user-provided ogg_packet structure.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        t A theora_state handle previously initialized for encoding. 
    Packit 00c01a
        op An ogg_packet structure to fill. libtheora will set all elements of this structure, including a pointer to the codebook data. The memory for the header data is owned by libtheora. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        0 Success 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_encode_YUVin 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               t, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              yuv_buffer
    Packit 00c01a
               yuv 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Submit a YUV buffer to the theora encoder.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        t A theora_state handle previously initialized for encoding. 
    Packit 00c01a
        yuv A buffer of YUV data to encode. Note that both the yuv_buffer struct and the luma/chroma buffers within should be allocated by the user. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        OC_EINVAL Encoder is not ready, or is finished. 
    Packit 00c01a
        -1 The size of the given frame differs from those previously input 
    Packit 00c01a
        0 Success 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              ogg_int64_t theora_granule_frame 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               th, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              ogg_int64_t 
    Packit 00c01a
               granulepos 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Convert a granulepos to an absolute frame index, starting at 0.

    Packit 00c01a

    The granulepos is interpreted in the context of a given theora_state handle.

    Packit 00c01a

    Note that while the granulepos encodes the frame count (i.e. starting from 1) this call returns the frame index, starting from zero. Thus One can calculate the presentation time by multiplying the index by the rate.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        th A previously initialized theora_state handle (encode or decode) 
    Packit 00c01a
        granulepos The granulepos to convert. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Returns:
    The frame index corresponding to granulepos.
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        -1 The given granulepos is undefined (i.e. negative)
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a

    Thus function was added in the 1.0alpha4 release.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_granule_shift 
    Packit 00c01a
              (
    Packit 00c01a
              theora_info
    Packit 00c01a
               ti
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Report the granulepos shift radix.

    Packit 00c01a

    When embedded in Ogg, Theora uses a two-part granulepos, splitting the 64-bit field into two pieces. The more-significant section represents the frame count at the last keyframe, and the less-significant section represents the count of frames since the last keyframe. In this way the overall field is still non-decreasing with time, but usefully encodes a pointer to the last keyframe, which is necessary for correctly restarting decode after a seek.

    Packit 00c01a

    This function reports the number of bits used to represent the distance to the last keyframe, and thus how the granulepos field must be shifted or masked to obtain the two parts.

    Packit 00c01a

    Since libtheora returns compressed data in an ogg_packet structure, this may be generally useful even if the Theora packets are not being used in an Ogg container.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        ti A previously initialized theora_info struct 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Returns:
    The bit shift dividing the two granulepos fields
    Packit 00c01a

    This function was added in the 1.0alpha5 release.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              double theora_granule_time 
    Packit 00c01a
              (
    Packit 00c01a
              theora_state
    Packit 00c01a
               th, 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              
    Packit 00c01a
              ogg_int64_t 
    Packit 00c01a
               granulepos 
    Packit 00c01a
            
    Packit 00c01a
            
    Packit 00c01a
              
    Packit 00c01a
              )
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Convert a granulepos to absolute time in seconds.

    Packit 00c01a

    The granulepos is interpreted in the context of a given theora_state handle, and gives the end time of a frame's presentation as used in Ogg mux ordering.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        th A previously initialized theora_state handle (encode or decode) 
    Packit 00c01a
        granulepos The granulepos to convert. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Returns:
    The absolute time in seconds corresponding to granulepos. This is the "end time" for the frame, or the latest time it should be displayed. It is not the presentation time.
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        -1. The given granulepos is undefined (i.e. negative), or 
    Packit 00c01a
        -1. The function has been disabled because floating point support is not available. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              void theora_info_clear 
    Packit 00c01a
              (
    Packit 00c01a
              theora_info
    Packit 00c01a
               c
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Clear a theora_info structure.

    Packit 00c01a

    All values within the given theora_info structure are cleared, and associated internal codec setup data is freed.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        c A theora_info struct to initialize. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              void theora_info_init 
    Packit 00c01a
              (
    Packit 00c01a
              theora_info
    Packit 00c01a
               c
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Initialize a theora_info structure.

    Packit 00c01a

    All values within the given theora_info structure are initialized, and space is allocated within libtheora for internal codec setup data.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        c A theora_info struct to initialize. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_packet_isheader 
    Packit 00c01a
              (
    Packit 00c01a
              ogg_packet * 
    Packit 00c01a
               op
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Report whether a theora packet is a header or not This function does no verification beyond checking the header flag bit so it should not be used for bitstream identification; use theora_decode_header() for that.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        op An ogg_packet containing encoded theora data. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        1 The packet is a header packet 
    Packit 00c01a
        0 The packet is not a header packet (and so contains frame data)
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a

    Thus function was added in the 1.0alpha4 release.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              int theora_packet_iskeyframe 
    Packit 00c01a
              (
    Packit 00c01a
              ogg_packet * 
    Packit 00c01a
               op
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Report whether a theora packet is a keyframe or not.

    Packit 00c01a
    Parameters:
    Packit 00c01a
      
    Packit 00c01a
        op An ogg_packet containing encoded theora data. 
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a
    Return values:
    Packit 00c01a
      
    Packit 00c01a
        1 The packet contains a keyframe image 
    Packit 00c01a
        0 The packet is contains an interframe delta 
    Packit 00c01a
        -1 The packet is not an image data packet at all
    Packit 00c01a
      
    Packit 00c01a
      
    Packit 00c01a
    Packit 00c01a

    Thus function was added in the 1.0alpha4 release.

    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              ogg_uint32_t theora_version_number 
    Packit 00c01a
              (
    Packit 00c01a
              void 
    Packit 00c01a
              
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Retrieve a 32-bit version number.

    Packit 00c01a

    This number is composed of a 16-bit major version, 8-bit minor version and 8 bit sub-version, composed as follows:

    Packit 00c01a
    Packit 00c01a
       (VERSION_MAJOR<<16) + (VERSION_MINOR<<8) + (VERSION_SUB)
    Packit 00c01a
     
    Returns:
    The version number.
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
          
    Packit 00c01a
            
    Packit 00c01a
              const char* theora_version_string 
    Packit 00c01a
              (
    Packit 00c01a
              void 
    Packit 00c01a
              
    Packit 00c01a
               ) 
    Packit 00c01a
              
    Packit 00c01a
            
    Packit 00c01a
          
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    Retrieve a human-readable string to identify the encoder vendor and version.

    Packit 00c01a
    Returns:
    A version string.
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a
    Packit 00c01a

    <address style="text-align: right;"><small>Generated on 28 Sep 2009 for libtheora by 
    Packit 00c01a
    Packit 00c01a
    doxygen 1.6.1 </small></address>
    Packit 00c01a
    </body>
    Packit 00c01a
    </html>