158 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			158 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * This file is part of FFmpeg.
 | |
|  *
 | |
|  * FFmpeg 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.
 | |
|  *
 | |
|  * FFmpeg 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 FFmpeg; if not, write to the Free Software
 | |
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 | |
|  */
 | |
| 
 | |
| #ifndef AVCODEC_SEI_H
 | |
| #define AVCODEC_SEI_H
 | |
| 
 | |
| // SEI payload types form a common namespace between the H.264, H.265
 | |
| // and H.266 standards.  A given payload type always has the same
 | |
| // meaning, but some names have different payload types in different
 | |
| // standards (e.g. scalable-nesting is 30 in H.264 but 133 in H.265).
 | |
| // The content of the payload data depends on the standard, though
 | |
| // many generic parts have the same interpretation everywhere (such as
 | |
| // mastering-display-colour-volume and user-data-unregistered).
 | |
| enum SEIType {
 | |
|     SEI_TYPE_BUFFERING_PERIOD                            = 0,
 | |
|     SEI_TYPE_PIC_TIMING                                  = 1,
 | |
|     SEI_TYPE_PAN_SCAN_RECT                               = 2,
 | |
|     SEI_TYPE_FILLER_PAYLOAD                              = 3,
 | |
|     SEI_TYPE_USER_DATA_REGISTERED_ITU_T_T35              = 4,
 | |
|     SEI_TYPE_USER_DATA_UNREGISTERED                      = 5,
 | |
|     SEI_TYPE_RECOVERY_POINT                              = 6,
 | |
|     SEI_TYPE_DEC_REF_PIC_MARKING_REPETITION              = 7,
 | |
|     SEI_TYPE_SPARE_PIC                                   = 8,
 | |
|     SEI_TYPE_SCENE_INFO                                  = 9,
 | |
|     SEI_TYPE_SUB_SEQ_INFO                                = 10,
 | |
|     SEI_TYPE_SUB_SEQ_LAYER_CHARACTERISTICS               = 11,
 | |
|     SEI_TYPE_SUB_SEQ_CHARACTERISTICS                     = 12,
 | |
|     SEI_TYPE_FULL_FRAME_FREEZE                           = 13,
 | |
|     SEI_TYPE_FULL_FRAME_FREEZE_RELEASE                   = 14,
 | |
|     SEI_TYPE_FULL_FRAME_SNAPSHOT                         = 15,
 | |
|     SEI_TYPE_PROGRESSIVE_REFINEMENT_SEGMENT_START        = 16,
 | |
|     SEI_TYPE_PROGRESSIVE_REFINEMENT_SEGMENT_END          = 17,
 | |
|     SEI_TYPE_MOTION_CONSTRAINED_SLICE_GROUP_SET          = 18,
 | |
|     SEI_TYPE_FILM_GRAIN_CHARACTERISTICS                  = 19,
 | |
|     SEI_TYPE_DEBLOCKING_FILTER_DISPLAY_PREFERENCE        = 20,
 | |
|     SEI_TYPE_STEREO_VIDEO_INFO                           = 21,
 | |
|     SEI_TYPE_POST_FILTER_HINT                            = 22,
 | |
|     SEI_TYPE_TONE_MAPPING_INFO                           = 23,
 | |
|     SEI_TYPE_SCALABILITY_INFO                            = 24,
 | |
|     SEI_TYPE_SUB_PIC_SCALABLE_LAYER                      = 25,
 | |
|     SEI_TYPE_NON_REQUIRED_LAYER_REP                      = 26,
 | |
|     SEI_TYPE_PRIORITY_LAYER_INFO                         = 27,
 | |
|     SEI_TYPE_LAYERS_NOT_PRESENT_4                        = 28,
 | |
|     SEI_TYPE_LAYER_DEPENDENCY_CHANGE                     = 29,
 | |
|     SEI_TYPE_SCALABLE_NESTING_4                          = 30,
 | |
|     SEI_TYPE_BASE_LAYER_TEMPORAL_HRD                     = 31,
 | |
|     SEI_TYPE_QUALITY_LAYER_INTEGRITY_CHECK               = 32,
 | |
|     SEI_TYPE_REDUNDANT_PIC_PROPERTY                      = 33,
 | |
|     SEI_TYPE_TL0_DEP_REP_INDEX                           = 34,
 | |
|     SEI_TYPE_TL_SWITCHING_POINT                          = 35,
 | |
|     SEI_TYPE_PARALLEL_DECODING_INFO                      = 36,
 | |
|     SEI_TYPE_MVC_SCALABLE_NESTING                        = 37,
 | |
|     SEI_TYPE_VIEW_SCALABILITY_INFO                       = 38,
 | |
|     SEI_TYPE_MULTIVIEW_SCENE_INFO_4                      = 39,
 | |
|     SEI_TYPE_MULTIVIEW_ACQUISITION_INFO_4                = 40,
 | |
|     SEI_TYPE_NON_REQUIRED_VIEW_COMPONENT                 = 41,
 | |
|     SEI_TYPE_VIEW_DEPENDENCY_CHANGE                      = 42,
 | |
|     SEI_TYPE_OPERATION_POINTS_NOT_PRESENT                = 43,
 | |
|     SEI_TYPE_BASE_VIEW_TEMPORAL_HRD                      = 44,
 | |
|     SEI_TYPE_FRAME_PACKING_ARRANGEMENT                   = 45,
 | |
|     SEI_TYPE_MULTIVIEW_VIEW_POSITION_4                   = 46,
 | |
|     SEI_TYPE_DISPLAY_ORIENTATION                         = 47,
 | |
|     SEI_TYPE_MVCD_SCALABLE_NESTING                       = 48,
 | |
|     SEI_TYPE_MVCD_VIEW_SCALABILITY_INFO                  = 49,
 | |
|     SEI_TYPE_DEPTH_REPRESENTATION_INFO_4                 = 50,
 | |
|     SEI_TYPE_THREE_DIMENSIONAL_REFERENCE_DISPLAYS_INFO_4 = 51,
 | |
|     SEI_TYPE_DEPTH_TIMING                                = 52,
 | |
|     SEI_TYPE_DEPTH_SAMPLING_INFO                         = 53,
 | |
|     SEI_TYPE_CONSTRAINED_DEPTH_PARAMETER_SET_IDENTIFIER  = 54,
 | |
|     SEI_TYPE_GREEN_METADATA                              = 56,
 | |
|     SEI_TYPE_STRUCTURE_OF_PICTURES_INFO                  = 128,
 | |
|     SEI_TYPE_ACTIVE_PARAMETER_SETS                       = 129,
 | |
|     SEI_TYPE_PARAMETER_SETS_INCLUSION_INDICATION         = SEI_TYPE_ACTIVE_PARAMETER_SETS,
 | |
|     SEI_TYPE_DECODING_UNIT_INFO                          = 130,
 | |
|     SEI_TYPE_TEMPORAL_SUB_LAYER_ZERO_IDX                 = 131,
 | |
|     SEI_TYPE_DECODED_PICTURE_HASH                        = 132,
 | |
|     SEI_TYPE_SCALABLE_NESTING_5                          = 133,
 | |
|     SEI_TYPE_REGION_REFRESH_INFO                         = 134,
 | |
|     SEI_TYPE_NO_DISPLAY                                  = 135,
 | |
|     SEI_TYPE_TIME_CODE                                   = 136,
 | |
|     SEI_TYPE_MASTERING_DISPLAY_COLOUR_VOLUME             = 137,
 | |
|     SEI_TYPE_SEGMENTED_RECT_FRAME_PACKING_ARRANGEMENT    = 138,
 | |
|     SEI_TYPE_TEMPORAL_MOTION_CONSTRAINED_TILE_SETS       = 139,
 | |
|     SEI_TYPE_CHROMA_RESAMPLING_FILTER_HINT               = 140,
 | |
|     SEI_TYPE_KNEE_FUNCTION_INFO                          = 141,
 | |
|     SEI_TYPE_COLOUR_REMAPPING_INFO                       = 142,
 | |
|     SEI_TYPE_DEINTERLACED_FIELD_IDENTIFICATION           = 143,
 | |
|     SEI_TYPE_CONTENT_LIGHT_LEVEL_INFO                    = 144,
 | |
|     SEI_TYPE_DEPENDENT_RAP_INDICATION                    = 145,
 | |
|     SEI_TYPE_CODED_REGION_COMPLETION                     = 146,
 | |
|     SEI_TYPE_ALTERNATIVE_TRANSFER_CHARACTERISTICS        = 147,
 | |
|     SEI_TYPE_AMBIENT_VIEWING_ENVIRONMENT                 = 148,
 | |
|     SEI_TYPE_CONTENT_COLOUR_VOLUME                       = 149,
 | |
|     SEI_TYPE_EQUIRECTANGULAR_PROJECTION                  = 150,
 | |
|     SEI_TYPE_CUBEMAP_PROJECTION                          = 151,
 | |
|     SEI_TYPE_FISHEYE_VIDEO_INFO                          = 152,
 | |
|     SEI_TYPE_SPHERE_ROTATION                             = 154,
 | |
|     SEI_TYPE_REGIONWISE_PACKING                          = 155,
 | |
|     SEI_TYPE_OMNI_VIEWPORT                               = 156,
 | |
|     SEI_TYPE_REGIONAL_NESTING                            = 157,
 | |
|     SEI_TYPE_MCTS_EXTRACTION_INFO_SETS                   = 158,
 | |
|     SEI_TYPE_MCTS_EXTRACTION_INFO_NESTING                = 159,
 | |
|     SEI_TYPE_LAYERS_NOT_PRESENT_5                        = 160,
 | |
|     SEI_TYPE_INTER_LAYER_CONSTRAINED_TILE_SETS           = 161,
 | |
|     SEI_TYPE_BSP_NESTING                                 = 162,
 | |
|     SEI_TYPE_BSP_INITIAL_ARRIVAL_TIME                    = 163,
 | |
|     SEI_TYPE_SUB_BITSTREAM_PROPERTY                      = 164,
 | |
|     SEI_TYPE_ALPHA_CHANNEL_INFO                          = 165,
 | |
|     SEI_TYPE_OVERLAY_INFO                                = 166,
 | |
|     SEI_TYPE_TEMPORAL_MV_PREDICTION_CONSTRAINTS          = 167,
 | |
|     SEI_TYPE_FRAME_FIELD_INFO                            = 168,
 | |
|     SEI_TYPE_THREE_DIMENSIONAL_REFERENCE_DISPLAYS_INFO   = 176,
 | |
|     SEI_TYPE_DEPTH_REPRESENTATION_INFO_5                 = 177,
 | |
|     SEI_TYPE_MULTIVIEW_SCENE_INFO_5                      = 178,
 | |
|     SEI_TYPE_MULTIVIEW_ACQUISITION_INFO_5                = 179,
 | |
|     SEI_TYPE_MULTIVIEW_VIEW_POSITION_5                   = 180,
 | |
|     SEI_TYPE_ALTERNATIVE_DEPTH_INFO                      = 181,
 | |
|     SEI_TYPE_SEI_MANIFEST                                = 200,
 | |
|     SEI_TYPE_SEI_PREFIX_INDICATION                       = 201,
 | |
|     SEI_TYPE_ANNOTATED_REGIONS                           = 202,
 | |
|     SEI_TYPE_SUBPIC_LEVEL_INFO                           = 203,
 | |
|     SEI_TYPE_SAMPLE_ASPECT_RATIO_INFO                    = 204,
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * frame_packing_arrangement types. H.265 and H.274 use only 3..5
 | |
|  * with all the other values being reserved. H.264 uses a few more values
 | |
|  * that are prefixed with SEI_FPA_H264 in the enum below.
 | |
|  *
 | |
|  * The semantics of the common values are the same for all standards.
 | |
|  */
 | |
| typedef enum {
 | |
|     SEI_FPA_H264_TYPE_CHECKERBOARD        = 0,
 | |
|     SEI_FPA_H264_TYPE_INTERLEAVE_COLUMN   = 1,
 | |
|     SEI_FPA_H264_TYPE_INTERLEAVE_ROW      = 2,
 | |
|     SEI_FPA_TYPE_SIDE_BY_SIDE             = 3,
 | |
|     SEI_FPA_TYPE_TOP_BOTTOM               = 4,
 | |
|     SEI_FPA_TYPE_INTERLEAVE_TEMPORAL      = 5,
 | |
|     SEI_FPA_H264_TYPE_2D                  = 6,
 | |
| } SEIFpaType;
 | |
| 
 | |
| #endif /* AVCODEC_SEI_H */
 |