You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	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:
		| @@ -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, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user