10c1bc742181ded4930842b46e9507372f0b1b963James Dong/*
20c1bc742181ded4930842b46e9507372f0b1b963James Dong * Copyright (C) 2009 The Android Open Source Project
30c1bc742181ded4930842b46e9507372f0b1b963James Dong *
40c1bc742181ded4930842b46e9507372f0b1b963James Dong * Licensed under the Apache License, Version 2.0 (the "License");
50c1bc742181ded4930842b46e9507372f0b1b963James Dong * you may not use this file except in compliance with the License.
60c1bc742181ded4930842b46e9507372f0b1b963James Dong * You may obtain a copy of the License at
70c1bc742181ded4930842b46e9507372f0b1b963James Dong *
80c1bc742181ded4930842b46e9507372f0b1b963James Dong *      http://www.apache.org/licenses/LICENSE-2.0
90c1bc742181ded4930842b46e9507372f0b1b963James Dong *
100c1bc742181ded4930842b46e9507372f0b1b963James Dong * Unless required by applicable law or agreed to in writing, software
110c1bc742181ded4930842b46e9507372f0b1b963James Dong * distributed under the License is distributed on an "AS IS" BASIS,
120c1bc742181ded4930842b46e9507372f0b1b963James Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130c1bc742181ded4930842b46e9507372f0b1b963James Dong * See the License for the specific language governing permissions and
140c1bc742181ded4930842b46e9507372f0b1b963James Dong * limitations under the License.
150c1bc742181ded4930842b46e9507372f0b1b963James Dong */
160c1bc742181ded4930842b46e9507372f0b1b963James Dong
170c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------
180c1bc742181ded4930842b46e9507372f0b1b963James Dong
190c1bc742181ded4930842b46e9507372f0b1b963James Dong    Table of contents
200c1bc742181ded4930842b46e9507372f0b1b963James Dong
210c1bc742181ded4930842b46e9507372f0b1b963James Dong    1. Include headers
220c1bc742181ded4930842b46e9507372f0b1b963James Dong    2. Module defines
230c1bc742181ded4930842b46e9507372f0b1b963James Dong    3. Data types
240c1bc742181ded4930842b46e9507372f0b1b963James Dong    4. Function prototypes
250c1bc742181ded4930842b46e9507372f0b1b963James Dong
260c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/
270c1bc742181ded4930842b46e9507372f0b1b963James Dong
280c1bc742181ded4930842b46e9507372f0b1b963James Dong#ifndef H264SWDEC_SEI_H
290c1bc742181ded4930842b46e9507372f0b1b963James Dong#define H264SWDEC_SEI_H
300c1bc742181ded4930842b46e9507372f0b1b963James Dong
310c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------
320c1bc742181ded4930842b46e9507372f0b1b963James Dong    1. Include headers
330c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/
340c1bc742181ded4930842b46e9507372f0b1b963James Dong
350c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "basetype.h"
360c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "h264bsd_stream.h"
370c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "h264bsd_slice_header.h"
380c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "h264bsd_seq_param_set.h"
390c1bc742181ded4930842b46e9507372f0b1b963James Dong#include "h264bsd_vui.h"
400c1bc742181ded4930842b46e9507372f0b1b963James Dong
410c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------
420c1bc742181ded4930842b46e9507372f0b1b963James Dong    2. Module defines
430c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/
440c1bc742181ded4930842b46e9507372f0b1b963James Dong
450c1bc742181ded4930842b46e9507372f0b1b963James Dong#define MAX_PAN_SCAN_CNT 32
460c1bc742181ded4930842b46e9507372f0b1b963James Dong#define MAX_NUM_SPARE_PICS 16
470c1bc742181ded4930842b46e9507372f0b1b963James Dong#define MAX_NUM_CLOCK_TS 3
480c1bc742181ded4930842b46e9507372f0b1b963James Dong#define MAX_NUM_SUB_SEQ_LAYERS 256
490c1bc742181ded4930842b46e9507372f0b1b963James Dong
500c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------
510c1bc742181ded4930842b46e9507372f0b1b963James Dong    3. Data types
520c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/
530c1bc742181ded4930842b46e9507372f0b1b963James Dong
540c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
550c1bc742181ded4930842b46e9507372f0b1b963James Dong{
560c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 seqParameterSetId;
570c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 initialCpbRemovalDelay[MAX_CPB_CNT];
580c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 initialCpbRemovalDelayOffset[MAX_CPB_CNT];
590c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiBufferingPeriod_t;
600c1bc742181ded4930842b46e9507372f0b1b963James Dong
610c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
620c1bc742181ded4930842b46e9507372f0b1b963James Dong{
630c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 cpbRemovalDelay;
640c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 dpbOutputDelay;
650c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 picStruct;
660c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 clockTimeStampFlag[MAX_NUM_CLOCK_TS];
670c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 clockTimeStamp[MAX_NUM_CLOCK_TS];
680c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 ctType[MAX_NUM_CLOCK_TS];
690c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 nuitFieldBasedFlag[MAX_NUM_CLOCK_TS];
700c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 countingType[MAX_NUM_CLOCK_TS];
710c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 fullTimeStampFlag[MAX_NUM_CLOCK_TS];
720c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 discontinuityFlag[MAX_NUM_CLOCK_TS];
730c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 cntDroppedFlag[MAX_NUM_CLOCK_TS];
740c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 nFrames[MAX_NUM_CLOCK_TS];
750c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 secondsFlag[MAX_NUM_CLOCK_TS];
760c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 secondsValue[MAX_NUM_CLOCK_TS];
770c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 minutesFlag[MAX_NUM_CLOCK_TS];
780c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 minutesValue[MAX_NUM_CLOCK_TS];
790c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 hoursFlag[MAX_NUM_CLOCK_TS];
800c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 hoursValue[MAX_NUM_CLOCK_TS];
810c1bc742181ded4930842b46e9507372f0b1b963James Dong    i32 timeOffset[MAX_NUM_CLOCK_TS];
820c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiPicTiming_t;
830c1bc742181ded4930842b46e9507372f0b1b963James Dong
840c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
850c1bc742181ded4930842b46e9507372f0b1b963James Dong{
860c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 panScanRectId;
870c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 panScanRectCancelFlag;
880c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 panScanCnt;
890c1bc742181ded4930842b46e9507372f0b1b963James Dong    i32 panScanRectLeftOffset[MAX_PAN_SCAN_CNT];
900c1bc742181ded4930842b46e9507372f0b1b963James Dong    i32 panScanRectRightOffset[MAX_PAN_SCAN_CNT];
910c1bc742181ded4930842b46e9507372f0b1b963James Dong    i32 panScanRectTopOffset[MAX_PAN_SCAN_CNT];
920c1bc742181ded4930842b46e9507372f0b1b963James Dong    i32 panScanRectBottomOffset[MAX_PAN_SCAN_CNT];
930c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 panScanRectRepetitionPeriod;
940c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiPanScanRect_t;
950c1bc742181ded4930842b46e9507372f0b1b963James Dong
960c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
970c1bc742181ded4930842b46e9507372f0b1b963James Dong{
980c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 ituTT35CountryCode;
990c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 ituTT35CountryCodeExtensionByte;
1000c1bc742181ded4930842b46e9507372f0b1b963James Dong    u8 *ituTT35PayloadByte;
1010c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 numPayloadBytes;
1020c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiUserDataRegisteredItuTT35_t;
1030c1bc742181ded4930842b46e9507372f0b1b963James Dong
1040c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1050c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1060c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 uuidIsoIec11578[4];
1070c1bc742181ded4930842b46e9507372f0b1b963James Dong    u8 *userDataPayloadByte;
1080c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 numPayloadBytes;
1090c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiUserDataUnregistered_t;
1100c1bc742181ded4930842b46e9507372f0b1b963James Dong
1110c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1120c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1130c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 recoveryFrameCnt;
1140c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 exactMatchFlag;
1150c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 brokenLinkFlag;
1160c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 changingSliceGroupIdc;
1170c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiRecoveryPoint_t;
1180c1bc742181ded4930842b46e9507372f0b1b963James Dong
1190c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1200c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1210c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 originalIdrFlag;
1220c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 originalFrameNum;
1230c1bc742181ded4930842b46e9507372f0b1b963James Dong    decRefPicMarking_t decRefPicMarking;
1240c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiDecRefPicMarkingRepetition_t;
1250c1bc742181ded4930842b46e9507372f0b1b963James Dong
1260c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1270c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1280c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 targetFrameNum;
1290c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 spareFieldFlag;
1300c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 targetBottomFieldFlag;
1310c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 numSparePics;
1320c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 deltaSpareFrameNum[MAX_NUM_SPARE_PICS];
1330c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 spareBottomFieldFlag[MAX_NUM_SPARE_PICS];
1340c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 spareAreaIdc[MAX_NUM_SPARE_PICS];
1350c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 *spareUnitFlag[MAX_NUM_SPARE_PICS];
1360c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 *zeroRunLength[MAX_NUM_SPARE_PICS];
1370c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiSparePic_t;
1380c1bc742181ded4930842b46e9507372f0b1b963James Dong
1390c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1400c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1410c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 sceneInfoPresentFlag;
1420c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 sceneId;
1430c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 sceneTransitionType;
1440c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 secondSceneId;
1450c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiSceneInfo_t;
1460c1bc742181ded4930842b46e9507372f0b1b963James Dong
1470c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1480c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1490c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 subSeqLayerNum;
1500c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 subSeqId;
1510c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 firstRefPicFlag;
1520c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 leadingNonRefPicFlag;
1530c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 lastPicFlag;
1540c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 subSeqFrameNumFlag;
1550c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 subSeqFrameNum;
1560c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiSubSeqInfo_t;
1570c1bc742181ded4930842b46e9507372f0b1b963James Dong
1580c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1590c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1600c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 numSubSeqLayers;
1610c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 accurateStatisticsFlag[MAX_NUM_SUB_SEQ_LAYERS];
1620c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 averageBitRate[MAX_NUM_SUB_SEQ_LAYERS];
1630c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 averageFrameRate[MAX_NUM_SUB_SEQ_LAYERS];
1640c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiSubSeqLayerCharacteristics_t;
1650c1bc742181ded4930842b46e9507372f0b1b963James Dong
1660c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1670c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1680c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 subSeqLayerNum;
1690c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 subSeqId;
1700c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 durationFlag;
1710c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 subSeqDuration;
1720c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 averageRateFlag;
1730c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 accurateStatisticsFlag;
1740c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 averageBitRate;
1750c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 averageFrameRate;
1760c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 numReferencedSubseqs;
1770c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 refSubSeqLayerNum[MAX_NUM_SUB_SEQ_LAYERS];
1780c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 refSubSeqId[MAX_NUM_SUB_SEQ_LAYERS];
1790c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 refSubSeqDirection[MAX_NUM_SUB_SEQ_LAYERS];
1800c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiSubSeqCharacteristics_t;
1810c1bc742181ded4930842b46e9507372f0b1b963James Dong
1820c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1830c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1840c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 fullFrameFreezeRepetitionPeriod;
1850c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiFullFrameFreeze_t;
1860c1bc742181ded4930842b46e9507372f0b1b963James Dong
1870c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1880c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1890c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 snapShotId;
1900c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiFullFrameSnapshot_t;
1910c1bc742181ded4930842b46e9507372f0b1b963James Dong
1920c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1930c1bc742181ded4930842b46e9507372f0b1b963James Dong{
1940c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 progressiveRefinementId;
1950c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 numRefinementSteps;
1960c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiProgressiveRefinementSegmentStart_t;
1970c1bc742181ded4930842b46e9507372f0b1b963James Dong
1980c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
1990c1bc742181ded4930842b46e9507372f0b1b963James Dong{
2000c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 progressiveRefinementId;
2010c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiProgressiveRefinementSegmentEnd_t;
2020c1bc742181ded4930842b46e9507372f0b1b963James Dong
2030c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
2040c1bc742181ded4930842b46e9507372f0b1b963James Dong{
2050c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 numSliceGroupsInSet;
2060c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 sliceGroupId[MAX_NUM_SLICE_GROUPS];
2070c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 exactSampleValueMatchFlag;
2080c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 panScanRectFlag;
2090c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 panScanRectId;
2100c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiMotionConstrainedSliceGroupSet_t;
2110c1bc742181ded4930842b46e9507372f0b1b963James Dong
2120c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
2130c1bc742181ded4930842b46e9507372f0b1b963James Dong{
2140c1bc742181ded4930842b46e9507372f0b1b963James Dong    u8 *reservedSeiMessagePayloadByte;
2150c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 numPayloadBytes;
2160c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiReservedSeiMessage_t;
2170c1bc742181ded4930842b46e9507372f0b1b963James Dong
2180c1bc742181ded4930842b46e9507372f0b1b963James Dongtypedef struct
2190c1bc742181ded4930842b46e9507372f0b1b963James Dong{
2200c1bc742181ded4930842b46e9507372f0b1b963James Dong    u32 payloadType;
2210c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiBufferingPeriod_t bufferingPeriod;
2220c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiPicTiming_t picTiming;
2230c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiPanScanRect_t panScanRect;
2240c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiUserDataRegisteredItuTT35_t userDataRegisteredItuTT35;
2250c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiUserDataUnregistered_t userDataUnregistered;
2260c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiRecoveryPoint_t recoveryPoint;
2270c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiDecRefPicMarkingRepetition_t decRefPicMarkingRepetition;
2280c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiSparePic_t sparePic;
2290c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiSceneInfo_t sceneInfo;
2300c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiSubSeqInfo_t subSeqInfo;
2310c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiSubSeqLayerCharacteristics_t subSeqLayerCharacteristics;
2320c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiSubSeqCharacteristics_t subSeqCharacteristics;
2330c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiFullFrameFreeze_t fullFrameFreeze;
2340c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiFullFrameSnapshot_t fullFrameSnapshot;
2350c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiProgressiveRefinementSegmentStart_t progressiveRefinementSegmentStart;
2360c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiProgressiveRefinementSegmentEnd_t progressiveRefinementSegmentEnd;
2370c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiMotionConstrainedSliceGroupSet_t motionConstrainedSliceGroupSet;
2380c1bc742181ded4930842b46e9507372f0b1b963James Dong    seiReservedSeiMessage_t reservedSeiMessage;
2390c1bc742181ded4930842b46e9507372f0b1b963James Dong} seiMessage_t;
2400c1bc742181ded4930842b46e9507372f0b1b963James Dong
2410c1bc742181ded4930842b46e9507372f0b1b963James Dong/*------------------------------------------------------------------------------
2420c1bc742181ded4930842b46e9507372f0b1b963James Dong    4. Function prototypes
2430c1bc742181ded4930842b46e9507372f0b1b963James Dong------------------------------------------------------------------------------*/
2440c1bc742181ded4930842b46e9507372f0b1b963James Dong
2450c1bc742181ded4930842b46e9507372f0b1b963James Dongu32 h264bsdDecodeSeiMessage(
2460c1bc742181ded4930842b46e9507372f0b1b963James Dong  strmData_t *pStrmData,
2470c1bc742181ded4930842b46e9507372f0b1b963James Dong  seqParamSet_t *pSeqParamSet,
2480c1bc742181ded4930842b46e9507372f0b1b963James Dong  seiMessage_t *pSeiMessage,
2490c1bc742181ded4930842b46e9507372f0b1b963James Dong  u32 numSliceGroups);
2500c1bc742181ded4930842b46e9507372f0b1b963James Dong
2510c1bc742181ded4930842b46e9507372f0b1b963James Dong#endif /* #ifdef H264SWDEC_SEI_H */
2520c1bc742181ded4930842b46e9507372f0b1b963James Dong
253