Home | History | Annotate | Download | only in source
      1 /*
      2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #ifndef WEBRTC_MODULES_VIDEO_CODING_PACKET_H_
     12 #define WEBRTC_MODULES_VIDEO_CODING_PACKET_H_
     13 
     14 #include "webrtc/modules/interface/module_common_types.h"
     15 #include "webrtc/modules/video_coding/main/source/jitter_buffer_common.h"
     16 #include "webrtc/typedefs.h"
     17 
     18 namespace webrtc {
     19 
     20 class VCMPacket {
     21 public:
     22     VCMPacket();
     23     VCMPacket(const uint8_t* ptr,
     24               const uint32_t size,
     25               const WebRtcRTPHeader& rtpHeader);
     26     VCMPacket(const uint8_t* ptr,
     27               uint32_t size,
     28               uint16_t seqNum,
     29               uint32_t timestamp,
     30               bool markerBit);
     31 
     32     void Reset();
     33 
     34     uint8_t           payloadType;
     35     uint32_t          timestamp;
     36     // NTP time of the capture time in local timebase in milliseconds.
     37     int64_t ntp_time_ms_;
     38     uint16_t          seqNum;
     39     const uint8_t*    dataPtr;
     40     uint32_t          sizeBytes;
     41     bool                    markerBit;
     42 
     43     FrameType               frameType;
     44     webrtc::VideoCodecType  codec;
     45 
     46     bool isFirstPacket;                 // Is this first packet in a frame.
     47     VCMNaluCompleteness completeNALU;   // Default is kNaluIncomplete.
     48     bool insertStartCode;               // True if a start code should be inserted before this
     49                                         // packet.
     50     int width;
     51     int height;
     52     RTPVideoHeader codecSpecificHeader;
     53 
     54 protected:
     55     void CopyCodecSpecifics(const RTPVideoHeader& videoHeader);
     56 };
     57 
     58 }  // namespace webrtc
     59 #endif // WEBRTC_MODULES_VIDEO_CODING_PACKET_H_
     60