mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-04-24 17:12:34 +02:00
avcodec/mpeg12: Don't initialize encoder-only parts of RLTable
ff_mpeg12_init_vlcs() currently initializes index_run, max_level and max_run of ff_rl_mpeg1/2; yet the only user of these fields is the MPEG-1/2 encoder which already initializes these tables on its own. So remove the initializations in ff_mpeg12_init_vlcs(); this also simplifies making ff_mpeg12_init_vlcs() thread-safe. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
1ead0c6388
commit
6e8fcd9c56
@ -41,8 +41,6 @@
|
|||||||
#include "bytestream.h"
|
#include "bytestream.h"
|
||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
|
|
||||||
uint8_t ff_mpeg12_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3];
|
|
||||||
|
|
||||||
static const uint8_t table_mb_ptype[7][2] = {
|
static const uint8_t table_mb_ptype[7][2] = {
|
||||||
{ 3, 5 }, // 0x01 MB_INTRA
|
{ 3, 5 }, // 0x01 MB_INTRA
|
||||||
{ 1, 2 }, // 0x02 MB_PAT
|
{ 1, 2 }, // 0x02 MB_PAT
|
||||||
@ -163,8 +161,6 @@ av_cold void ff_mpeg12_init_vlcs(void)
|
|||||||
INIT_VLC_STATIC(&ff_mb_btype_vlc, MB_BTYPE_VLC_BITS, 11,
|
INIT_VLC_STATIC(&ff_mb_btype_vlc, MB_BTYPE_VLC_BITS, 11,
|
||||||
&table_mb_btype[0][1], 2, 1,
|
&table_mb_btype[0][1], 2, 1,
|
||||||
&table_mb_btype[0][0], 2, 1, 64);
|
&table_mb_btype[0][0], 2, 1, 64);
|
||||||
ff_rl_init(&ff_rl_mpeg1, ff_mpeg12_static_rl_table_store[0]);
|
|
||||||
ff_rl_init(&ff_rl_mpeg2, ff_mpeg12_static_rl_table_store[1]);
|
|
||||||
|
|
||||||
INIT_2D_VLC_RL(ff_rl_mpeg1, 680, 0);
|
INIT_2D_VLC_RL(ff_rl_mpeg1, 680, 0);
|
||||||
INIT_2D_VLC_RL(ff_rl_mpeg2, 674, 0);
|
INIT_2D_VLC_RL(ff_rl_mpeg2, 674, 0);
|
||||||
|
@ -25,8 +25,6 @@
|
|||||||
#include "mpeg12vlc.h"
|
#include "mpeg12vlc.h"
|
||||||
#include "mpegvideo.h"
|
#include "mpegvideo.h"
|
||||||
|
|
||||||
extern uint8_t ff_mpeg12_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3];
|
|
||||||
|
|
||||||
void ff_mpeg12_common_init(MpegEncContext *s);
|
void ff_mpeg12_common_init(MpegEncContext *s);
|
||||||
|
|
||||||
#define INIT_2D_VLC_RL(rl, static_size, flags)\
|
#define INIT_2D_VLC_RL(rl, static_size, flags)\
|
||||||
|
@ -1041,8 +1041,10 @@ void ff_mpeg1_encode_mb(MpegEncContext *s, int16_t block[8][64],
|
|||||||
|
|
||||||
static av_cold void mpeg12_encode_init_static(void)
|
static av_cold void mpeg12_encode_init_static(void)
|
||||||
{
|
{
|
||||||
ff_rl_init(&ff_rl_mpeg1, ff_mpeg12_static_rl_table_store[0]);
|
static uint8_t mpeg12_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3];
|
||||||
ff_rl_init(&ff_rl_mpeg2, ff_mpeg12_static_rl_table_store[1]);
|
|
||||||
|
ff_rl_init(&ff_rl_mpeg1, mpeg12_static_rl_table_store[0]);
|
||||||
|
ff_rl_init(&ff_rl_mpeg2, mpeg12_static_rl_table_store[1]);
|
||||||
|
|
||||||
for (int i = 0; i < 64; i++) {
|
for (int i = 0; i < 64; i++) {
|
||||||
mpeg1_max_level[0][i] = ff_rl_mpeg1.max_level[0][i];
|
mpeg1_max_level[0][i] = ff_rl_mpeg1.max_level[0][i];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user