Pleora Technologies Inc. eBUS SDK v6.2.8.5877 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 
12 
13 class PV_BUFFER_API IPvMultiPartContainerReader
14 {
15 public:
16 
17  virtual ~IPvMultiPartContainerReader() {}
18 
19  virtual uint32_t GetPartCount() = 0;
20 
21  virtual const IPvMultiPartSection *GetPart( uint32_t aIndex ) const = 0;
22  virtual IPvMultiPartSection *GetPart( uint32_t aIndex ) = 0;
23 
24  virtual const IPvMultiPartSection *operator[]( uint32_t aIndex ) const = 0;
25  virtual IPvMultiPartSection *operator[]( uint32_t aIndex ) = 0;
26 
27 };
28 
29 class PV_BUFFER_API IPvMultiPartContainerWriter
31 {
32 public:
33 
34  virtual ~IPvMultiPartContainerWriter() {}
35 
36  virtual void Reset() = 0;
37  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;
38  virtual PvResult AddJPEGPart( PvMultiPartDataType aDataType, uint32_t aMaxLength, uint8_t aFlag, uint64_t aTimestampTickFrequency, uint32_t aDataFormat ) = 0;
39  virtual PvResult AddChunkPart( uint32_t aMaxLength, uint32_t aChunkLayoutID ) = 0;
40 
41  virtual PvResult SetPartIDs( uint32_t aIndex, uint32_t aSourceID, uint32_t aDataPurposeID, uint32_t aRegionID ) = 0;
42  virtual PvResult SetPartZoneInfo( uint32_t aIndex, uint8_t aAdditionalZones, uint32_t aZoneDirectionMask ) = 0;
43 
44  virtual PvResult AllocAllParts() = 0;
45  virtual PvResult AllocPart( uint32_t aIndex ) = 0;
46  virtual PvResult AttachPart( uint32_t aIndex, uint8_t *aBuffer, uint64_t aLength ) = 0;
47 
48  virtual PvResult SetPartFinalLength( uint32_t aIndex, uint32_t aLength ) = 0;
49  virtual PvResult SetPartFinalImageHeight( uint32_t aIndex, uint32_t aHeight ) = 0;
50 
51  virtual PvResult Validate() = 0;
52 
53 };
54 
55 class PV_BUFFER_API IPvMultiPartContainer
57 {
58 public:
59 
60  virtual ~IPvMultiPartContainer() {}
61 
62 };
63 
64 
65 #endif
Result information.
Definition: PvResult.h:13
PvPixelType
Definition: PvPixelType.h:53
Interface used to read from a multi-part container.
Definition: PvMultiPartContainer.h:13
One section (part) of a multi-part container.
Definition: PvMultiPartSection.h:35
Interface to a multi-part container.
Definition: PvMultiPartContainer.h:55
PvMultiPartDataType
Enumeration reprensenting the data type of a section of a multi-part container.
Definition: PvMultiPartSection.h:16
Interface used to write to a multi-part container.
Definition: PvMultiPartContainer.h:29
Multi-part section interface and enums definition.

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