huffyuvdec.c File Reference

huffyuv decoder More...

#include "avcodec.h"
#include "get_bits.h"
#include "huffyuv.h"
#include "thread.h"
Include dependency graph for huffyuvdec.c:

Go to the source code of this file.

Macros

#define classic_shift_luma_table_size   42
 
#define classic_shift_chroma_table_size   59
 
#define READ_2PIX(dst0, dst1, plane1)
 

Functions

static int read_len_table (uint8_t *dst, GetBitContext *gb)
 
static int generate_joint_tables (HYuvContext *s)
 
static int read_huffman_tables (HYuvContext *s, const uint8_t *src, int length)
 
static int read_old_huffman_tables (HYuvContext *s)
 
static av_cold int decode_init (AVCodecContext *avctx)
 
static av_cold int decode_init_thread_copy (AVCodecContext *avctx)
 
static void decode_422_bitstream (HYuvContext *s, int count)
 
static void decode_gray_bitstream (HYuvContext *s, int count)
 
static av_always_inline void decode_bgr_1 (HYuvContext *s, int count, int decorrelate, int alpha)
 
static void decode_bgr_bitstream (HYuvContext *s, int count)
 
static void draw_slice (HYuvContext *s, AVFrame *frame, int y)
 
static int decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
 
static av_cold int decode_end (AVCodecContext *avctx)
 

Variables

static const unsigned char classic_shift_luma [classic_shift_luma_table_size+FF_INPUT_BUFFER_PADDING_SIZE]
 
static const unsigned char classic_shift_chroma [classic_shift_chroma_table_size+FF_INPUT_BUFFER_PADDING_SIZE]
 
static const unsigned char classic_add_luma [256]
 
static const unsigned char classic_add_chroma [256]
 

Detailed Description

huffyuv decoder

Definition in file huffyuvdec.c.

Macro Definition Documentation

#define classic_shift_chroma_table_size   59

Definition at line 44 of file huffyuvdec.c.

Referenced by read_old_huffman_tables().

#define classic_shift_luma_table_size   42

Definition at line 36 of file huffyuvdec.c.

Referenced by read_old_huffman_tables().

#define READ_2PIX (   dst0,
  dst1,
  plane1 
)
Value:
{\
uint16_t code = get_vlc2(&s->gb, s->vlc[3+plane1].table, VLC_BITS, 1);\
if(code != 0xffff){\
dst0 = code>>8;\
dst1 = code;\
}else{\
dst0 = get_vlc2(&s->gb, s->vlc[0].table, VLC_BITS, 3);\
dst1 = get_vlc2(&s->gb, s->vlc[plane1].table, VLC_BITS, 3);\
}\
}
const char * s
Definition: avisynth_c.h:668
#define VLC_BITS
Definition: asvdec.c:36
initialize output if(nPeaks >3)%at least 3 peaks in spectrum for trying to find f0 nf0peaks
static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE(*table)[2], int bits, int max_depth)
Parse a vlc code.
Definition: get_bits.h:524
or the Software in violation of any applicable export control laws in any jurisdiction Except as provided by mandatorily applicable UPF has no obligation to provide you with source code to the Software In the event Software contains any source code

Definition at line 388 of file huffyuvdec.c.

Referenced by decode_422_bitstream(), and decode_gray_bitstream().

Function Documentation

static void decode_422_bitstream ( HYuvContext s,
int  count 
)
static

Definition at line 399 of file huffyuvdec.c.

Referenced by decode_frame().

static av_always_inline void decode_bgr_1 ( HYuvContext s,
int  count,
int  decorrelate,
int  alpha 
)
static

Definition at line 435 of file huffyuvdec.c.

Referenced by decode_bgr_bitstream().

static void decode_bgr_bitstream ( HYuvContext s,
int  count 
)
static

Definition at line 459 of file huffyuvdec.c.

Referenced by decode_frame().

static av_cold int decode_end ( AVCodecContext avctx)
static

Definition at line 752 of file huffyuvdec.c.

static int decode_frame ( AVCodecContext avctx,
void data,
int *  got_frame,
AVPacket avpkt 
)
static

Definition at line 503 of file huffyuvdec.c.

Referenced by decode_end().

static void decode_gray_bitstream ( HYuvContext s,
int  count 
)
static

Definition at line 418 of file huffyuvdec.c.

Referenced by decode_frame().

static av_cold int decode_init ( AVCodecContext avctx)
static

Definition at line 252 of file huffyuvdec.c.

Referenced by decode_end().

static av_cold int decode_init_thread_copy ( AVCodecContext avctx)
static

Definition at line 361 of file huffyuvdec.c.

Referenced by decode_end().

static void draw_slice ( HYuvContext s,
AVFrame frame,
int  y 
)
static

Definition at line 474 of file huffyuvdec.c.

Referenced by decode_frame().

static int generate_joint_tables ( HYuvContext s)
static

Definition at line 109 of file huffyuvdec.c.

Referenced by read_huffman_tables(), and read_old_huffman_tables().

static int read_huffman_tables ( HYuvContext s,
const uint8_t src,
int  length 
)
static

Definition at line 187 of file huffyuvdec.c.

Referenced by decode_frame(), decode_init(), and decode_init_thread_copy().

static int read_len_table ( uint8_t dst,
GetBitContext gb 
)
static

Definition at line 90 of file huffyuvdec.c.

Referenced by read_huffman_tables(), and read_old_huffman_tables().

static int read_old_huffman_tables ( HYuvContext s)
static

Definition at line 213 of file huffyuvdec.c.

Referenced by decode_init(), and decode_init_thread_copy().

Variable Documentation

const unsigned char classic_add_chroma[256]
static
Initial value:
= {
3, 1, 2, 2, 2, 2, 3, 3, 7, 5, 7, 5, 8, 6, 11, 9,
7, 13, 11, 10, 9, 8, 7, 5, 9, 7, 6, 4, 7, 5, 8, 7,
11, 8, 13, 11, 19, 15, 22, 23, 20, 33, 32, 28, 27, 29, 51, 77,
43, 45, 76, 81, 46, 82, 75, 55, 56,144, 58, 80, 60, 74,147, 63,
143, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 27, 30, 21, 22,
17, 14, 5, 6,100, 54, 47, 50, 51, 53,106,107,108,109,110,111,
112,113,114,115, 4,117,118, 92, 94,121,122, 3,124,103, 2, 1,
0,129,130,131,120,119,126,125,136,137,138,139,140,141,142,134,
135,132,133,104, 64,101, 62, 57,102, 95, 93, 59, 61, 28, 97, 96,
52, 49, 48, 29, 32, 25, 24, 46, 23, 98, 45, 44, 43, 20, 42, 41,
19, 18, 99, 40, 15, 39, 38, 16, 13, 12, 11, 37, 10, 9, 8, 36,
7,128,127,105,123,116, 35, 34, 33,145, 31, 79, 42,146, 78, 26,
83, 48, 49, 50, 44, 47, 26, 31, 30, 18, 17, 19, 21, 24, 25, 13,
14, 16, 17, 18, 20, 21, 12, 14, 15, 9, 10, 6, 9, 6, 5, 8,
6, 12, 8, 10, 7, 9, 6, 4, 6, 2, 2, 3, 3, 3, 3, 2,
}

Definition at line 71 of file huffyuvdec.c.

Referenced by read_old_huffman_tables().

const unsigned char classic_add_luma[256]
static
Initial value:
= {
3, 9, 5, 12, 10, 35, 32, 29, 27, 50, 48, 45, 44, 41, 39, 37,
73, 70, 68, 65, 64, 61, 58, 56, 53, 50, 49, 46, 44, 41, 38, 36,
68, 65, 63, 61, 58, 55, 53, 51, 48, 46, 45, 43, 41, 39, 38, 36,
35, 33, 32, 30, 29, 27, 26, 25, 48, 47, 46, 44, 43, 41, 40, 39,
37, 36, 35, 34, 32, 31, 30, 28, 27, 26, 24, 23, 22, 20, 19, 37,
35, 34, 33, 31, 30, 29, 27, 26, 24, 23, 21, 20, 18, 17, 15, 29,
27, 26, 24, 22, 21, 19, 17, 16, 14, 26, 25, 23, 21, 19, 18, 16,
15, 27, 25, 23, 21, 19, 17, 16, 14, 26, 25, 23, 21, 18, 17, 14,
12, 17, 19, 13, 4, 9, 2, 11, 1, 7, 8, 0, 16, 3, 14, 6,
12, 10, 5, 15, 18, 11, 10, 13, 15, 16, 19, 20, 22, 24, 27, 15,
18, 20, 22, 24, 26, 14, 17, 20, 22, 24, 27, 15, 18, 20, 23, 25,
28, 16, 19, 22, 25, 28, 32, 36, 21, 25, 29, 33, 38, 42, 45, 49,
28, 31, 34, 37, 40, 42, 44, 47, 49, 50, 52, 54, 56, 57, 59, 60,
62, 64, 66, 67, 69, 35, 37, 39, 40, 42, 43, 45, 47, 48, 51, 52,
54, 55, 57, 59, 60, 62, 63, 66, 67, 69, 71, 72, 38, 40, 42, 43,
46, 47, 49, 51, 26, 28, 30, 31, 33, 34, 18, 19, 11, 13, 7, 8,
}

Definition at line 52 of file huffyuvdec.c.

Referenced by read_old_huffman_tables().

const unsigned char classic_shift_chroma[classic_shift_chroma_table_size+FF_INPUT_BUFFER_PADDING_SIZE]
static
Initial value:
= {
66,36,37,38,39,40,41,75,76,77,110,239,144,81,82,83,84,85,118,183,
56,57,88,89,56,89,154,57,58,57,26,141,57,56,58,57,58,57,184,119,
214,245,116,83,82,49,80,79,78,77,44,75,41,40,39,38,37,36,34, 0,
0,0,0,0,0,0,0,0,
}

Definition at line 45 of file huffyuvdec.c.

Referenced by read_old_huffman_tables().

const unsigned char classic_shift_luma[classic_shift_luma_table_size+FF_INPUT_BUFFER_PADDING_SIZE]
static
Initial value:
= {
34,36,35,69,135,232,9,16,10,24,11,23,12,16,13,10,14,8,15,8,
16,8,17,20,16,10,207,206,205,236,11,8,10,21,9,23,8,8,199,70,
69,68, 0,
0,0,0,0,0,0,0,0,
}

Definition at line 37 of file huffyuvdec.c.

Referenced by read_old_huffman_tables().