Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
e3d0f49a
Commit
e3d0f49a
authored
Jun 10, 2015
by
Vittorio Giovara
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mpegvideo: h263: Move all tables to a single file
parent
8b5007a3
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
326 additions
and
279 deletions
+326
-279
Makefile
libavcodec/Makefile
+1
-1
flvenc.c
libavcodec/flvenc.c
+1
-0
h263.c
libavcodec/h263.c
+0
-3
h263.h
libavcodec/h263.h
+1
-29
h263data.c
libavcodec/h263data.c
+292
-0
h263data.h
libavcodec/h263data.h
+26
-243
ituh263dec.c
libavcodec/ituh263dec.c
+1
-0
ituh263enc.c
libavcodec/ituh263enc.c
+1
-0
motion_est.h
libavcodec/motion_est.h
+0
-3
mpegvideo_enc.c
libavcodec/mpegvideo_enc.c
+1
-0
rv10.c
libavcodec/rv10.c
+1
-0
rv20enc.c
libavcodec/rv20enc.c
+1
-0
No files found.
libavcodec/Makefile
View file @
e3d0f49a
...
...
@@ -221,7 +221,7 @@ OBJS-$(CONFIG_H261_DECODER) += h261dec.o h261data.o h261.o
OBJS-$(CONFIG_H261_ENCODER)
+=
h261enc.o
h261data.o
h261.o
OBJS-$(CONFIG_H263_DECODER)
+=
h263dec.o
h263.o
ituh263dec.o
\
mpeg4video.o
mpeg4videodec.o
flvdec.o\
intelh263dec.o
intelh263dec.o
h263data.o
OBJS-$(CONFIG_H263_ENCODER)
+=
mpeg4videoenc.o
mpeg4video.o
\
h263.o
ituh263enc.o
flvenc.o
OBJS-$(CONFIG_H264_DECODER)
+=
h264.o
h264_cabac.o
h264_cavlc.o
\
...
...
libavcodec/flvenc.c
View file @
e3d0f49a
...
...
@@ -20,6 +20,7 @@
#include "flv.h"
#include "h263.h"
#include "h263data.h"
#include "mpegvideo.h"
#include "mpegvideodata.h"
...
...
libavcodec/h263.c
View file @
e3d0f49a
...
...
@@ -40,9 +40,6 @@
#include "mpeg4video.h"
uint8_t
ff_h263_static_rl_table_store
[
2
][
2
][
2
*
MAX_RUN
+
MAX_LEVEL
+
3
];
void
ff_h263_update_motion_val
(
MpegEncContext
*
s
){
const
int
mb_xy
=
s
->
mb_y
*
s
->
mb_stride
+
s
->
mb_x
;
//FIXME a lot of that is only needed for !low_delay
...
...
libavcodec/h263.h
View file @
e3d0f49a
...
...
@@ -24,6 +24,7 @@
#include "libavutil/rational.h"
#include "get_bits.h"
#include "mpegvideo.h"
#include "h263data.h"
#include "rl.h"
#if !FF_API_ASPECT_EXTENDED
...
...
@@ -42,39 +43,10 @@
#define H263_GOB_HEIGHT(h) ((h) <= 400 ? 1 : (h) <= 800 ? 2 : 4)
extern
const
AVRational
ff_h263_pixel_aspect
[
16
];
extern
const
uint8_t
ff_h263_cbpy_tab
[
16
][
2
];
extern
const
uint8_t
ff_cbpc_b_tab
[
4
][
2
];
extern
const
uint8_t
ff_mvtab
[
33
][
2
];
extern
const
uint8_t
ff_h263_intra_MCBPC_code
[
9
];
extern
const
uint8_t
ff_h263_intra_MCBPC_bits
[
9
];
extern
const
uint8_t
ff_h263_inter_MCBPC_code
[
28
];
extern
const
uint8_t
ff_h263_inter_MCBPC_bits
[
28
];
extern
const
uint8_t
ff_h263_mbtype_b_tab
[
15
][
2
];
extern
VLC
ff_h263_intra_MCBPC_vlc
;
extern
VLC
ff_h263_inter_MCBPC_vlc
;
extern
VLC
ff_h263_cbpy_vlc
;
extern
const
uint16_t
ff_inter_vlc
[
103
][
2
];
extern
const
int8_t
ff_inter_level
[
102
];
extern
const
int8_t
ff_inter_run
[
102
];
extern
RLTable
ff_h263_rl_inter
;
extern
RLTable
ff_rl_intra_aic
;
extern
const
uint16_t
ff_h263_format
[
8
][
2
];
extern
const
uint8_t
ff_modified_quant_tab
[
2
][
32
];
extern
uint16_t
ff_mba_max
[
6
];
extern
uint8_t
ff_mba_length
[
7
];
extern
uint8_t
ff_h263_static_rl_table_store
[
2
][
2
][
2
*
MAX_RUN
+
MAX_LEVEL
+
3
];
extern
const
enum
AVPixelFormat
ff_h263_hwaccel_pixfmt_list_420
[];
...
...
libavcodec/h263data.c
0 → 100644
View file @
e3d0f49a
/*
* H263+ tables
*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* H.263 tables.
*/
#include <stdint.h>
#include "h263data.h"
#include "mpegvideo.h"
uint8_t
ff_h263_static_rl_table_store
[
2
][
2
][
2
*
MAX_RUN
+
MAX_LEVEL
+
3
];
/* intra MCBPC, mb_type = (intra), then (intraq) */
const
uint8_t
ff_h263_intra_MCBPC_code
[
9
]
=
{
1
,
1
,
2
,
3
,
1
,
1
,
2
,
3
,
1
};
const
uint8_t
ff_h263_intra_MCBPC_bits
[
9
]
=
{
1
,
3
,
3
,
3
,
4
,
6
,
6
,
6
,
9
};
/* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */
/* Changed the tables for interq and inter4v+q, following the standard
* ** Juanjo ** */
const
uint8_t
ff_h263_inter_MCBPC_code
[
28
]
=
{
1
,
3
,
2
,
5
,
3
,
4
,
3
,
3
,
3
,
7
,
6
,
5
,
4
,
4
,
3
,
2
,
2
,
5
,
4
,
5
,
1
,
0
,
0
,
0
,
/* Stuffing */
2
,
12
,
14
,
15
,
};
const
uint8_t
ff_h263_inter_MCBPC_bits
[
28
]
=
{
1
,
4
,
4
,
6
,
/* inter */
5
,
8
,
8
,
7
,
/* intra */
3
,
7
,
7
,
9
,
/* interQ */
6
,
9
,
9
,
9
,
/* intraQ */
3
,
7
,
7
,
8
,
/* inter4 */
9
,
0
,
0
,
0
,
/* Stuffing */
11
,
13
,
13
,
13
,
/* inter4Q */
};
const
uint8_t
ff_h263_mbtype_b_tab
[
15
][
2
]
=
{
{
1
,
1
},
{
3
,
3
},
{
1
,
5
},
{
4
,
4
},
{
5
,
4
},
{
6
,
6
},
{
2
,
4
},
{
3
,
4
},
{
7
,
6
},
{
4
,
6
},
{
5
,
6
},
{
1
,
6
},
{
1
,
10
},
{
1
,
7
},
{
1
,
8
},
};
const
uint8_t
ff_cbpc_b_tab
[
4
][
2
]
=
{
{
0
,
1
},
{
2
,
2
},
{
7
,
3
},
{
6
,
3
},
};
const
uint8_t
ff_h263_cbpy_tab
[
16
][
2
]
=
{
{
3
,
4
},
{
5
,
5
},
{
4
,
5
},
{
9
,
4
},
{
3
,
5
},
{
7
,
4
},
{
2
,
6
},
{
11
,
4
},
{
2
,
5
},
{
3
,
6
},
{
5
,
4
},
{
10
,
4
},
{
4
,
4
},
{
8
,
4
},
{
6
,
4
},
{
3
,
2
}
};
const
uint8_t
ff_mvtab
[
33
][
2
]
=
{
{
1
,
1
},
{
1
,
2
},
{
1
,
3
},
{
1
,
4
},
{
3
,
6
},
{
5
,
7
},
{
4
,
7
},
{
3
,
7
},
{
11
,
9
},
{
10
,
9
},
{
9
,
9
},
{
17
,
10
},
{
16
,
10
},
{
15
,
10
},
{
14
,
10
},
{
13
,
10
},
{
12
,
10
},
{
11
,
10
},
{
10
,
10
},
{
9
,
10
},
{
8
,
10
},
{
7
,
10
},
{
6
,
10
},
{
5
,
10
},
{
4
,
10
},
{
7
,
11
},
{
6
,
11
},
{
5
,
11
},
{
4
,
11
},
{
3
,
11
},
{
2
,
11
},
{
3
,
12
},
{
2
,
12
}
};
/* third non intra table */
const
uint16_t
ff_inter_vlc
[
103
][
2
]
=
{
{
0x2
,
2
},
{
0xf
,
4
},
{
0x15
,
6
},
{
0x17
,
7
},
{
0x1f
,
8
},
{
0x25
,
9
},
{
0x24
,
9
},
{
0x21
,
10
},
{
0x20
,
10
},
{
0x7
,
11
},
{
0x6
,
11
},
{
0x20
,
11
},
{
0x6
,
3
},
{
0x14
,
6
},
{
0x1e
,
8
},
{
0xf
,
10
},
{
0x21
,
11
},
{
0x50
,
12
},
{
0xe
,
4
},
{
0x1d
,
8
},
{
0xe
,
10
},
{
0x51
,
12
},
{
0xd
,
5
},
{
0x23
,
9
},
{
0xd
,
10
},
{
0xc
,
5
},
{
0x22
,
9
},
{
0x52
,
12
},
{
0xb
,
5
},
{
0xc
,
10
},
{
0x53
,
12
},
{
0x13
,
6
},
{
0xb
,
10
},
{
0x54
,
12
},
{
0x12
,
6
},
{
0xa
,
10
},
{
0x11
,
6
},
{
0x9
,
10
},
{
0x10
,
6
},
{
0x8
,
10
},
{
0x16
,
7
},
{
0x55
,
12
},
{
0x15
,
7
},
{
0x14
,
7
},
{
0x1c
,
8
},
{
0x1b
,
8
},
{
0x21
,
9
},
{
0x20
,
9
},
{
0x1f
,
9
},
{
0x1e
,
9
},
{
0x1d
,
9
},
{
0x1c
,
9
},
{
0x1b
,
9
},
{
0x1a
,
9
},
{
0x22
,
11
},
{
0x23
,
11
},
{
0x56
,
12
},
{
0x57
,
12
},
{
0x7
,
4
},
{
0x19
,
9
},
{
0x5
,
11
},
{
0xf
,
6
},
{
0x4
,
11
},
{
0xe
,
6
},
{
0xd
,
6
},
{
0xc
,
6
},
{
0x13
,
7
},
{
0x12
,
7
},
{
0x11
,
7
},
{
0x10
,
7
},
{
0x1a
,
8
},
{
0x19
,
8
},
{
0x18
,
8
},
{
0x17
,
8
},
{
0x16
,
8
},
{
0x15
,
8
},
{
0x14
,
8
},
{
0x13
,
8
},
{
0x18
,
9
},
{
0x17
,
9
},
{
0x16
,
9
},
{
0x15
,
9
},
{
0x14
,
9
},
{
0x13
,
9
},
{
0x12
,
9
},
{
0x11
,
9
},
{
0x7
,
10
},
{
0x6
,
10
},
{
0x5
,
10
},
{
0x4
,
10
},
{
0x24
,
11
},
{
0x25
,
11
},
{
0x26
,
11
},
{
0x27
,
11
},
{
0x58
,
12
},
{
0x59
,
12
},
{
0x5a
,
12
},
{
0x5b
,
12
},
{
0x5c
,
12
},
{
0x5d
,
12
},
{
0x5e
,
12
},
{
0x5f
,
12
},
{
0x3
,
7
},
};
const
int8_t
ff_inter_level
[
102
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
1
,
2
,
3
,
4
,
5
,
6
,
1
,
2
,
3
,
4
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
3
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
};
const
int8_t
ff_inter_run
[
102
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
4
,
5
,
5
,
5
,
6
,
6
,
6
,
7
,
7
,
8
,
8
,
9
,
9
,
10
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
0
,
0
,
0
,
1
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
};
RLTable
ff_h263_rl_inter
=
{
102
,
58
,
ff_inter_vlc
,
ff_inter_run
,
ff_inter_level
,
};
static
const
uint16_t
intra_vlc_aic
[
103
][
2
]
=
{
{
0x2
,
2
},
{
0x6
,
3
},
{
0xe
,
4
},
{
0xc
,
5
},
{
0xd
,
5
},
{
0x10
,
6
},
{
0x11
,
6
},
{
0x12
,
6
},
{
0x16
,
7
},
{
0x1b
,
8
},
{
0x20
,
9
},
{
0x21
,
9
},
{
0x1a
,
9
},
{
0x1b
,
9
},
{
0x1c
,
9
},
{
0x1d
,
9
},
{
0x1e
,
9
},
{
0x1f
,
9
},
{
0x23
,
11
},
{
0x22
,
11
},
{
0x57
,
12
},
{
0x56
,
12
},
{
0x55
,
12
},
{
0x54
,
12
},
{
0x53
,
12
},
{
0xf
,
4
},
{
0x14
,
6
},
{
0x14
,
7
},
{
0x1e
,
8
},
{
0xf
,
10
},
{
0x21
,
11
},
{
0x50
,
12
},
{
0xb
,
5
},
{
0x15
,
7
},
{
0xe
,
10
},
{
0x9
,
10
},
{
0x15
,
6
},
{
0x1d
,
8
},
{
0xd
,
10
},
{
0x51
,
12
},
{
0x13
,
6
},
{
0x23
,
9
},
{
0x7
,
11
},
{
0x17
,
7
},
{
0x22
,
9
},
{
0x52
,
12
},
{
0x1c
,
8
},
{
0xc
,
10
},
{
0x1f
,
8
},
{
0xb
,
10
},
{
0x25
,
9
},
{
0xa
,
10
},
{
0x24
,
9
},
{
0x6
,
11
},
{
0x21
,
10
},
{
0x20
,
10
},
{
0x8
,
10
},
{
0x20
,
11
},
{
0x7
,
4
},
{
0xc
,
6
},
{
0x10
,
7
},
{
0x13
,
8
},
{
0x11
,
9
},
{
0x12
,
9
},
{
0x4
,
10
},
{
0x27
,
11
},
{
0x26
,
11
},
{
0x5f
,
12
},
{
0xf
,
6
},
{
0x13
,
9
},
{
0x5
,
10
},
{
0x25
,
11
},
{
0xe
,
6
},
{
0x14
,
9
},
{
0x24
,
11
},
{
0xd
,
6
},
{
0x6
,
10
},
{
0x5e
,
12
},
{
0x11
,
7
},
{
0x7
,
10
},
{
0x13
,
7
},
{
0x5d
,
12
},
{
0x12
,
7
},
{
0x5c
,
12
},
{
0x14
,
8
},
{
0x5b
,
12
},
{
0x15
,
8
},
{
0x1a
,
8
},
{
0x19
,
8
},
{
0x18
,
8
},
{
0x17
,
8
},
{
0x16
,
8
},
{
0x19
,
9
},
{
0x15
,
9
},
{
0x16
,
9
},
{
0x18
,
9
},
{
0x17
,
9
},
{
0x4
,
11
},
{
0x5
,
11
},
{
0x58
,
12
},
{
0x59
,
12
},
{
0x5a
,
12
},
{
0x3
,
7
},
};
static
const
int8_t
intra_run_aic
[
102
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
2
,
3
,
3
,
3
,
3
,
4
,
4
,
4
,
5
,
5
,
5
,
6
,
6
,
7
,
7
,
8
,
8
,
9
,
9
,
10
,
11
,
12
,
13
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
5
,
5
,
6
,
6
,
7
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
};
static
const
int8_t
intra_level_aic
[
102
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
1
,
2
,
3
,
4
,
1
,
2
,
3
,
4
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
1
,
2
,
3
,
4
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
};
RLTable
ff_rl_intra_aic
=
{
102
,
58
,
intra_vlc_aic
,
intra_run_aic
,
intra_level_aic
,
};
const
uint16_t
ff_h263_format
[
8
][
2
]
=
{
{
0
,
0
},
{
128
,
96
},
{
176
,
144
},
{
352
,
288
},
{
704
,
576
},
{
1408
,
1152
},
};
const
uint8_t
ff_aic_dc_scale_table
[
32
]
=
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0
,
2
,
4
,
6
,
8
,
10
,
12
,
14
,
16
,
18
,
20
,
22
,
24
,
26
,
28
,
30
,
32
,
34
,
36
,
38
,
40
,
42
,
44
,
46
,
48
,
50
,
52
,
54
,
56
,
58
,
60
,
62
};
const
uint8_t
ff_modified_quant_tab
[
2
][
32
]
=
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
{
0
,
3
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
},
{
0
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
31
,
31
,
26
}
};
const
uint8_t
ff_h263_chroma_qscale_table
[
32
]
=
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0
,
1
,
2
,
3
,
4
,
5
,
6
,
6
,
7
,
8
,
9
,
9
,
10
,
10
,
11
,
11
,
12
,
12
,
12
,
13
,
13
,
13
,
14
,
14
,
14
,
14
,
14
,
15
,
15
,
15
,
15
,
15
};
uint16_t
ff_mba_max
[
6
]
=
{
47
,
98
,
395
,
1583
,
6335
,
9215
};
uint8_t
ff_mba_length
[
7
]
=
{
6
,
7
,
9
,
11
,
13
,
14
,
14
};
const
AVRational
ff_h263_pixel_aspect
[
16
]
=
{
{
0
,
1
},
{
1
,
1
},
{
12
,
11
},
{
10
,
11
},
{
16
,
11
},
{
40
,
33
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
};
libavcodec/h263data.h
View file @
e3d0f49a
...
...
@@ -30,265 +30,48 @@
#define AVCODEC_H263DATA_H
#include <stdint.h>
#include "mpegvideo.h"
#include "libavutil/rational.h"
#include "rl.h"
extern
const
AVRational
ff_h263_pixel_aspect
[
16
];
/* intra MCBPC, mb_type = (intra), then (intraq) */
const
uint8_t
ff_h263_intra_MCBPC_code
[
9
]
=
{
1
,
1
,
2
,
3
,
1
,
1
,
2
,
3
,
1
}
;
const
uint8_t
ff_h263_intra_MCBPC_bits
[
9
]
=
{
1
,
3
,
3
,
3
,
4
,
6
,
6
,
6
,
9
}
;
extern
const
uint8_t
ff_h263_intra_MCBPC_code
[
9
]
;
extern
const
uint8_t
ff_h263_intra_MCBPC_bits
[
9
]
;
/* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */
/* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
const
uint8_t
ff_h263_inter_MCBPC_code
[
28
]
=
{
1
,
3
,
2
,
5
,
3
,
4
,
3
,
3
,
3
,
7
,
6
,
5
,
4
,
4
,
3
,
2
,
2
,
5
,
4
,
5
,
1
,
0
,
0
,
0
,
/* Stuffing */
2
,
12
,
14
,
15
,
};
const
uint8_t
ff_h263_inter_MCBPC_bits
[
28
]
=
{
1
,
4
,
4
,
6
,
/* inter */
5
,
8
,
8
,
7
,
/* intra */
3
,
7
,
7
,
9
,
/* interQ */
6
,
9
,
9
,
9
,
/* intraQ */
3
,
7
,
7
,
8
,
/* inter4 */
9
,
0
,
0
,
0
,
/* Stuffing */
11
,
13
,
13
,
13
,
/* inter4Q*/
};
extern
const
uint8_t
ff_h263_inter_MCBPC_code
[
28
];
extern
const
uint8_t
ff_h263_inter_MCBPC_bits
[
28
];
const
uint8_t
ff_h263_mbtype_b_tab
[
15
][
2
]
=
{
{
1
,
1
},
{
3
,
3
},
{
1
,
5
},
{
4
,
4
},
{
5
,
4
},
{
6
,
6
},
{
2
,
4
},
{
3
,
4
},
{
7
,
6
},
{
4
,
6
},
{
5
,
6
},
{
1
,
6
},
{
1
,
10
},
{
1
,
7
},
{
1
,
8
},
};
extern
const
uint8_t
ff_h263_mbtype_b_tab
[
15
][
2
];
const
uint8_t
ff_cbpc_b_tab
[
4
][
2
]
=
{
{
0
,
1
},
{
2
,
2
},
{
7
,
3
},
{
6
,
3
},
};
extern
const
uint8_t
ff_cbpc_b_tab
[
4
][
2
];
extern
const
uint8_t
ff_h263_cbpy_tab
[
16
][
2
];
const
uint8_t
ff_h263_cbpy_tab
[
16
][
2
]
=
{
{
3
,
4
},
{
5
,
5
},
{
4
,
5
},
{
9
,
4
},
{
3
,
5
},
{
7
,
4
},
{
2
,
6
},
{
11
,
4
},
{
2
,
5
},
{
3
,
6
},
{
5
,
4
},
{
10
,
4
},
{
4
,
4
},
{
8
,
4
},
{
6
,
4
},
{
3
,
2
}
};
const
uint8_t
ff_mvtab
[
33
][
2
]
=
{
{
1
,
1
},
{
1
,
2
},
{
1
,
3
},
{
1
,
4
},
{
3
,
6
},
{
5
,
7
},
{
4
,
7
},
{
3
,
7
},
{
11
,
9
},
{
10
,
9
},
{
9
,
9
},
{
17
,
10
},
{
16
,
10
},
{
15
,
10
},
{
14
,
10
},
{
13
,
10
},
{
12
,
10
},
{
11
,
10
},
{
10
,
10
},
{
9
,
10
},
{
8
,
10
},
{
7
,
10
},
{
6
,
10
},
{
5
,
10
},
{
4
,
10
},
{
7
,
11
},
{
6
,
11
},
{
5
,
11
},
{
4
,
11
},
{
3
,
11
},
{
2
,
11
},
{
3
,
12
},
{
2
,
12
}
};
extern
const
uint8_t
ff_mvtab
[
33
][
2
];
/* third non intra table */
const
uint16_t
ff_inter_vlc
[
103
][
2
]
=
{
{
0x2
,
2
},{
0xf
,
4
},{
0x15
,
6
},{
0x17
,
7
},
{
0x1f
,
8
},{
0x25
,
9
},{
0x24
,
9
},{
0x21
,
10
},
{
0x20
,
10
},{
0x7
,
11
},{
0x6
,
11
},{
0x20
,
11
},
{
0x6
,
3
},{
0x14
,
6
},{
0x1e
,
8
},{
0xf
,
10
},
{
0x21
,
11
},{
0x50
,
12
},{
0xe
,
4
},{
0x1d
,
8
},
{
0xe
,
10
},{
0x51
,
12
},{
0xd
,
5
},{
0x23
,
9
},
{
0xd
,
10
},{
0xc
,
5
},{
0x22
,
9
},{
0x52
,
12
},
{
0xb
,
5
},{
0xc
,
10
},{
0x53
,
12
},{
0x13
,
6
},
{
0xb
,
10
},{
0x54
,
12
},{
0x12
,
6
},{
0xa
,
10
},
{
0x11
,
6
},{
0x9
,
10
},{
0x10
,
6
},{
0x8
,
10
},
{
0x16
,
7
},{
0x55
,
12
},{
0x15
,
7
},{
0x14
,
7
},
{
0x1c
,
8
},{
0x1b
,
8
},{
0x21
,
9
},{
0x20
,
9
},
{
0x1f
,
9
},{
0x1e
,
9
},{
0x1d
,
9
},{
0x1c
,
9
},
{
0x1b
,
9
},{
0x1a
,
9
},{
0x22
,
11
},{
0x23
,
11
},
{
0x56
,
12
},{
0x57
,
12
},{
0x7
,
4
},{
0x19
,
9
},
{
0x5
,
11
},{
0xf
,
6
},{
0x4
,
11
},{
0xe
,
6
},
{
0xd
,
6
},{
0xc
,
6
},{
0x13
,
7
},{
0x12
,
7
},
{
0x11
,
7
},{
0x10
,
7
},{
0x1a
,
8
},{
0x19
,
8
},
{
0x18
,
8
},{
0x17
,
8
},{
0x16
,
8
},{
0x15
,
8
},
{
0x14
,
8
},{
0x13
,
8
},{
0x18
,
9
},{
0x17
,
9
},
{
0x16
,
9
},{
0x15
,
9
},{
0x14
,
9
},{
0x13
,
9
},
{
0x12
,
9
},{
0x11
,
9
},{
0x7
,
10
},{
0x6
,
10
},
{
0x5
,
10
},{
0x4
,
10
},{
0x24
,
11
},{
0x25
,
11
},
{
0x26
,
11
},{
0x27
,
11
},{
0x58
,
12
},{
0x59
,
12
},
{
0x5a
,
12
},{
0x5b
,
12
},{
0x5c
,
12
},{
0x5d
,
12
},
{
0x5e
,
12
},{
0x5f
,
12
},{
0x3
,
7
},
};
const
int8_t
ff_inter_level
[
102
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
1
,
2
,
3
,
4
,
5
,
6
,
1
,
2
,
3
,
4
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
3
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
};
const
int8_t
ff_inter_run
[
102
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
4
,
5
,
5
,
5
,
6
,
6
,
6
,
7
,
7
,
8
,
8
,
9
,
9
,
10
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
0
,
0
,
0
,
1
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
32
,
33
,
34
,
35
,
36
,
37
,
38
,
39
,
40
,
};
RLTable
ff_h263_rl_inter
=
{
102
,
58
,
ff_inter_vlc
,
ff_inter_run
,
ff_inter_level
,
};
static
const
uint16_t
intra_vlc_aic
[
103
][
2
]
=
{
{
0x2
,
2
},
{
0x6
,
3
},
{
0xe
,
4
},
{
0xc
,
5
},
{
0xd
,
5
},
{
0x10
,
6
},
{
0x11
,
6
},
{
0x12
,
6
},
{
0x16
,
7
},
{
0x1b
,
8
},
{
0x20
,
9
},
{
0x21
,
9
},
{
0x1a
,
9
},
{
0x1b
,
9
},
{
0x1c
,
9
},
{
0x1d
,
9
},
{
0x1e
,
9
},
{
0x1f
,
9
},
{
0x23
,
11
},
{
0x22
,
11
},
{
0x57
,
12
},
{
0x56
,
12
},
{
0x55
,
12
},
{
0x54
,
12
},
{
0x53
,
12
},
{
0xf
,
4
},
{
0x14
,
6
},
{
0x14
,
7
},
{
0x1e
,
8
},
{
0xf
,
10
},
{
0x21
,
11
},
{
0x50
,
12
},
{
0xb
,
5
},
{
0x15
,
7
},
{
0xe
,
10
},
{
0x9
,
10
},
{
0x15
,
6
},
{
0x1d
,
8
},
{
0xd
,
10
},
{
0x51
,
12
},
{
0x13
,
6
},
{
0x23
,
9
},
{
0x7
,
11
},
{
0x17
,
7
},
{
0x22
,
9
},
{
0x52
,
12
},
{
0x1c
,
8
},
{
0xc
,
10
},
{
0x1f
,
8
},
{
0xb
,
10
},
{
0x25
,
9
},
{
0xa
,
10
},
{
0x24
,
9
},
{
0x6
,
11
},
{
0x21
,
10
},
{
0x20
,
10
},
{
0x8
,
10
},
{
0x20
,
11
},
{
0x7
,
4
},
{
0xc
,
6
},
{
0x10
,
7
},
{
0x13
,
8
},
{
0x11
,
9
},
{
0x12
,
9
},
{
0x4
,
10
},
{
0x27
,
11
},
{
0x26
,
11
},
{
0x5f
,
12
},
{
0xf
,
6
},
{
0x13
,
9
},
{
0x5
,
10
},
{
0x25
,
11
},
{
0xe
,
6
},
{
0x14
,
9
},
{
0x24
,
11
},
{
0xd
,
6
},
{
0x6
,
10
},
{
0x5e
,
12
},
{
0x11
,
7
},
{
0x7
,
10
},
{
0x13
,
7
},
{
0x5d
,
12
},
{
0x12
,
7
},
{
0x5c
,
12
},
{
0x14
,
8
},
{
0x5b
,
12
},
{
0x15
,
8
},
{
0x1a
,
8
},
{
0x19
,
8
},
{
0x18
,
8
},
{
0x17
,
8
},
{
0x16
,
8
},
{
0x19
,
9
},
{
0x15
,
9
},
{
0x16
,
9
},
{
0x18
,
9
},
{
0x17
,
9
},
{
0x4
,
11
},
{
0x5
,
11
},
{
0x58
,
12
},
{
0x59
,
12
},
{
0x5a
,
12
},
{
0x3
,
7
},
};
static
const
int8_t
intra_run_aic
[
102
]
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
2
,
3
,
3
,
3
,
3
,
4
,
4
,
4
,
5
,
5
,
5
,
6
,
6
,
7
,
7
,
8
,
8
,
9
,
9
,
10
,
11
,
12
,
13
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
1
,
1
,
1
,
2
,
2
,
2
,
3
,
3
,
3
,
4
,
4
,
5
,
5
,
6
,
6
,
7
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
};
static
const
int8_t
intra_level_aic
[
102
]
=
{
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
1
,
2
,
3
,
4
,
1
,
2
,
3
,
4
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
1
,
2
,
3
,
4
,
1
,
2
,
3
,
1
,
2
,
3
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
2
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
};
RLTable
ff_rl_intra_aic
=
{
102
,
58
,
intra_vlc_aic
,
intra_run_aic
,
intra_level_aic
,
};
extern
const
uint16_t
ff_inter_vlc
[
103
][
2
];
const
uint16_t
ff_h263_format
[
8
][
2
]
=
{
{
0
,
0
},
{
128
,
96
},
{
176
,
144
},
{
352
,
288
},
{
704
,
576
},
{
1408
,
1152
},
};
extern
const
int8_t
ff_inter_level
[
102
];
extern
const
int8_t
ff_inter_run
[
102
];
const
uint8_t
ff_aic_dc_scale_table
[
32
]
=
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0
,
2
,
4
,
6
,
8
,
10
,
12
,
14
,
16
,
18
,
20
,
22
,
24
,
26
,
28
,
30
,
32
,
34
,
36
,
38
,
40
,
42
,
44
,
46
,
48
,
50
,
52
,
54
,
56
,
58
,
60
,
62
};
extern
RLTable
ff_h263_rl_inter
;
extern
RLTable
ff_rl_intra_aic
;
extern
uint8_t
ff_h263_static_rl_table_store
[
2
][
2
][
2
*
MAX_RUN
+
MAX_LEVEL
+
3
];
const
uint8_t
ff_modified_quant_tab
[
2
][
32
]
=
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
{
0
,
3
,
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
9
,
10
,
11
,
12
,
13
,
14
,
15
,
16
,
17
,
18
,
18
,
19
,
20
,
21
,
22
,
23
,
24
,
25
,
26
,
27
,
28
},{
0
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
,
11
,
13
,
14
,
15
,
16
,
17
,
18
,
19
,
20
,
21
,
22
,
24
,
25
,
26
,
27
,
28
,
29
,
30
,
31
,
31
,
31
,
26
}
};
extern
const
uint16_t
ff_h263_format
[
8
][
2
];
const
uint8_t
ff_h263_chroma_qscale_table
[
32
]
=
{
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0
,
1
,
2
,
3
,
4
,
5
,
6
,
6
,
7
,
8
,
9
,
9
,
10
,
10
,
11
,
11
,
12
,
12
,
12
,
13
,
13
,
13
,
14
,
14
,
14
,
14
,
14
,
15
,
15
,
15
,
15
,
15
};
extern
const
uint8_t
ff_aic_dc_scale_table
[
32
];
uint16_t
ff_mba_max
[
6
]
=
{
47
,
98
,
395
,
1583
,
6335
,
9215
};
extern
const
uint8_t
ff_modified_quant_tab
[
2
][
32
];
uint8_t
ff_mba_length
[
7
]
=
{
6
,
7
,
9
,
11
,
13
,
14
,
14
};
extern
const
uint8_t
ff_h263_chroma_qscale_table
[
32
];
const
AVRational
ff_h263_pixel_aspect
[
16
]
=
{
{
0
,
1
},
{
1
,
1
},
{
12
,
11
},
{
10
,
11
},
{
16
,
11
},
{
40
,
33
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
{
0
,
1
},
};
extern
uint16_t
ff_mba_max
[
6
];
extern
uint8_t
ff_mba_length
[
7
];
#endif
/* AVCODEC_H263DATA_H */
libavcodec/ituh263dec.c
View file @
e3d0f49a
...
...
@@ -35,6 +35,7 @@
#include "avcodec.h"
#include "mpegvideo.h"
#include "h263.h"
#include "h263data.h"
#include "internal.h"
#include "mathops.h"
#include "mpegutils.h"
...
...
libavcodec/ituh263enc.c
View file @
e3d0f49a
...
...
@@ -34,6 +34,7 @@
#include "mpegvideo.h"
#include "mpegvideodata.h"
#include "h263.h"
#include "h263data.h"
#include "mathops.h"
#include "mpegutils.h"
#include "unary.h"
...
...
libavcodec/motion_est.h
View file @
e3d0f49a
...
...
@@ -122,7 +122,4 @@ void ff_fix_long_mvs(struct MpegEncContext *s, uint8_t *field_select_table,
int
field_select
,
int16_t
(
*
mv_table
)[
2
],
int
f_code
,
int
type
,
int
truncate
);
extern
const
uint8_t
ff_aic_dc_scale_table
[
32
];
extern
const
uint8_t
ff_h263_chroma_qscale_table
[
32
];
#endif
/* AVCODEC_MOTIONEST_H */
libavcodec/mpegvideo_enc.c
View file @
e3d0f49a
...
...
@@ -43,6 +43,7 @@
#include "mpegvideodata.h"
#include "h261.h"
#include "h263.h"
#include "h263data.h"
#include "mjpegenc_common.h"
#include "mathops.h"
#include "mpegutils.h"
...
...
libavcodec/rv10.c
View file @
e3d0f49a
...
...
@@ -32,6 +32,7 @@
#include "avcodec.h"
#include "error_resilience.h"
#include "h263.h"
#include "h263data.h"
#include "internal.h"
#include "mpeg_er.h"
#include "mpegutils.h"
...
...
libavcodec/rv20enc.c
View file @
e3d0f49a
...
...
@@ -28,6 +28,7 @@
#include "mpegvideo.h"
#include "mpegvideodata.h"
#include "h263.h"
#include "h263data.h"
#include "put_bits.h"
void
ff_rv20_encode_picture_header
(
MpegEncContext
*
s
,
int
picture_number
){
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment