Pleora Technologies Inc. eBUS SDK v6.5.1.6797 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
Multi-part section interface and enums definition.
PvPixelType
Definition: PvPixelType.h:58
Interface to a multi-part container.
Definition: PvMultiPartContainer.h:354
Interface used to read from a multi-part container.
Definition: PvMultiPartContainer.h:27
virtual IPvMultiPartSection * GetPart(uint32_t aIndex)=0
Indexed part (section) accessor.
virtual const IPvMultiPartSection * operator[](uint32_t aIndex) const =0
Indexed part (section) const accessor.
virtual uint32_t GetPartCount()=0
Part count of the multi-part container.
virtual const IPvMultiPartSection * GetPart(uint32_t aIndex) const =0
Indexed part (section) const accessor.
virtual IPvMultiPartSection * operator[](uint32_t aIndex)=0
Indexed part (section) accessor.
Interface used to write to a multi-part container.
Definition: PvMultiPartContainer.h:108
virtual PvResult Validate()=0
Validates the part index and allocated/attached part memory.
virtual PvResult SetPartZoneInfo(uint32_t aIndex, uint8_t aAdditionalZones, uint32_t aZoneDirectionMask)=0
Sets the zone info of a part.
virtual PvResult SetPartFinalImageHeight(uint32_t aIndex, uint32_t aHeight)=0
Sets the final height of an image part.
virtual void Reset()=0
Resets the multi-part container index to empty - no parts.
virtual PvResult AllocAllParts()=0
Allocates memory for all parts defined by the part index of the multi-part container.
virtual PvResult SetPartFinalLength(uint32_t aIndex, uint32_t aLength)=0
Sets the final length of a part.
virtual PvResult AddChunkPart(uint32_t aMaxLength, uint32_t aChunkLayoutID)=0
Adds a chunk data part to the index of a multi-part container.
virtual PvResult AddJPEGPart(PvMultiPartDataType aDataType, uint32_t aMaxLength, uint8_t aFlag, uint64_t aTimestampTickFrequency, uint32_t aDataFormat)=0
Adds a JPEG part to the index of a multi-part container.
virtual PvResult SetPartIDs(uint32_t aIndex, uint32_t aSourceID, uint32_t aDataPurposeID, uint32_t aRegionID)=0
Sets the source, data purpose and region IDs of a part.
virtual PvResult AllocPart(uint32_t aIndex)=0
Allocates memory for one of the parts as defined by the index of the part.
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
Adds an image part to the index of a multi-part container.
virtual PvResult AttachPart(uint32_t aIndex, uint8_t *aBuffer, uint64_t aLength)=0
Attaches a part to an external memory buffer.
One section (part) of a multi-part container.
Definition: PvMultiPartSection.h:158
Result information.
Definition: PvResult.h:30

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