Home | History | Annotate | Download | only in video_coding
      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/include/module_common_types.h"
     15 #include "webrtc/modules/video_coding/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 size_t size,
     25             const WebRtcRTPHeader& rtpHeader);
     26   VCMPacket(const uint8_t* ptr,
     27             size_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   size_t sizeBytes;
     41   bool markerBit;
     42 
     43   FrameType frameType;
     44   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