1 /* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 /*------------------------------------------------------------------------------ 18 19 Table of contents 20 21 1. Include headers 22 2. Module defines 23 3. Data types 24 4. Function prototypes 25 26 ------------------------------------------------------------------------------*/ 27 28 #ifndef H264SWDEC_NAL_UNIT_H 29 #define H264SWDEC_NAL_UNIT_H 30 31 /*------------------------------------------------------------------------------ 32 1. Include headers 33 ------------------------------------------------------------------------------*/ 34 35 #include "basetype.h" 36 #include "h264bsd_stream.h" 37 38 /*------------------------------------------------------------------------------ 39 2. Module defines 40 ------------------------------------------------------------------------------*/ 41 42 /* macro to determine if NAL unit pointed by pNalUnit contains an IDR slice */ 43 #define IS_IDR_NAL_UNIT(pNalUnit) \ 44 ((pNalUnit)->nalUnitType == NAL_CODED_SLICE_IDR) 45 46 /*------------------------------------------------------------------------------ 47 3. Data types 48 ------------------------------------------------------------------------------*/ 49 50 typedef enum { 51 NAL_CODED_SLICE = 1, 52 NAL_CODED_SLICE_IDR = 5, 53 NAL_SEI = 6, 54 NAL_SEQ_PARAM_SET = 7, 55 NAL_PIC_PARAM_SET = 8, 56 NAL_ACCESS_UNIT_DELIMITER = 9, 57 NAL_END_OF_SEQUENCE = 10, 58 NAL_END_OF_STREAM = 11, 59 NAL_FILLER_DATA = 12, 60 NAL_MAX_TYPE_VALUE = 31 61 } nalUnitType_e; 62 63 typedef struct 64 { 65 nalUnitType_e nalUnitType; 66 u32 nalRefIdc; 67 } nalUnit_t; 68 69 /*------------------------------------------------------------------------------ 70 4. Function prototypes 71 ------------------------------------------------------------------------------*/ 72 73 u32 h264bsdDecodeNalUnit(strmData_t *pStrmData, nalUnit_t *pNalUnit); 74 75 #endif /* #ifdef H264SWDEC_NAL_UNIT_H */ 76 77