FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
huffyuv.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2002-2003 Michael Niedermayer <michaelni@gmx.at>
3
*
4
* see http://www.pcisys.net/~melanson/codecs/huffyuv.txt for a description of
5
* the algorithm used
6
*
7
* This file is part of FFmpeg.
8
*
9
* FFmpeg is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU Lesser General Public
11
* License as published by the Free Software Foundation; either
12
* version 2.1 of the License, or (at your option) any later version.
13
*
14
* FFmpeg is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* Lesser General Public License for more details.
18
*
19
* You should have received a copy of the GNU Lesser General Public
20
* License along with FFmpeg; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
*/
23
24
/**
25
* @file
26
* huffyuv codec for libavcodec.
27
*/
28
29
#ifndef AVCODEC_HUFFYUV_H
30
#define AVCODEC_HUFFYUV_H
31
32
#include <stdint.h>
33
34
#include "
avcodec.h
"
35
#include "
dsputil.h
"
36
#include "
get_bits.h
"
37
#include "
put_bits.h
"
38
39
#define VLC_BITS 11
40
41
#if HAVE_BIGENDIAN
42
#define B 3
43
#define G 2
44
#define R 1
45
#define A 0
46
#else
47
#define B 0
48
#define G 1
49
#define R 2
50
#define A 3
51
#endif
52
53
typedef
enum
Predictor
{
54
LEFT
= 0,
55
PLANE
,
56
MEDIAN
,
57
}
Predictor
;
58
59
typedef
struct
HYuvContext
{
60
AVCodecContext
*
avctx
;
61
Predictor
predictor
;
62
GetBitContext
gb
;
63
PutBitContext
pb
;
64
int
interlaced
;
65
int
decorrelate
;
66
int
bitstream_bpp
;
67
int
version
;
68
int
yuy2
;
//use yuy2 instead of 422P
69
int
bgr32
;
//use bgr32 instead of bgr24
70
int
width
,
height
;
71
int
flags
;
72
int
context
;
73
int
picture_number
;
74
int
last_slice_end
;
75
uint8_t
*
temp
[3];
76
uint64_t
stats
[3][256];
77
uint8_t
len
[3][256];
78
uint32_t
bits
[3][256];
79
uint32_t
pix_bgr_map
[1<<
VLC_BITS
];
80
VLC
vlc
[6];
//Y,U,V,YY,YU,YV
81
AVFrame
picture
;
82
uint8_t
*
bitstream_buffer
;
83
unsigned
int
bitstream_buffer_size
;
84
DSPContext
dsp
;
85
}
HYuvContext
;
86
87
void
ff_huffyuv_common_init
(
AVCodecContext
*
s
);
88
void
ff_huffyuv_common_end
(
HYuvContext
*
s
);
89
int
ff_huffyuv_alloc_temp
(
HYuvContext
*
s
);
90
int
ff_huffyuv_generate_bits_table
(uint32_t *dst,
const
uint8_t
*len_table);
91
92
#endif
/* AVCODEC_HUFFYUV_H */
Generated on Wed Jul 10 2013 23:47:59 for FFmpeg by
1.8.2