Pleora Technologies Inc. eBUS SDK v6.4.0.6670 API



PvMultiPartContainer.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2018, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVMULTIPARTCONTAINER_H__
8 #define __PVMULTIPARTCONTAINER_H__
9 
10 #include <PvMultiPartSection.h>
11 
26 class PV_BUFFER_API IPvMultiPartContainerReader
27 {
28 public:
29 
30  virtual ~IPvMultiPartContainerReader() {}
31 
37  virtual uint32_t GetPartCount() = 0;
38 
46  virtual const IPvMultiPartSection *GetPart( uint32_t aIndex ) const = 0;
47 
55  virtual IPvMultiPartSection *GetPart( uint32_t aIndex ) = 0;
56 
64  virtual const IPvMultiPartSection *operator[]( uint32_t aIndex ) const = 0;
65 
73  virtual IPvMultiPartSection *operator[]( uint32_t aIndex ) = 0;
74 
75 };
76 
77 
106 class PV_BUFFER_API IPvMultiPartContainerWriter
108 {
109 public:
110 
111  virtual ~IPvMultiPartContainerWriter() {}
112 
116  virtual void Reset() = 0;
117 
145  virtual PvResult AddImagePart( PvMultiPartDataType aDataType, uint32_t aWidth, uint32_t aMaxHeight, PvPixelType aPixelType, uint32_t aOffsetX = 0, uint32_t aOffsetY = 0, uint16_t aPaddingX = 0 ) = 0;
146 
171  virtual PvResult AddJPEGPart( PvMultiPartDataType aDataType, uint32_t aMaxLength, uint8_t aFlag, uint64_t aTimestampTickFrequency, uint32_t aDataFormat ) = 0;
172 
189  virtual PvResult AddChunkPart( uint32_t aMaxLength, uint32_t aChunkLayoutID ) = 0;
190 
209  virtual PvResult SetPartIDs( uint32_t aIndex, uint32_t aSourceID, uint32_t aDataPurposeID, uint32_t aRegionID ) = 0;
210 
229  virtual PvResult SetPartZoneInfo( uint32_t aIndex, uint8_t aAdditionalZones, uint32_t aZoneDirectionMask ) = 0;
230 
248  virtual PvResult AllocAllParts() = 0;
249 
266  virtual PvResult AllocPart( uint32_t aIndex ) = 0;
267 
283  virtual PvResult AttachPart( uint32_t aIndex, uint8_t *aBuffer, uint64_t aLength ) = 0;
284 
301  virtual PvResult SetPartFinalLength( uint32_t aIndex, uint32_t aLength ) = 0;
302 
321  virtual PvResult SetPartFinalImageHeight( uint32_t aIndex, uint32_t aHeight ) = 0;
322 
335  virtual PvResult Validate() = 0;
336 
337 };
338 
339 
352 class PV_BUFFER_API IPvMultiPartContainer
354 {
355 public:
356 
357  virtual ~IPvMultiPartContainer() {}
358 
359 };
360 
361 
362 #endif
Result information.
Definition: PvResult.h:29
PvPixelType
Definition: PvPixelType.h:57
Interface used to read from a multi-part container.
Definition: PvMultiPartContainer.h:26
One section (part) of a multi-part container.
Definition: PvMultiPartSection.h:157
Interface to a multi-part container.
Definition: PvMultiPartContainer.h:352
Interface used to write to a multi-part container.
Definition: PvMultiPartContainer.h:106
Multi-part section interface and enums definition.

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