You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	hevc_parser: fix standalone build with the hevc decoder disabled
The parser depends on hevc_ps, which in turn needs some data tables. Found-by: James Almer <jamrial@gmail.com>
This commit is contained in:
		| @@ -240,7 +240,7 @@ OBJS-$(CONFIG_HAP_DECODER)             += hapdec.o | ||||
| OBJS-$(CONFIG_HAP_ENCODER)             += hapenc.o | ||||
| OBJS-$(CONFIG_HEVC_DECODER)            += hevc.o hevc_mvs.o hevc_ps.o hevc_sei.o \ | ||||
|                                           hevc_cabac.o hevc_refs.o hevcpred.o    \ | ||||
|                                           hevcdsp.o hevc_filter.o hevc_parse.o | ||||
|                                           hevcdsp.o hevc_filter.o hevc_parse.o hevc_data.o | ||||
| OBJS-$(CONFIG_HEVC_NVENC_ENCODER)      += nvenc_hevc.o | ||||
| OBJS-$(CONFIG_HEVC_QSV_ENCODER)        += qsvenc_hevc.o hevc_ps_enc.o hevc_parse.o | ||||
| OBJS-$(CONFIG_HNM4_VIDEO_DECODER)      += hnm4video.o | ||||
| @@ -697,7 +697,7 @@ OBJS-$(CONFIG_GSM_PARSER)              += gsm_parser.o | ||||
| OBJS-$(CONFIG_H261_PARSER)             += h261_parser.o | ||||
| OBJS-$(CONFIG_H263_PARSER)             += h263_parser.o | ||||
| OBJS-$(CONFIG_H264_PARSER)             += h264_parser.o | ||||
| OBJS-$(CONFIG_HEVC_PARSER)             += hevc_parser.o hevc_parse.o | ||||
| OBJS-$(CONFIG_HEVC_PARSER)             += hevc_parser.o hevc_parse.o hevc_ps.o hevc_data.o | ||||
| OBJS-$(CONFIG_MJPEG_PARSER)            += mjpeg_parser.o | ||||
| OBJS-$(CONFIG_MLP_PARSER)              += mlp_parser.o mlp.o | ||||
| OBJS-$(CONFIG_MPEG4VIDEO_PARSER)       += mpeg4video_parser.o h263.o \ | ||||
|   | ||||
| @@ -82,20 +82,6 @@ static const uint8_t diag_scan2x2_inv[2][2] = { | ||||
|     { 1, 3, }, | ||||
| }; | ||||
|  | ||||
| const uint8_t ff_hevc_diag_scan4x4_x[16] = { | ||||
|     0, 0, 1, 0, | ||||
|     1, 2, 0, 1, | ||||
|     2, 3, 1, 2, | ||||
|     3, 2, 3, 3, | ||||
| }; | ||||
|  | ||||
| const uint8_t ff_hevc_diag_scan4x4_y[16] = { | ||||
|     0, 1, 0, 2, | ||||
|     1, 0, 3, 2, | ||||
|     1, 0, 3, 2, | ||||
|     1, 3, 2, 3, | ||||
| }; | ||||
|  | ||||
| static const uint8_t diag_scan4x4_inv[4][4] = { | ||||
|     { 0,  2,  5,  9, }, | ||||
|     { 1,  4,  8, 12, }, | ||||
| @@ -103,44 +89,6 @@ static const uint8_t diag_scan4x4_inv[4][4] = { | ||||
|     { 6, 10, 13, 15, }, | ||||
| }; | ||||
|  | ||||
| const uint8_t ff_hevc_diag_scan8x8_x[64] = { | ||||
|     0, 0, 1, 0, | ||||
|     1, 2, 0, 1, | ||||
|     2, 3, 0, 1, | ||||
|     2, 3, 4, 0, | ||||
|     1, 2, 3, 4, | ||||
|     5, 0, 1, 2, | ||||
|     3, 4, 5, 6, | ||||
|     0, 1, 2, 3, | ||||
|     4, 5, 6, 7, | ||||
|     1, 2, 3, 4, | ||||
|     5, 6, 7, 2, | ||||
|     3, 4, 5, 6, | ||||
|     7, 3, 4, 5, | ||||
|     6, 7, 4, 5, | ||||
|     6, 7, 5, 6, | ||||
|     7, 6, 7, 7, | ||||
| }; | ||||
|  | ||||
| const uint8_t ff_hevc_diag_scan8x8_y[64] = { | ||||
|     0, 1, 0, 2, | ||||
|     1, 0, 3, 2, | ||||
|     1, 0, 4, 3, | ||||
|     2, 1, 0, 5, | ||||
|     4, 3, 2, 1, | ||||
|     0, 6, 5, 4, | ||||
|     3, 2, 1, 0, | ||||
|     7, 6, 5, 4, | ||||
|     3, 2, 1, 0, | ||||
|     7, 6, 5, 4, | ||||
|     3, 2, 1, 7, | ||||
|     6, 5, 4, 3, | ||||
|     2, 7, 6, 5, | ||||
|     4, 3, 7, 6, | ||||
|     5, 4, 7, 6, | ||||
|     5, 7, 6, 7, | ||||
| }; | ||||
|  | ||||
| static const uint8_t diag_scan8x8_inv[8][8] = { | ||||
|     {  0,  2,  5,  9, 14, 20, 27, 35, }, | ||||
|     {  1,  4,  8, 13, 19, 26, 34, 42, }, | ||||
|   | ||||
							
								
								
									
										75
									
								
								libavcodec/hevc_data.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								libavcodec/hevc_data.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,75 @@ | ||||
| /* | ||||
|  * HEVC shared 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 | ||||
|  */ | ||||
|  | ||||
| #include <stdint.h> | ||||
|  | ||||
| #include "hevc.h" | ||||
|  | ||||
| const uint8_t ff_hevc_diag_scan4x4_x[16] = { | ||||
|     0, 0, 1, 0, | ||||
|     1, 2, 0, 1, | ||||
|     2, 3, 1, 2, | ||||
|     3, 2, 3, 3, | ||||
| }; | ||||
|  | ||||
| const uint8_t ff_hevc_diag_scan4x4_y[16] = { | ||||
|     0, 1, 0, 2, | ||||
|     1, 0, 3, 2, | ||||
|     1, 0, 3, 2, | ||||
|     1, 3, 2, 3, | ||||
| }; | ||||
|  | ||||
| const uint8_t ff_hevc_diag_scan8x8_x[64] = { | ||||
|     0, 0, 1, 0, | ||||
|     1, 2, 0, 1, | ||||
|     2, 3, 0, 1, | ||||
|     2, 3, 4, 0, | ||||
|     1, 2, 3, 4, | ||||
|     5, 0, 1, 2, | ||||
|     3, 4, 5, 6, | ||||
|     0, 1, 2, 3, | ||||
|     4, 5, 6, 7, | ||||
|     1, 2, 3, 4, | ||||
|     5, 6, 7, 2, | ||||
|     3, 4, 5, 6, | ||||
|     7, 3, 4, 5, | ||||
|     6, 7, 4, 5, | ||||
|     6, 7, 5, 6, | ||||
|     7, 6, 7, 7, | ||||
| }; | ||||
|  | ||||
| const uint8_t ff_hevc_diag_scan8x8_y[64] = { | ||||
|     0, 1, 0, 2, | ||||
|     1, 0, 3, 2, | ||||
|     1, 0, 4, 3, | ||||
|     2, 1, 0, 5, | ||||
|     4, 3, 2, 1, | ||||
|     0, 6, 5, 4, | ||||
|     3, 2, 1, 0, | ||||
|     7, 6, 5, 4, | ||||
|     3, 2, 1, 0, | ||||
|     7, 6, 5, 4, | ||||
|     3, 2, 1, 7, | ||||
|     6, 5, 4, 3, | ||||
|     2, 7, 6, 5, | ||||
|     4, 3, 7, 6, | ||||
|     5, 4, 7, 6, | ||||
|     5, 7, 6, 7, | ||||
| }; | ||||
		Reference in New Issue
	
	Block a user