Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
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
Hide 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
...
@@ -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_H261_ENCODER)
+=
h261enc.o
h261data.o
h261.o
OBJS-$(CONFIG_H263_DECODER)
+=
h263dec.o
h263.o
ituh263dec.o
\
OBJS-$(CONFIG_H263_DECODER)
+=
h263dec.o
h263.o
ituh263dec.o
\
mpeg4video.o
mpeg4videodec.o
flvdec.o\
mpeg4video.o
mpeg4videodec.o
flvdec.o\
intelh263dec.o
intelh263dec.o
h263data.o
OBJS-$(CONFIG_H263_ENCODER)
+=
mpeg4videoenc.o
mpeg4video.o
\
OBJS-$(CONFIG_H263_ENCODER)
+=
mpeg4videoenc.o
mpeg4video.o
\
h263.o
ituh263enc.o
flvenc.o
h263.o
ituh263enc.o
flvenc.o
OBJS-$(CONFIG_H264_DECODER)
+=
h264.o
h264_cabac.o
h264_cavlc.o
\
OBJS-$(CONFIG_H264_DECODER)
+=
h264.o
h264_cabac.o
h264_cavlc.o
\
...
...
libavcodec/flvenc.c
View file @
e3d0f49a
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
#include "flv.h"
#include "flv.h"
#include "h263.h"
#include "h263.h"
#include "h263data.h"
#include "mpegvideo.h"
#include "mpegvideo.h"
#include "mpegvideodata.h"
#include "mpegvideodata.h"
...
...
libavcodec/h263.c
View file @
e3d0f49a
...
@@ -40,9 +40,6 @@
...
@@ -40,9 +40,6 @@
#include "mpeg4video.h"
#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
){
void
ff_h263_update_motion_val
(
MpegEncContext
*
s
){
const
int
mb_xy
=
s
->
mb_y
*
s
->
mb_stride
+
s
->
mb_x
;
const
int
mb_xy
=
s
->
mb_y
*
s
->
mb_stride
+
s
->
mb_x
;
//FIXME a lot of that is only needed for !low_delay
//FIXME a lot of that is only needed for !low_delay
...
...
libavcodec/h263.h
View file @
e3d0f49a
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
#include "libavutil/rational.h"
#include "libavutil/rational.h"
#include "get_bits.h"
#include "get_bits.h"
#include "mpegvideo.h"
#include "mpegvideo.h"
#include "h263data.h"
#include "rl.h"
#include "rl.h"
#if !FF_API_ASPECT_EXTENDED
#if !FF_API_ASPECT_EXTENDED
...
@@ -42,39 +43,10 @@
...
@@ -42,39 +43,10 @@
#define H263_GOB_HEIGHT(h) ((h) <= 400 ? 1 : (h) <= 800 ? 2 : 4)
#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_intra_MCBPC_vlc
;
extern
VLC
ff_h263_inter_MCBPC_vlc
;
extern
VLC
ff_h263_inter_MCBPC_vlc
;
extern
VLC
ff_h263_cbpy_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
[];
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 @@
...
@@ -30,265 +30,48 @@
#define AVCODEC_H263DATA_H
#define AVCODEC_H263DATA_H
#include <stdint.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) */
/* 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
}
;
extern
const
uint8_t
ff_h263_intra_MCBPC_code
[
9
]
;
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_bits
[
9
]
;
/* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */
/* inter MCBPC, mb_type = (inter), (intra), (interq), (intraq), (inter4v) */
/* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
/* Changed the tables for interq and inter4v+q, following the standard ** Juanjo ** */
const
uint8_t
ff_h263_inter_MCBPC_code
[
28
]
=
{
extern
const
uint8_t
ff_h263_inter_MCBPC_code
[
28
];
1
,
3
,
2
,
5
,
extern
const
uint8_t
ff_h263_inter_MCBPC_bits
[
28
];
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
]
=
{
extern
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
]
=
{
extern
const
uint8_t
ff_cbpc_b_tab
[
4
][
2
];
{
0
,
1
},
extern
const
uint8_t
ff_h263_cbpy_tab
[
16
][
2
];
{
2
,
2
},
{
7
,
3
},
{
6
,
3
},
};
const
uint8_t
ff_h263_cbpy_tab
[
16
][
2
]
=
extern
const
uint8_t
ff_mvtab
[
33
][
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 */
/* third non intra table */
const
uint16_t
ff_inter_vlc
[
103
][
2
]
=
{
extern
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
]
=
{
extern
const
int8_t
ff_inter_level
[
102
];
{
0
,
0
},
extern
const
int8_t
ff_inter_run
[
102
];
{
128
,
96
},
{
176
,
144
},
{
352
,
288
},
{
704
,
576
},
{
1408
,
1152
},
};
const
uint8_t
ff_aic_dc_scale_table
[
32
]
=
{
extern
RLTable
ff_h263_rl_inter
;
// 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
extern
RLTable
ff_rl_intra_aic
;
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
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
]
=
{
extern
const
uint16_t
ff_h263_format
[
8
][
2
];
// 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
]
=
{
extern
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
,
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
]
=
{
extern
const
uint8_t
ff_modified_quant_tab
[
2
][
32
];
47
,
98
,
395
,
1583
,
6335
,
9215
};
uint8_t
ff_mba_length
[
7
]
=
{
extern
const
uint8_t
ff_h263_chroma_qscale_table
[
32
];
6
,
7
,
9
,
11
,
13
,
14
,
14
};
const
AVRational
ff_h263_pixel_aspect
[
16
]
=
{
extern
uint16_t
ff_mba_max
[
6
];
{
0
,
1
},
extern
uint8_t
ff_mba_length
[
7
];
{
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
},
};
#endif
/* AVCODEC_H263DATA_H */
#endif
/* AVCODEC_H263DATA_H */
libavcodec/ituh263dec.c
View file @
e3d0f49a
...
@@ -35,6 +35,7 @@
...
@@ -35,6 +35,7 @@
#include "avcodec.h"
#include "avcodec.h"
#include "mpegvideo.h"
#include "mpegvideo.h"
#include "h263.h"
#include "h263.h"
#include "h263data.h"
#include "internal.h"
#include "internal.h"
#include "mathops.h"
#include "mathops.h"
#include "mpegutils.h"
#include "mpegutils.h"
...
...
libavcodec/ituh263enc.c
View file @
e3d0f49a
...
@@ -34,6 +34,7 @@
...
@@ -34,6 +34,7 @@
#include "mpegvideo.h"
#include "mpegvideo.h"
#include "mpegvideodata.h"
#include "mpegvideodata.h"
#include "h263.h"
#include "h263.h"
#include "h263data.h"
#include "mathops.h"
#include "mathops.h"
#include "mpegutils.h"
#include "mpegutils.h"
#include "unary.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,
...
@@ -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
field_select
,
int16_t
(
*
mv_table
)[
2
],
int
f_code
,
int
type
,
int
truncate
);
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 */
#endif
/* AVCODEC_MOTIONEST_H */
libavcodec/mpegvideo_enc.c
View file @
e3d0f49a
...
@@ -43,6 +43,7 @@
...
@@ -43,6 +43,7 @@
#include "mpegvideodata.h"
#include "mpegvideodata.h"
#include "h261.h"
#include "h261.h"
#include "h263.h"
#include "h263.h"
#include "h263data.h"
#include "mjpegenc_common.h"
#include "mjpegenc_common.h"
#include "mathops.h"
#include "mathops.h"
#include "mpegutils.h"
#include "mpegutils.h"
...
...
libavcodec/rv10.c
View file @
e3d0f49a
...
@@ -32,6 +32,7 @@
...
@@ -32,6 +32,7 @@
#include "avcodec.h"
#include "avcodec.h"
#include "error_resilience.h"
#include "error_resilience.h"
#include "h263.h"
#include "h263.h"
#include "h263data.h"
#include "internal.h"
#include "internal.h"
#include "mpeg_er.h"
#include "mpeg_er.h"
#include "mpegutils.h"
#include "mpegutils.h"
...
...
libavcodec/rv20enc.c
View file @
e3d0f49a
...
@@ -28,6 +28,7 @@
...
@@ -28,6 +28,7 @@
#include "mpegvideo.h"
#include "mpegvideo.h"
#include "mpegvideodata.h"
#include "mpegvideodata.h"
#include "h263.h"
#include "h263.h"
#include "h263data.h"
#include "put_bits.h"
#include "put_bits.h"
void
ff_rv20_encode_picture_header
(
MpegEncContext
*
s
,
int
picture_number
){
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