summaryrefslogtreecommitdiff
path: root/media/libtheora/lib/decint.h
diff options
context:
space:
mode:
Diffstat (limited to 'media/libtheora/lib/decint.h')
-rw-r--r--media/libtheora/lib/decint.h186
1 files changed, 0 insertions, 186 deletions
diff --git a/media/libtheora/lib/decint.h b/media/libtheora/lib/decint.h
deleted file mode 100644
index bd6522273..000000000
--- a/media/libtheora/lib/decint.h
+++ /dev/null
@@ -1,186 +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-2009 *
- * by the Xiph.Org Foundation and contributors http://www.xiph.org/ *
- * *
- ********************************************************************
-
- function:
- last mod: $Id: decint.h 17457 2010-09-24 02:05:49Z tterribe $
-
- ********************************************************************/
-
-#include <limits.h>
-#if !defined(_decint_H)
-# define _decint_H (1)
-# include "theora/theoradec.h"
-# include "state.h"
-# include "bitpack.h"
-# include "huffdec.h"
-# include "dequant.h"
-
-typedef struct th_setup_info oc_setup_info;
-typedef struct oc_dec_opt_vtable oc_dec_opt_vtable;
-typedef struct oc_dec_pipeline_state oc_dec_pipeline_state;
-typedef struct th_dec_ctx oc_dec_ctx;
-
-
-
-/*Decoder-specific accelerated functions.*/
-# if defined(OC_C64X_ASM)
-# include "c64x/c64xdec.h"
-# endif
-
-# if !defined(oc_dec_accel_init)
-# define oc_dec_accel_init oc_dec_accel_init_c
-# endif
-# if defined(OC_DEC_USE_VTABLE)
-# if !defined(oc_dec_dc_unpredict_mcu_plane)
-# define oc_dec_dc_unpredict_mcu_plane(_dec,_pipe,_pli) \
- ((*(_dec)->opt_vtable.dc_unpredict_mcu_plane)(_dec,_pipe,_pli))
-# endif
-# else
-# if !defined(oc_dec_dc_unpredict_mcu_plane)
-# define oc_dec_dc_unpredict_mcu_plane oc_dec_dc_unpredict_mcu_plane_c
-# endif
-# endif
-
-
-
-/*Constants for the packet-in state machine specific to the decoder.*/
-
-/*Next packet to read: Data packet.*/
-#define OC_PACKET_DATA (0)
-
-
-
-struct th_setup_info{
- /*The Huffman codes.*/
- ogg_int16_t *huff_tables[TH_NHUFFMAN_TABLES];
- /*The quantization parameters.*/
- th_quant_info qinfo;
-};
-
-
-
-/*Decoder specific functions with accelerated variants.*/
-struct oc_dec_opt_vtable{
- void (*dc_unpredict_mcu_plane)(oc_dec_ctx *_dec,
- oc_dec_pipeline_state *_pipe,int _pli);
-};
-
-
-
-struct oc_dec_pipeline_state{
- /*Decoded DCT coefficients.
- These are placed here instead of on the stack so that they can persist
- between blocks, which makes clearing them back to zero much faster when
- only a few non-zero coefficients were decoded.
- It requires at least 65 elements because the zig-zag index array uses the
- 65th element as a dumping ground for out-of-range indices to protect us
- from buffer overflow.
- We make it fully twice as large so that the second half can serve as the
- reconstruction buffer, which saves passing another parameter to all the
- acceleration functios.
- It also solves problems with 16-byte alignment for NEON on ARM.
- gcc (as of 4.2.1) only seems to be able to give stack variables 8-byte
- alignment, and silently produces incorrect results if you ask for 16.
- Finally, keeping it off the stack means there's less likely to be a data
- hazard beween the NEON co-processor and the regular ARM core, which avoids
- unnecessary stalls.*/
- OC_ALIGN16(ogg_int16_t dct_coeffs[128]);
- OC_ALIGN16(signed char bounding_values[256]);
- ptrdiff_t ti[3][64];
- ptrdiff_t ebi[3][64];
- ptrdiff_t eob_runs[3][64];
- const ptrdiff_t *coded_fragis[3];
- const ptrdiff_t *uncoded_fragis[3];
- ptrdiff_t ncoded_fragis[3];
- ptrdiff_t nuncoded_fragis[3];
- const ogg_uint16_t *dequant[3][3][2];
- int fragy0[3];
- int fragy_end[3];
- int pred_last[3][4];
- int mcu_nvfrags;
- int loop_filter;
- int pp_level;
-};
-
-
-struct th_dec_ctx{
- /*Shared encoder/decoder state.*/
- oc_theora_state state;
- /*Whether or not packets are ready to be emitted.
- This takes on negative values while there are remaining header packets to
- be emitted, reaches 0 when the codec is ready for input, and goes to 1
- when a frame has been processed and a data packet is ready.*/
- int packet_state;
- /*Buffer in which to assemble packets.*/
- oc_pack_buf opb;
- /*Huffman decode trees.*/
- ogg_int16_t *huff_tables[TH_NHUFFMAN_TABLES];
- /*The index of the first token in each plane for each coefficient.*/
- ptrdiff_t ti0[3][64];
- /*The number of outstanding EOB runs at the start of each coefficient in each
- plane.*/
- ptrdiff_t eob_runs[3][64];
- /*The DCT token lists.*/
- unsigned char *dct_tokens;
- /*The extra bits associated with DCT tokens.*/
- unsigned char *extra_bits;
- /*The number of dct tokens unpacked so far.*/
- int dct_tokens_count;
- /*The out-of-loop post-processing level.*/
- int pp_level;
- /*The DC scale used for out-of-loop deblocking.*/
- int pp_dc_scale[64];
- /*The sharpen modifier used for out-of-loop deringing.*/
- int pp_sharp_mod[64];
- /*The DC quantization index of each block.*/
- unsigned char *dc_qis;
- /*The variance of each block.*/
- int *variances;
- /*The storage for the post-processed frame buffer.*/
- unsigned char *pp_frame_data;
- /*Whether or not the post-processsed frame buffer has space for chroma.*/
- int pp_frame_state;
- /*The buffer used for the post-processed frame.
- Note that this is _not_ guaranteed to have the same strides and offsets as
- the reference frame buffers.*/
- th_ycbcr_buffer pp_frame_buf;
- /*The striped decode callback function.*/
- th_stripe_callback stripe_cb;
- oc_dec_pipeline_state pipe;
-# if defined(OC_DEC_USE_VTABLE)
- /*Table for decoder acceleration functions.*/
- oc_dec_opt_vtable opt_vtable;
-# endif
-# if defined(HAVE_CAIRO)
- /*Output metrics for debugging.*/
- int telemetry;
- int telemetry_mbmode;
- int telemetry_mv;
- int telemetry_qi;
- int telemetry_bits;
- int telemetry_frame_bytes;
- int telemetry_coding_bytes;
- int telemetry_mode_bytes;
- int telemetry_mv_bytes;
- int telemetry_qi_bytes;
- int telemetry_dc_bytes;
- unsigned char *telemetry_frame_data;
-# endif
-};
-
-/*Default pure-C implementations of decoder-specific accelerated functions.*/
-void oc_dec_accel_init_c(oc_dec_ctx *_dec);
-
-void oc_dec_dc_unpredict_mcu_plane_c(oc_dec_ctx *_dec,
- oc_dec_pipeline_state *_pipe,int _pli);
-
-#endif