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
mjpegenc.h
Go to the documentation of this file.
1
/*
2
* MJPEG encoder
3
* Copyright (c) 2000, 2001 Fabrice Bellard
4
* Copyright (c) 2003 Alex Beregszaszi
5
* Copyright (c) 2003-2004 Michael Niedermayer
6
*
7
* Support for external huffman table, various fixes (AVID workaround),
8
* aspecting, new decode_frame mechanism and apple mjpeg-b support
9
* by Alex Beregszaszi
10
*
11
* This file is part of FFmpeg.
12
*
13
* FFmpeg is free software; you can redistribute it and/or
14
* modify it under the terms of the GNU Lesser General Public
15
* License as published by the Free Software Foundation; either
16
* version 2.1 of the License, or (at your option) any later version.
17
*
18
* FFmpeg is distributed in the hope that it will be useful,
19
* but WITHOUT ANY WARRANTY; without even the implied warranty of
20
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21
* Lesser General Public License for more details.
22
*
23
* You should have received a copy of the GNU Lesser General Public
24
* License along with FFmpeg; if not, write to the Free Software
25
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
26
*/
27
28
/**
29
* @file
30
* MJPEG encoder.
31
*/
32
33
#ifndef AVCODEC_MJPEGENC_H
34
#define AVCODEC_MJPEGENC_H
35
36
#include <stdint.h>
37
38
#include "
mpegvideo.h
"
39
40
typedef
struct
MJpegContext
{
41
uint8_t
huff_size_dc_luminance
[12];
//FIXME use array [3] instead of lumi / chrom, for easier addressing
42
uint16_t
huff_code_dc_luminance
[12];
43
uint8_t
huff_size_dc_chrominance
[12];
44
uint16_t
huff_code_dc_chrominance
[12];
45
46
uint8_t
huff_size_ac_luminance
[256];
47
uint16_t
huff_code_ac_luminance
[256];
48
uint8_t
huff_size_ac_chrominance
[256];
49
uint16_t
huff_code_ac_chrominance
[256];
50
}
MJpegContext
;
51
52
int
ff_mjpeg_encode_init
(
MpegEncContext
*
s
);
53
void
ff_mjpeg_encode_close
(
MpegEncContext
*
s
);
54
void
ff_mjpeg_encode_picture_header
(
AVCodecContext
*avctx,
PutBitContext
*pb,
55
ScanTable
*intra_scantable,
56
uint16_t luma_intra_matrix[64],
57
uint16_t chroma_intra_matrix[64]);
58
void
ff_mjpeg_encode_picture_trailer
(
PutBitContext
*pb,
int
header_bits);
59
void
ff_mjpeg_escape_FF
(
PutBitContext
*pb,
int
start
);
60
void
ff_mjpeg_encode_stuffing
(
MpegEncContext
*
s
);
61
void
ff_mjpeg_init_hvsample
(
AVCodecContext
*avctx,
int
hsample[3],
int
vsample[3]);
62
void
ff_mjpeg_encode_dc
(
PutBitContext
*pb,
int
val
,
63
uint8_t
*huff_size, uint16_t *huff_code);
64
void
ff_mjpeg_encode_mb
(
MpegEncContext
*
s
, int16_t
block
[6][64]);
65
66
#endif
/* AVCODEC_MJPEGENC_H */
Generated on Sun Mar 23 2014 23:49:59 for FFmpeg by
1.8.2