avcodec/idctdsp: Move ScanTable to mpegvideo

Only used there.

Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
pull/388/head
Andreas Rheinhardt 2 years ago
parent de133d22da
commit 7f45691769
  1. 21
      libavcodec/idctdsp.c
  2. 11
      libavcodec/idctdsp.h
  3. 21
      libavcodec/mpegvideo.c
  4. 11
      libavcodec/mpegvideo.h

@ -36,27 +36,6 @@ av_cold void ff_permute_scantable(uint8_t dst[64], const uint8_t src[64],
}
}
av_cold void ff_init_scantable(const uint8_t *permutation, ScanTable *st,
const uint8_t *src_scantable)
{
int i, end;
st->scantable = src_scantable;
for (i = 0; i < 64; i++) {
int j = src_scantable[i];
st->permutated[i] = permutation[j];
}
end = -1;
for (i = 0; i < 64; i++) {
int j = st->permutated[i];
if (j > end)
end = j;
st->raster_end[i] = end;
}
}
av_cold void ff_init_scantable_permutation(uint8_t *idct_permutation,
enum idct_permutation_type perm_type)
{

@ -25,15 +25,6 @@
#include "avcodec.h"
/**
* Scantable.
*/
typedef struct ScanTable {
const uint8_t *scantable;
uint8_t permutated[64];
uint8_t raster_end[64];
} ScanTable;
enum idct_permutation_type {
FF_IDCT_PERM_NONE,
FF_IDCT_PERM_LIBMPEG2,
@ -45,8 +36,6 @@ enum idct_permutation_type {
void ff_permute_scantable(uint8_t dst[64], const uint8_t src[64],
const uint8_t permutation[64]);
void ff_init_scantable(const uint8_t *permutation, ScanTable *st,
const uint8_t *src_scantable);
void ff_init_scantable_permutation(uint8_t *idct_permutation,
enum idct_permutation_type perm_type);
int ff_init_scantable_permutation_x86(uint8_t *idct_permutation,

@ -320,6 +320,27 @@ static av_cold int dct_init(MpegEncContext *s)
return 0;
}
av_cold void ff_init_scantable(const uint8_t *permutation, ScanTable *st,
const uint8_t *src_scantable)
{
int end;
st->scantable = src_scantable;
for (int i = 0; i < 64; i++) {
int j = src_scantable[i];
st->permutated[i] = permutation[j];
}
end = -1;
for (int i = 0; i < 64; i++) {
int j = st->permutated[i];
if (j > end)
end = j;
st->raster_end[i] = end;
}
}
av_cold void ff_mpv_idct_init(MpegEncContext *s)
{
if (s->codec_id == AV_CODEC_ID_MPEG4)

@ -55,6 +55,15 @@
#define MAX_B_FRAMES 16
/**
* Scantable.
*/
typedef struct ScanTable {
const uint8_t *scantable;
uint8_t permutated[64];
uint8_t raster_end[64];
} ScanTable;
/**
* MpegEncContext.
*/
@ -576,6 +585,8 @@ int ff_update_duplicate_context(MpegEncContext *dst, const MpegEncContext *src);
void ff_set_qscale(MpegEncContext * s, int qscale);
void ff_mpv_idct_init(MpegEncContext *s);
void ff_init_scantable(const uint8_t *permutation, ScanTable *st,
const uint8_t *src_scantable);
void ff_init_block_index(MpegEncContext *s);
void ff_mpv_motion(MpegEncContext *s,

Loading…
Cancel
Save