| 
    FFmpeg
    
   | 
 
IntraX8 (J-Frame) subdecoder, used by WMV2 and VC-1. More...
#include "libavutil/avassert.h"#include "libavutil/mem.h"#include "libavutil/thread.h"#include "avcodec.h"#include "get_bits.h"#include "idctdsp.h"#include "msmpeg4_vc1_data.h"#include "intrax8huf.h"#include "intrax8.h"#include "intrax8dsp.h"#include "mpegutils.h"Go to the source code of this file.
Macros | |
| #define | VLC_BUFFER_SIZE 28150 | 
| #define | MAX_TABLE_DEPTH(table_bits, max_bits) ((max_bits + table_bits - 1) / table_bits) | 
| #define | DC_VLC_BITS 9 | 
| #define | AC_VLC_BITS 9 | 
| #define | OR_VLC_BITS 7 | 
| #define | DC_VLC_MTD MAX_TABLE_DEPTH(DC_VLC_BITS, MAX_DC_VLC_BITS) | 
| #define | AC_VLC_MTD MAX_TABLE_DEPTH(AC_VLC_BITS, MAX_AC_VLC_BITS) | 
| #define | OR_VLC_MTD MAX_TABLE_DEPTH(OR_VLC_BITS, MAX_OR_VLC_BITS) | 
| #define | extra_bits(eb) (eb) | 
| #define | extra_run (0xFF << 8) | 
| #define | extra_level (0x00 << 8) | 
| #define | run_offset(r) ((r) << 16) | 
| #define | level_offset(l) ((l) << 24) | 
| #define | B(x, y) w->block[w->idct_permutation[(x) + (y) * 8]] | 
| #define | T(x) ((x) * dc_level + 0x8000) >> 16; | 
Functions | |
| static const av_cold VLCElem * | x8_init_vlc (VLCInitState *state, int nb_bits, int nb_codes, const uint8_t table[][2]) | 
| static av_cold void | x8_vlc_init (void) | 
| static void | x8_reset_vlc_tables (IntraX8Context *w) | 
| static void | x8_select_ac_table (IntraX8Context *const w, int mode) | 
| static int | x8_get_orient_vlc (IntraX8Context *w) | 
| static void | x8_get_ac_rlf (IntraX8Context *const w, const int mode, int *const run, int *const level, int *const final) | 
| static int | x8_get_dc_rlf (IntraX8Context *const w, const int mode, int *const level, int *const final) | 
| static int | x8_setup_spatial_predictor (IntraX8Context *const w, const int chroma) | 
| static void | x8_update_predictions (IntraX8Context *const w, const int orient, const int est_run) | 
| static void | x8_get_prediction_chroma (IntraX8Context *const w) | 
| static void | x8_get_prediction (IntraX8Context *const w) | 
| static void | x8_ac_compensation (IntraX8Context *const w, const int direction, const int dc_level) | 
| static void | dsp_x8_put_solidcolor (const uint8_t pix, uint8_t *dst, const ptrdiff_t linesize) | 
| static int | x8_decode_intra_mb (IntraX8Context *const w, const int chroma) | 
| static void | x8_init_block_index (IntraX8Context *w, AVFrame *frame) | 
| av_cold int | ff_intrax8_common_init (AVCodecContext *avctx, IntraX8Context *w, int16_t block[64], int mb_width, int mb_height) | 
| Initialize IntraX8 frame decoder.  More... | |
| av_cold void | ff_intrax8_common_end (IntraX8Context *w) | 
| Destroy IntraX8 frame structure.  More... | |
| int | ff_intrax8_decode_picture (IntraX8Context *w, MPVPicture *pict, GetBitContext *gb, int *mb_x, int *mb_y, int dquant, int quant_offset, int loopfilter, int lowdelay) | 
| Decode single IntraX8 frame.  More... | |
Variables | |
| static const VLCElem * | j_ac_vlc [2][2][8] | 
| static const VLCElem * | j_dc_vlc [2][8] | 
| static const VLCElem * | j_orient_vlc [2][4] | 
| static const uint32_t | ac_decode_table [] | 
| static const uint8_t | dc_index_offset [] | 
| static const int16_t | quant_table [64] | 
IntraX8 (J-Frame) subdecoder, used by WMV2 and VC-1.
Definition in file intrax8.c.
| #define MAX_TABLE_DEPTH | ( | table_bits, | |
| max_bits | |||
| ) | ((max_bits + table_bits - 1) / table_bits) | 
| #define DC_VLC_MTD MAX_TABLE_DEPTH(DC_VLC_BITS, MAX_DC_VLC_BITS) | 
| #define AC_VLC_MTD MAX_TABLE_DEPTH(AC_VLC_BITS, MAX_AC_VLC_BITS) | 
| #define OR_VLC_MTD MAX_TABLE_DEPTH(OR_VLC_BITS, MAX_OR_VLC_BITS) | 
| #define T | ( | x | ) | ((x) * dc_level + 0x8000) >> 16; | 
      
  | 
  static | 
Definition at line 53 of file intrax8.c.
Referenced by x8_vlc_init().
      
  | 
  static | 
Definition at line 60 of file intrax8.c.
Referenced by ff_intrax8_common_init().
      
  | 
  static | 
Definition at line 88 of file intrax8.c.
Referenced by ff_intrax8_decode_picture().
      
  | 
  inlinestatic | 
Definition at line 95 of file intrax8.c.
Referenced by x8_decode_intra_mb().
      
  | 
  inlinestatic | 
Definition at line 110 of file intrax8.c.
Referenced by x8_setup_spatial_predictor().
      
  | 
  static | 
Definition at line 167 of file intrax8.c.
Referenced by x8_decode_intra_mb().
      
  | 
  static | 
Definition at line 247 of file intrax8.c.
Referenced by x8_decode_intra_mb().
      
  | 
  static | 
Definition at line 283 of file intrax8.c.
Referenced by ff_intrax8_decode_picture().
      
  | 
  static | 
Definition at line 341 of file intrax8.c.
Referenced by x8_decode_intra_mb().
      
  | 
  static | 
Definition at line 351 of file intrax8.c.
Referenced by ff_intrax8_decode_picture().
      
  | 
  static | 
Definition at line 367 of file intrax8.c.
Referenced by ff_intrax8_decode_picture().
      
  | 
  static | 
Definition at line 436 of file intrax8.c.
Referenced by x8_decode_intra_mb().
      
  | 
  static | 
Definition at line 501 of file intrax8.c.
Referenced by x8_decode_intra_mb().
      
  | 
  static | 
Definition at line 522 of file intrax8.c.
Referenced by ff_intrax8_decode_picture().
      
  | 
  static | 
Definition at line 662 of file intrax8.c.
Referenced by ff_intrax8_decode_picture().
| av_cold int ff_intrax8_common_init | ( | AVCodecContext * | avctx, | 
| IntraX8Context * | w, | ||
| int16_t | block[64], | ||
| int | mb_width, | ||
| int | mb_height | ||
| ) | 
Initialize IntraX8 frame decoder.
| avctx | pointer to AVCodecContext | 
| w | pointer to IntraX8Context | 
| block | pointer to block array | 
| mb_width | macroblock width | 
| mb_height | macroblock height | 
Definition at line 679 of file intrax8.c.
Referenced by vc1_decode_init_alloc_tables(), and wmv2_decode_init().
| av_cold void ff_intrax8_common_end | ( | IntraX8Context * | w | ) | 
Destroy IntraX8 frame structure.
| w | pointer to IntraX8Context | 
Definition at line 716 of file intrax8.c.
Referenced by vc1_decode_reset(), and wmv2_decode_end().
| int ff_intrax8_decode_picture | ( | IntraX8Context * | w, | 
| MPVPicture * | pict, | ||
| GetBitContext * | gb, | ||
| int * | mb_x, | ||
| int * | mb_y, | ||
| int | quant, | ||
| int | halfpq, | ||
| int | loopfilter, | ||
| int | lowdelay | ||
| ) | 
Decode single IntraX8 frame.
lowres decoding is theoretically impossible.
| w | pointer to IntraX8Context | 
| pict | the output Picture containing an AVFrame | 
| gb | open bitstream reader | 
| mb_x | pointer to the x coordinate of the current macroblock | 
| mb_y | pointer to the y coordinate of the current macroblock | 
| dquant | doubled quantizer, it would be odd in case of VC-1 halfpq==1. | 
| quant_offset | offset away from zero | 
| loopfilter | enable filter after decoding a block | 
Definition at line 721 of file intrax8.c.
Referenced by ff_vc1_decode_blocks(), and ff_wmv2_decode_secondary_picture_header().
      
  | 
  static | 
Definition at line 49 of file intrax8.c.
Referenced by x8_select_ac_table(), and x8_vlc_init().
      
  | 
  static | 
Definition at line 50 of file intrax8.c.
Referenced by x8_get_dc_rlf(), and x8_vlc_init().
      
  | 
  static | 
Definition at line 51 of file intrax8.c.
Referenced by x8_get_orient_vlc(), and x8_vlc_init().
      
  | 
  static | 
Definition at line 125 of file intrax8.c.
Referenced by x8_get_ac_rlf().
      
  | 
  static | 
Definition at line 243 of file intrax8.c.
Referenced by x8_get_dc_rlf().
      
  | 
  static | 
Definition at line 511 of file intrax8.c.
Referenced by decode_line(), ff_ffv1_read_quant_tables(), get_context_TMPL(), read_quant_table(), write_quant_table(), write_quant_tables(), and x8_decode_intra_mb().
 1.8.17