/* * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_H264_INFORMATION_H_ #define WEBRTC_MODULES_RTP_RTCP_SOURCE_H264_H264_INFORMATION_H_ #include "VideoCodecInformation.h" #include "typedefs.h" namespace webrtc { enum { KMaxNumberOfNALUs = 128, KMaxNumberOfSEINALUs = 2, KMaxNumberOfLayers = 16 }; struct H264_SVC_NALUHeader { H264_SVC_NALUHeader() : r(1), idr(0), priorityID(0), interLayerPred(0), dependencyID(0), qualityID(0), temporalID(0), useRefBasePic(0), discardable(0), output(0), rr(3), length(3) { } const WebRtc_UWord8 r; WebRtc_UWord8 idr; WebRtc_UWord8 priorityID; WebRtc_UWord8 interLayerPred; WebRtc_UWord8 dependencyID; WebRtc_UWord8 qualityID; WebRtc_UWord8 temporalID; WebRtc_UWord8 useRefBasePic; WebRtc_UWord8 discardable; WebRtc_UWord8 output; const WebRtc_UWord8 rr; const WebRtc_UWord8 length; }; class H264_PACSI_NALU { public: H264_PACSI_NALU() : NALlength(5), type(30), X(0), Y(0), // T(0), A(0), P(0), C(0), S(0), E(0), TL0picIDx(0), IDRpicID(0), DONC(0), numSEINALUs(0) { memset(seiMessageLength, 0, sizeof(seiMessageLength)); memset(seiMessageData, 0, sizeof(seiMessageData)); } ~H264_PACSI_NALU() { for(int i = 0; i