Pleora Technologies Inc. eBUS SDK v7.0.1.7536 API



Loading...
Searching...
No Matches
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
26class PV_BUFFER_API IPvMultiPartContainerReader
27{
28public:
29
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
108{
109public:
110
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
352class PV_BUFFER_API IPvMultiPartContainer
354{
355public:
356
357 virtual ~IPvMultiPartContainer() {}
358
359};
360
361
362#endif
Multi-part section interface and enums definition.
PvMultiPartDataType
Enumeration reprensenting the data type of a section of a multi-part container.
Definition PvMultiPartSection.h:24
PvPixelType
Definition PvPixelType.h:51
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:95
Result information.
Definition PvResult.h:30

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