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>
This commit is contained in:
parent
de133d22da
commit
7f45691769
@ -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,
|
av_cold void ff_init_scantable_permutation(uint8_t *idct_permutation,
|
||||||
enum idct_permutation_type perm_type)
|
enum idct_permutation_type perm_type)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -25,15 +25,6 @@
|
|||||||
|
|
||||||
#include "avcodec.h"
|
#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 {
|
enum idct_permutation_type {
|
||||||
FF_IDCT_PERM_NONE,
|
FF_IDCT_PERM_NONE,
|
||||||
FF_IDCT_PERM_LIBMPEG2,
|
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],
|
void ff_permute_scantable(uint8_t dst[64], const uint8_t src[64],
|
||||||
const uint8_t permutation[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,
|
void ff_init_scantable_permutation(uint8_t *idct_permutation,
|
||||||
enum idct_permutation_type perm_type);
|
enum idct_permutation_type perm_type);
|
||||||
int ff_init_scantable_permutation_x86(uint8_t *idct_permutation,
|
int ff_init_scantable_permutation_x86(uint8_t *idct_permutation,
|
||||||
|
|||||||
@ -320,6 +320,27 @@ static av_cold int dct_init(MpegEncContext *s)
|
|||||||
return 0;
|
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)
|
av_cold void ff_mpv_idct_init(MpegEncContext *s)
|
||||||
{
|
{
|
||||||
if (s->codec_id == AV_CODEC_ID_MPEG4)
|
if (s->codec_id == AV_CODEC_ID_MPEG4)
|
||||||
|
|||||||
@ -55,6 +55,15 @@
|
|||||||
|
|
||||||
#define MAX_B_FRAMES 16
|
#define MAX_B_FRAMES 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Scantable.
|
||||||
|
*/
|
||||||
|
typedef struct ScanTable {
|
||||||
|
const uint8_t *scantable;
|
||||||
|
uint8_t permutated[64];
|
||||||
|
uint8_t raster_end[64];
|
||||||
|
} ScanTable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* MpegEncContext.
|
* 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_set_qscale(MpegEncContext * s, int qscale);
|
||||||
|
|
||||||
void ff_mpv_idct_init(MpegEncContext *s);
|
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_init_block_index(MpegEncContext *s);
|
||||||
|
|
||||||
void ff_mpv_motion(MpegEncContext *s,
|
void ff_mpv_motion(MpegEncContext *s,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user