Pleora Technologies Inc. eBUS SDK v5.1.10.4642 API



PvBuffer.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2007, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVBUFFER_H__
8 #define __PVBUFFER_H__
9 
10 #include <PvBufferLib.h>
11 #include <PvPixelType.h>
12 #include <PvPayloadType.h>
13 #include <PvImage.h>
14 #include <PvRawData.h>
15 #include <PvChunkData.h>
16 
17 
18 namespace PvBufferLib
19 {
20  class Buffer;
21 }
22 
23 namespace PvStreamLib
24 {
25  class Pipeline;
26 }
27 
28 class PvPipeline;
29 class PvStream;
30 class PvBufferConverter;
32 class PvDeInterlacer;
33 class PvImage;
34 class PvTransmitterGEV;
35 
36 
37 class PV_BUFFER_API PvBuffer
38 {
39 public:
40 
41  PvBuffer( PvPayloadType aPayloadType = PvPayloadTypeImage );
42  virtual ~PvBuffer();
43 
44  PvPayloadType GetPayloadType() const;
45 
46  PvImage *GetImage();
47  const PvImage *GetImage() const;
48  PvRawData *GetRawData();
49  const PvRawData *GetRawData() const;
50  PvChunkData *GetChunkData();
51  const PvChunkData *GetChunkData() const;
52 
53  const uint8_t * GetDataPointer() const;
54  uint8_t * GetDataPointer();
55 
56  uint64_t GetID() const;
57  void SetID( uint64_t aValue );
58 
59  bool IsExtendedID() const;
60  bool IsAttached() const;
61  bool IsAllocated() const;
62 
63  uint32_t GetAcquiredSize() const;
64  uint32_t GetRequiredSize() const;
65  uint32_t GetSize() const;
66 
67  PvResult Reset( PvPayloadType aPayloadType = PvPayloadTypeImage );
68 
69  PvResult Alloc( uint32_t aSize );
70  void Free();
71 
72  PvResult Attach( void * aBuffer, uint32_t aSize );
73  uint8_t *Detach();
74 
75  uint64_t GetBlockID() const;
76  PvResult GetOperationResult() const;
77  uint64_t GetTimestamp() const;
78  uint64_t GetReceptionTime() const;
79 
80  PvResult SetTimestamp( uint64_t aTimestamp );
81  PvResult SetBlockID( uint64_t aBlockID );
82  PvResult SetReceptionTime( uint64_t aReceptionTime );
83 
84  uint32_t GetPacketsRecoveredCount() const;
85  uint32_t GetPacketsRecoveredSingleResendCount() const;
86  uint32_t GetResendGroupRequestedCount() const;
87  uint32_t GetResendPacketRequestedCount() const;
88  uint32_t GetLostPacketCount() const;
89  uint32_t GetIgnoredPacketCount() const;
90  uint32_t GetRedundantPacketCount() const;
91  uint32_t GetPacketOutOfOrderCount() const;
92 
93  PvResult GetMissingPacketIdsCount( uint32_t& aCount );
94  PvResult GetMissingPacketIds( uint32_t aIndex, uint32_t& aPacketIdLow, uint32_t& aPacketIdHigh );
95 
96  void SetChunkLayoutID( uint32_t aChunkLayoutID );
97  uint32_t GetChunkLayoutID();
98  PvResult AddChunk( uint32_t aID, const uint8_t *aData, uint32_t aLength );
99 
100  bool HasChunks() const;
101  uint32_t GetChunkCount();
102  PvResult GetChunkIDByIndex( uint32_t aIndex, uint32_t &aID );
103  uint32_t GetChunkSizeByIndex( uint32_t aIndex );
104  uint32_t GetChunkSizeByID( uint32_t aID );
105  const uint8_t *GetChunkRawDataByIndex( uint32_t aIndex );
106  const uint8_t *GetChunkRawDataByID( uint32_t aID );
107  uint32_t GetPayloadSize() const;
108 
109  bool IsHeaderValid() const;
110  bool IsTrailerValid() const;
111 
112 private:
113 
114  // Not implemented
115  PvBuffer( const PvBuffer & );
116  const PvBuffer &operator=( const PvBuffer & );
117 
118  friend class PvStreamLib::Pipeline;
119  friend class PvPipeline;
120  friend class PvStream;
121  friend class PvBufferConverter;
122  friend class PvBufferConverterRGBFilter;
123  friend class PvDeInterlacer;
124  friend class PvTransmitterGEV;
125 
126  PvBufferLib::Buffer * mThis;
127 };
128 
129 
130 #endif
Receive data from a GigE Vision or USB3 Vision transmitter.
Definition: PvStream.h:38
Helper class for receiving data from a GigE Vision or USB3 Vision transmitter.
Definition: PvPipeline.h:22
Used to convert a PvBuffer to another pixel type.
Definition: PvBufferConverter.h:28
Definition: PvBuffer.h:23
Raw data interface to a PvBuffer.
Definition: PvChunkData.h:21
Result information.
Definition: PvResult.h:13
Raw data interface to a PvBuffer.
Definition: PvRawData.h:21
Contains a RGB filter configuration that can be used with a PvBufferConverter.
Definition: PvBufferConverterRGBFilter.h:22
De-interlacing filter.
Definition: PvDeInterlacer.h:19
GVSP payload type constants.
PvPayloadType
GVSP payload type.
Definition: PvPayloadType.h:11
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition: PvBuffer.h:37
Image interface to a PvBuffer.
Definition: PvImage.h:24
Class for transmitting blocks using the GigE Vision streaming protocol.
Definition: PvTransmitterGEV.h:21
Definition: PvBuffer.h:18
Definition: PvPayloadType.h:14

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