[xiph-commits] r12751 - experimental/j/theora-mashup/include/theora

j at svn.xiph.org j at svn.xiph.org
Tue Mar 13 08:13:39 PDT 2007


Author: j
Date: 2007-03-13 08:13:36 -0700 (Tue, 13 Mar 2007)
New Revision: 12751

Removed:
   experimental/j/theora-mashup/include/theora/theoraenc.h
Modified:
   experimental/j/theora-mashup/include/theora/Makefile.am
Log:
remove theora-exp encoder headers

Modified: experimental/j/theora-mashup/include/theora/Makefile.am
===================================================================
--- experimental/j/theora-mashup/include/theora/Makefile.am	2007-03-13 14:34:17 UTC (rev 12750)
+++ experimental/j/theora-mashup/include/theora/Makefile.am	2007-03-13 15:13:36 UTC (rev 12751)
@@ -2,5 +2,4 @@
 
 theoraincludedir = $(includedir)/theora
 
-theorainclude_HEADERS = codec.h theora.h theoradec.h theoraenc.h
-
+theorainclude_HEADERS = theora.h codec.h theoradec.h

Deleted: experimental/j/theora-mashup/include/theora/theoraenc.h
===================================================================
--- experimental/j/theora-mashup/include/theora/theoraenc.h	2007-03-13 14:34:17 UTC (rev 12750)
+++ experimental/j/theora-mashup/include/theora/theoraenc.h	2007-03-13 15:13:36 UTC (rev 12751)
@@ -1,351 +0,0 @@
-/********************************************************************
- *                                                                  *
- * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE.   *
- * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
- * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
- * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
- *                                                                  *
- * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2003                *
- * by the Xiph.Org Foundation http://www.xiph.org/                  *
- *                                                                  *
- ********************************************************************
-
-  function:
-  last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $
-
- ********************************************************************/
-
-/**\file
- * The <tt>libtheoraenc</tt> C encoding API.*/
-
-#if !defined(_O_THEORA_THEORAENC_H_)
-# define _O_THEORA_THEORAENC_H_ (1)
-# include <ogg/ogg.h>
-# include "codec.h"
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-
-
-/**The configuration information for the VBR encoding mode.
- * This mode attempts to encode the video with a constant psychovisual
- *  quality.
- * It can be enabled by calling th_encode_ctl() with #TH_ENCCTL_SETUP_VBR.
- * See the #th_info struct documentation for details on how the default
- *  encoding mode is chosen.*/
-typedef struct th_vbr_cfg{
-  /**The target quality index.
-   * Valid values range from 0 to 63, inclusive, with higher values giving
-   *  higher quality.
-   * Note that, in this case, this corresponds to a <em>perceptual</em>
-   *  quality, and may not translate directly into a quantization setting.
-   * Limits on the admissible quantizers can be controlled below.*/
-  int qi;
-  /**The minimum quality to use for a keyframe.
-   * Valid values range from 0 to 63, inclusive, with higher values giving
-   *  higher quality.*/
-  int kf_qi_min;
-  /**The maximum quality to use for a keyframe.
-   * Valid values range from 0 to 63, inclusive, with higher values giving
-   *  higher quality.
-   * This must be at least as large as #kf_qi_max.*/
-  int kf_qi_max;
-  /**The minimum quality to use for a delta frame.
-   * Valid values range from 0 to 63, inclusive, with higher values giving
-   *  higher quality.*/
-  int df_qi_min;
-  /**The maximum quality to use for a delta frame.
-   * Valid values range from 0 to 63, inclusive, with higher values giving
-   *  higher quality.
-   * This must be at least as large as #df_qi_max.*/
-  int df_qi_max;
-}th_vbr_cfg;
-
-/**The configuration information for the constant QI encoding mode.
- * This mode encodes the video with a constant quality index.
- * This is the fastest encoding mode.
- * It can be enabled by calling th_encode_ctl() with #TH_ENCCTL_SETUP_CQI.
- * See the #th_info struct documentation for details on how the default
- *  encoding mode is chosen.*/
-typedef struct th_cqi_cfg{
-  /**The target quality index.
-     Valid values range from 0 to 63, inclusive, with higher values giving
-      higher quality.*/
-  int qi;
-}th_cqi_cfg;
-
-/**\name th_encode_ctl() codes
- * \anchor encctlcodes
- * These are the available request codes for th_encode_ctl().
- * By convention, these are even, to distinguish them from the
- *  \ref decctlcodes "decoder control codes".
- * Keep any experimental or vendor-specific values above \c 0x8000.*/
-/*@{*/
-/**Sets the Huffman tables to use.
- * The tables are copied, not stored by reference, so they can be freed after
- *  this call.
- * <tt>NULL</tt> may be specified to revert to the default tables.
- *
- * \param[in] _buf <tt>#th_huff_code[#TH_NHUFFMAN_TABLES][#TH_NDCT_TOKENS]</tt>
- * \retval TH_FAULT  \a _enc_ctx is <tt>NULL</tt>.
- * \retval TH_EINVAL Encoding has already begun or one or more of the given
- *                     tables is not full or prefix-free, \a _buf is
- *                     <tt>NULL</tt> and \a _buf_sz is not zero, or \a _buf is
- *                     non-<tt>NULL</tt> and \a _buf_sz is not
- *                     <tt>sizeof(#th_huff_code)*#TH_NHUFFMAN_TABLES*#TH_NDCT_TOKENS</tt>.
- * \retval TH_IMPL   Not supported by this implementation.*/
-#define TH_ENCCTL_SET_HUFFMAN_CODES (0)
-/**Sets the quantization parameters to use.
- * The parameters are copied, not stored by reference, so they can be freed
- *  after this call.
- * <tt>NULL</tt> may be specified to revert to the default parameters.
- * For the current encoder, <tt>scale[ci!=0][qi]</tt> must be no greater than
- *  <tt>scale[ci!=0][qi-1]</tt> and <tt>base[qti][pli][qi][ci]</tt> must be no
- *  greater than <tt>base[qti][pli][qi-1][ci]</tt>.
- * These two conditions ensure that the actual quantizer for a given \a qti,
- *  \a pli, and \a ci does not increase as \a qi increases.
- *
- * \param[in] _buf #th_quant_info
- * \retval TH_FAULT  \a _enc_ctx is <tt>NULL</tt>.
- * \retval TH_EINVAL Encoding has already begun, the quantization parameters
- *                    do not meet one of the above stated conditions, \a _buf
- *                    is <tt>NULL</tt> and \a _buf_sz is not zero, or \a _buf
- *                    is non-<tt>NULL</tt> and \a _buf_sz is not
- *                    <tt>sizeof(#th_quant_info)</tt>.
- * \retval TH_IMPL   Not supported by this implementation.*/
-#define TH_ENCCTL_SET_QUANT_PARAMS (2)
-/**Sets the maximum distance between key frames.
- * This can be changed during an encode, but will be bounded by
- *  <tt>1<<th_info#keyframe_granule_shift</tt>.
- * If it is set before encoding begins, th_info#keyframe_granule_shift will
- *  be enlarged appropriately.
- *
- * \param[in]  _buf <tt>ogg_uint32_t</tt>: The maximum distance between key
- *                   frames.
- * \param[out] _buf <tt>ogg_uint32_t</tt>: The actual maximum distance set.
- * \retval TH_FAULT  \a _enc_ctx or \a _buf is <tt>NULL</tt>.
- * \retval TH_EINVAL \a _buf_sz is not <tt>sizeof(ogg_uint32_t)</tt>.
- * \retval TH_IMPL   Not supported by this implementation.*/
-#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4)
-/**Disables any encoder features that would prevent lossless transcoding back
- *  to VP3.
- * 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.
- *
- * \param[in]  _buf <tt>int</tt>: a non-zero value to enable VP3 compatibility,
- *                   or 0 to disable it (the default).
- * \param[out] _buf <tt>int</tt>: 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.
- * \retval TH_FAULT  \a _enc_ctx or \a _buf is <tt>NULL</tt>.
- * \retval TH_EINVAL \a _buf_sz is not <tt>sizeof(int)</tt>.
- * \retval TH_IMPL   Not supported by this implementation.*/
-#define TH_ENCCTL_SET_VP3_COMPATIBLE (10)
-/**Gets the maximum speed level.
- * 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.).
- *
- * \param[out] _buf int: The maximum encoding speed level.
- * \retval TH_FAULT  \a _enc_ctx or \a _buf is <tt>NULL</tt>.
- * \retval TH_EINVAL \a _buf_sz is not <tt>sizeof(int)</tt>.
- * \retval TH_IMPL   Not supported by this implementation in the current
- *                    encoding mode.*/
-#define TH_ENCCTL_GET_SPLEVEL_MAX (12)
-/**Sets the speed level.
- * By default, the slowest speed (0) is used.
- *
- * \param[in] _buf int: The new encoding speed level.
- *                      0 is slowest, larger values use less CPU.
- * \retval TH_FAULT  \a _enc_ctx or \a _buf is <tt>NULL</tt>.
- * \retval TH_EINVAL \a _buf_sz is not <tt>sizeof(int)</tt>, 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.
- * \retval TH_IMPL   Not supported by this implementation in the current
- *                    encoding mode.*/
-#define TH_ENCCTL_SET_SPLEVEL (14)
-/**Puts the encoder in VBR mode.
- * This can be done at any time during the encoding process, with different
- *  configuration parameters, to encode different regions of the video segment
- *  with different qualities.
- * See the #th_info struct documentation for details on how the default
- *  encoding mode is chosen.
- *
- * \param[in] _buf <tt>#th_vbr_cfg</tt>: the configuration parameters.
- *                 This may be <tt>NULL</tt>, in which case the current VBR
- *                  configuration is unchanged.
- *                 The default is to use the QI setting passed in via the
- *                  #th_info struct when the encoder was initialized, with
- *                  a full range of admissible quantizers.
- * \retval OC_EFAULT \a _enc_ctx is <tt>NULL</tt>.
- * \retval TH_EINVAL The configuration parameters do not meet one of their
- *                    stated requirements, \a _buf is <tt>NULL</tt> and
- *                    \a _buf_sz is not zero, or \a _buf is non-<tt>NULL</tt>
- *                    and \a _buf_sz is not <tt>sizeof(#th_vbr_cfg)</tt>.
- * \retval TH_IMPL   Not supported by this implementation.*/
-#define TH_ENCCTL_SETUP_VBR (16)
-/**Puts the encoder in CQI mode.
- * This can be done at any time during the encoding process, with different QI
- *  values.
- * See the #th_info struct documentation for details on how the default
- *  encoding mode is chosen.
- *
- * \param[in] _buf <tt>#th_cqi_cfg</tt>: the configuration parameters.
- *                 This may be <tt>NULL</tt>, in which case the current CQI
- *                  configuration is unchanged.
- *                 The default is to use the QI setting passed in via the
- *                  #th_info struct when the encoder was initialized.
- * \retval OC_EFAULT \a _enc_ctx is <tt>NULL</tt>.
- * \retval TH_EINVAL \a _buf_sz is not <tt>sizeof(#th_cqi_cfg)</tt>.
- * \retval TH_IMPL   Not supported by this implementation.*/
-#define TH_ENCCTL_SETUP_CQI (18)
-/*@}*/
-
-
-
-/**The quantization parameters used by VP3.*/
-extern const th_quant_info TH_VP31_QUANT_INFO;
-
-/**The Huffman tables used by VP3.*/
-extern const th_huff_code
- TH_VP31_HUFF_CODES[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS];
-
-
-
-/**\name Encoder state
-   The following data structure is opaque, and its contents are not publicly
-    defined by this API.
-   Referring to its internals directly is unsupported, and may break without
-    warning.*/
-/*@{*/
-/**The encoder context.*/
-typedef struct th_enc_ctx    th_enc_ctx;
-/*@}*/
-
-
-
-/**\defgroup encfuncs Functions for Encoding*/
-/*@{*/
-/**\name Functions for encoding
- * You must link to <tt>libtheoraenc</tt> and <tt>libtheoradec</tt>
- *  if you use any of the functions in this section.
- *
- * The functions are listed in the order they are used in a typical encode.
- * The basic steps are:
- * - Fill in a #th_info structure with details on the format of the video
- *    you wish to encode.
- * - Allocate a #th_enc_ctx handle with th_encode_alloc().
- * - Perform any additional encoder configuration required with
- *    th_encode_ctl().
- * - Repeatedly call th_encode_flushheader() to retrieve all the header
- *    packets.
- * - For each uncompressed frame:
- *   - Submit the uncompressed frame via th_encode_ycbcr_in()
- *   - Repeatedly call th_encode_packetout() to retrieve any video data
- *      packets that are ready.
- * - Call th_encode_free() to release all encoder memory.*/
-/*@{*/
-/**Allocates an encoder instance.
- * \param _info A #th_info struct filled with the desired encoding
- *               parameters.
- * \return The initialized #th_enc_ctx handle.
- * \retval NULL If the encoding parameters were invalid.*/
-extern th_enc_ctx *th_encode_alloc(const th_info *_info);
-/**Encoder control function.
- * This is used to provide advanced control the encoding process.
- * \param _enc    A #th_enc_ctx handle.
- * \param _req    The control code to process.
- *                See \ref encctlcodes "the list of available control codes"
- *                 for details.
- * \param _buf    The parameters for this control code.
- * \param _buf_sz The size of the parameter buffer.*/
-extern int th_encode_ctl(th_enc_ctx *_enc,int _req,void *_buf,
- size_t _buf_sz);
-/**Outputs the next header packet.
- * This should be called repeatedly after encoder initialization until it
- *  returns 0 in order to get all of the header packets, in order, before
- *  encoding actual video data.
- * \param _enc      A #th_enc_ctx handle.
- * \param _comments The metadata to place in the comment header, when it is
- *                   encoded.
- * \param _op       An <tt>ogg_packet</tt> structure to fill.
- *                  All of the elements of this structure will be set,
- *                   including a pointer to the header data.
- *                  The memory for the header data is owned by
- *                   <tt>libtheoraenc</tt>, and may be invalidated when the
- *                   next encoder function is called.
- * \return A positive value indicates that a header packet was successfully
- *          produced.
- * \retval 0        No packet was produced, and no more header packets remain.
- * \retval TH_FAULT \a _enc, \a _comments, or \a _op was <tt>NULL</tt>.*/
-extern int th_encode_flushheader(th_enc_ctx *_enc,
- th_comment *_comments,ogg_packet *_op);
-/**Submits an uncompressed frame to the encoder.
- * \param _enc   A #th_enc_ctx handle.
- * \param _ycbcr A buffer of Y'CbCr data to encode.
- * \retval 0         Success.
- * \retval TH_FAULT  \a _enc or \a _ycbcr is <tt>NULL</tt>.
- * \retval TH_EINVAL The buffer size does not match the frame size the encoder
- *                    was initialized with, or encoding has already
- *                    completed.*/
-extern int th_encode_ycbcr_in(th_enc_ctx *_enc,
- th_ycbcr_buffer _ycbcr);
-/**Retrieves encoded video data packets.
- * This should be called repeatedly after each frame is submitted to flush any
- *  encoded packets, until it returns 0.
- * The encoder will not buffer these packets as subsequent frames are
- *  compressed, so a failure to do so will result in lost video data.
- * \note Currently the encoder operates in a one-frame-in, one-packet-out
- *        manner.
- *       However, this may be changed in the future.
- * \param _enc  A #th_enc_ctx handle.
- * \param _last Set this flag to a non-zero value if no more uncompressed
- *               frames will be submitted.
- *              This ensures that a proper EOS flag is set on the last packet.
- * \param _op   An <tt>ogg_packet</tt> structure to fill.
- *              All of the elements of this structure will be set, including a
- *               pointer to the video data.
- *              The memory for the video data is owned by
- *               <tt>libtheoraenc</tt>, and may be invalidated when the next
- *               encoder function is called.
- * \return A positive value indicates that a video data packet was successfully
- *          produced.
- * \retval 0        No packet was produced, and no more encoded video data
- *                   remains.
- * \retval TH_FAULT \a _enc or \a _op was <tt>NULL</tt>.*/
-extern int th_encode_packetout(th_enc_ctx *_enc,int _last,
- ogg_packet *_op);
-/**Frees an allocated encoder instance.
- * \param _enc A #th_enc_ctx handle.*/
-extern void th_encode_free(th_enc_ctx *_enc);
-/*@}*/
-/*@}*/
-
-
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif



More information about the commits mailing list