Pleora Technologies Inc. eBUS SDK v6.2.8.5877 API



PvH264AccessUnit.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2010, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVH264ACCESSUNIT_H__
8 #define __PVH264ACCESSUNIT_H__
9 
10 #include <PvBufferLib.h>
11 #include <PvPixelType.h>
12 
13 
14 namespace PvBufferLib
15 {
16  class H264AccessUnit;
17  class Buffer;
18 }
19 
20 
21 class PV_BUFFER_API IPvH264AccessUnit
22 {
23 public:
24 
25  virtual ~IPvH264AccessUnit() {}
26 
27  virtual uint32_t GetSize() const = 0;
28  virtual uint32_t GetNALDataSize() const = 0;
29  virtual const uint8_t *GetNALDataPtr() const = 0;
30 
31  virtual uint32_t GetNALCount() const = 0;
32  virtual PvResult GetNALPtr( uint32_t aIndex, const uint8_t **aPtr, uint32_t &aLength ) const = 0;
33 
34  virtual uint64_t GetDuration() const = 0;
35 
36  virtual bool HasSPS() const = 0;
37  virtual uint32_t GetWidth() const = 0;
38  virtual uint32_t GetHeight() const = 0;
39  virtual uint32_t GetOffsetTop() const = 0;
40  virtual uint32_t GetOffsetLeft() const = 0;
41  virtual uint32_t GetOffsetBottom() const = 0;
42  virtual uint32_t GetOffsetRight() const = 0;
43 
44  virtual PvResult Alloc( uint64_t aPayloadLength, uint32_t aMaximumChunkLength = 0 ) = 0;
45  virtual void Free() = 0;
46  virtual void Reset() = 0;
47  virtual PvResult AddNAL( const uint8_t *aPtr, uint32_t aLength ) = 0;
48  virtual PvResult CopyNALData( const uint8_t *aPtr, uint32_t aLength, uint32_t aWidth, uint32_t aHeight ) = 0;
49 };
50 
51 
52 #endif
PvResult
Result information.
Definition: PvResult.h:13
IPvH264AccessUnit
Generic, read-only H264 access unit interface.
Definition: PvH264AccessUnit.h:21
PvPixelType.h

Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com