Pleora Technologies Inc. eBUS SDK v6.2.8.5877 API



IPvStreamingChannelSource Class Referenceabstract

Interface that is used by PvSoftDeviceGEV to query and report information from a streaming source implemented by your application. More...

Public Member Functions

virtual ~IPvStreamingChannelSource ()
 Virtual destructor.
 
virtual uint32_t GetWidth () const =0
 Returns the current image width. More...
 
virtual uint32_t GetHeight () const =0
 Returns the current image height. More...
 
virtual uint32_t GetOffsetX () const =0
 Returns the current image offset X. More...
 
virtual uint32_t GetOffsetY () const =0
 Returns the current image offset Y. More...
 
virtual PvPixelType GetPixelType () const =0
 Returns the current pixel type. More...
 
virtual void GetWidthInfo (uint32_t &aMin, uint32_t &aMax, uint32_t &aInc) const =0
 Returns the stream channel width attributes. More...
 
virtual void GetHeightInfo (uint32_t &aMin, uint32_t &aMax, uint32_t &aInc) const =0
 Returns the stream channel height attributes. More...
 
virtual uint32_t GetChunksSize () const =0
 Gets the stream channel chunk size attributes. More...
 
virtual uint32_t GetPayloadSize () const =0
 Stream channel payload size in bytes. Return zero to have it inferred from width, height and pixel format. More...
 
virtual PvScanType GetScanType () const =0
 Returns the scan type that is used by the streaming source. More...
 
virtual bool GetChunkModeActive () const =0
 Indicates whether the current master chunk mode is active. More...
 
virtual bool GetChunkEnable (uint32_t aChunkID) const =0
 Returns the current chunk enabled state. More...
 
virtual PvResult GetSupportedPixelType (int aIndex, PvPixelType &aPixelType) const =0
 Obtains an index of supported pixel types. Used at PvSoftDeviceGEV::Start time to create the GenICam XML of the device. More...
 
virtual PvResult GetSupportedChunk (int aIndex, uint32_t &aID, PvString &aName) const =0
 Returns the indexed supported chunk type. Used at PvSoftDeviceGEV::Start time to create the GenICam XML of the device. More...
 
virtual PvResult SetWidth (uint32_t aWidth)=0
 Request from the PvSoftDeviceGEV to change the image width. More...
 
virtual PvResult SetHeight (uint32_t aHeight)=0
 Request from the PvSoftDeviceGEV to change the image height. More...
 
virtual PvResult SetOffsetX (uint32_t aOffsetX)=0
 Request from the PvSoftDeviceGEV to change the image offset X. More...
 
virtual PvResult SetOffsetY (uint32_t aOffsetY)=0
 Request from the PvSoftDeviceGEV to change the image offset Y. More...
 
virtual PvResult SetPixelType (PvPixelType aPixelType)=0
 Request from the PvSoftDeviceGEV to change the image pixel type. More...
 
virtual PvResult SetChunkModeActive (bool aEnabled)=0
 Set the master chunk mode active state. More...
 
virtual PvResult SetChunkEnable (uint32_t aChunkID, bool aEnabled)=0
 Sets the chunk enabled state for a specific chunk type. More...
 
virtual void OnOpen (const PvString &aDestIP, uint16_t aDestPort)=0
 Notification from the PvSoftDeviceGEV that this streaming channel has been opened. More...
 
virtual void OnClose ()=0
 Notification from the PvSoftDeviceGEV that this streaming channel has been closed.
 
virtual void OnStreamingStart ()=0
 Notification that the GigE Vision controller has requested that the device start streaming on this channel.
 
virtual void OnStreamingStop ()=0
 Notification that the GigE Vision controller has requested that the device stop streaming on this channel.
 
virtual PvBufferAllocBuffer ()=0
 Request by the PvSoftDeviceGEV to allocate a PvBuffer. More...
 
virtual void FreeBuffer (PvBuffer *aBuffer)=0
 Request by the PvSoftDeviceGEV to free or release a buffer allocated with AllocBuffer. More...
 
virtual PvResult QueueBuffer (PvBuffer *aBuffer)=0
 Request by the PvSoftDeviceGEV to queue a buffer for acquisition. More...
 
virtual PvResult RetrieveBuffer (PvBuffer **aBuffer)=0
 Request by the PvSoftDeviceGEV to retrieve a buffer from the streaming source. More...
 
virtual void AbortQueuedBuffers ()=0
 Request by the PvSoftDeviceGEV to abort all buffers queued for acquisition. More...
 
virtual void CreateRegisters (IPvRegisterMap *aRegisterMap, IPvRegisterFactory *aFactory)
 When called, the streaming channel source should create its custom registers if they are needed. More...
 
virtual void CreateGenApiFeatures (IPvRegisterMap *aRegisterMap, IPvGenApiFactory *aFactory)
 When called, the streaming channel source should create its custom GenApi parameters if they are needed. More...
 
virtual bool IsPayloadTypeSupported (PvPayloadType aPayloadType)
 When called, the streaming source has to return whether the specificed payload type is supported or not. More...
 
virtual void SetMultiPartAllowed (bool aAllowed)
 Sets whether the streaming source is allowed or not, but not forced, to transmit multi-part data. More...
 
virtual PvResult SetTestPayloadFormatMode (PvPayloadType aPayloadType)
 When called, the streaming source has to ensure it can stream buffers of the specified payload type. More...
 

Detailed Description

Interface that is used by PvSoftDeviceGEV to query and report information from a streaming source implemented by your application.

For the application to provide a streaming source to your software-based GigE Vision Device, inherit one of your classes from IPvStreamingChannelSource, implement all of the methods, instantiate an object from your class, and pass a pointer to your class to PvSoftDeviceGEV::AddStream.

The GigE Vision Device will use this interface to query the application about stream capabilities and to report streaming events, such as acquisition start and stop. The GigE Vision Device also uses this interface to manage streaming data.

To properly report the PayloadSize GenApi parameter, your application must provide the GigE Vision Device with the width, height, pixel format, and data chunk size values using the GetWidth, GetHeight, GetPixelFormat, and GetChunksSize methods.

You can hardcode the supported chunk size by returning the required chunk size using GetChunksSize. You could also provide more information about the supported chunk types using GetSupportedChunk. Doing so will allow the GigE Vision Device to properly populate the ChunkSelector of its GenApi interface to let the user decide which chunks it should support. The streaming source should decide whether or not to append a specific chunk type by looking at whether the master chunk active mode is enabled AND that the specific chunk type is enabled.

It is possible to create streaming channel source custom registers and GenApi parameters. See IPvStreamingChannelSource::CreateGenApiFeatures and IPvStreamingChannelSource::CreateRegisters for more information. You should create streaming channel source GenApi feature and registers for source-specific features like deinterlacing, gain, exposure time. Look at IPvSoftDeviceGEVEventSink::OnCreateCustomRegisters and IPvSoftDeviceGEVEventSink::OnCreateCustomGenApiFeatures to create device-scope features. Note that chunks and messaging channel GenApi parameters should always be created from IPvSoftDeviceGEVEventSink and be at the device-scope.

Here is what a typical streaming session would look like when it comes to buffer management:

  • A PvSoftDeviceGEV object is instantiated by your application
  • A MySource object that implements the IPvStreamingChannelSource interface is instantiated by your application
  • PvSoftDeviceGEV::AddStream is called by your application with a pointer to MySource
  • PvSoftDeviceGEV::Start is called by your application
    • AllocBuffer is called to allow your application to allocate streaming buffers until NULL is returned or the maximum number of buffers is reached
    • GetWidthInfo, GetHeightInfo, and GetSupportedPixelType are called on MySource to inquire about the image attributes supported by MySource
    • OnOpen is called on MySource when the streaming channel is opened (when a GigE Vision controller connects to your GigE Vision Device)
      • OnStreamingStart is called on MySource to notify the application that streaming is starting (when the GigE Vision controller calls AcquisitionStart)
        • Internal acquisition loop run from a GigE Vision Device thread:
          • Calls QueueBuffer on MySource until it fails to provide MySource with buffers to fill with image data
          • Calls RetrieveBuffer on MySource until it fails to retrieve all MySource filled buffers that are ready for transmission
          • End of acquisition loop
      • OnStreamingStop is called on MySource to notify the application that streaming is stopping (when the GigE Vision controller calls AcquisitionStop)
        • AbortQueuedBuffers is called on MySource
        • RetrieveBuffer is called on MySource until it fails to retrieve all MySource buffers, whether they were acquired or aborted
    • OnClose is called on MySource when the streaming channel is closed (when the GigE Vision controller disconnects from the GigE Vision Device)
  • PvSoftDeviceGEV::Stop is called explicitly by your application or by the PvSoftDeviceGEV destructor

Member Function Documentation

void IPvStreamingChannelSource::AbortQueuedBuffers ( )
pure virtual

Request by the PvSoftDeviceGEV to abort all buffers queued for acquisition.

This method should block until acquisition has been aborted or canceled for all buffers provided by QueueBuffer that have not yet been retrieved with RetrievedBuffer.

When this method returns, it should be possible to call RetrieveBuffer for all aborted buffers.

Implemented in PvStreamingChannelSourceDefault.

PvBuffer * IPvStreamingChannelSource::AllocBuffer ( )
pure virtual

Request by the PvSoftDeviceGEV to allocate a PvBuffer.

On initialization, the PvSoftDeviceGEV will call this method, asking the application to allocate buffers that will be used for image acquisition and transmission. The application should return buffers until it has reached the desired number of buffers it wants to use for streaming and then return NULL.

The more buffers you use, the more buffers you can have queued in the application for image acquisition and the more buffers you can leave in the transmission output queue for packet resend. The downside of using more buffers is increased memory usage.

Buffers returned on AllocBuffer calls should be unique: you should not return the same buffer more than once.

A maximum of 64 buffers can be used by one streaming channel of the PvSoftDeviceGEV. If your application does not return NULL on the 64th buffer, AllocBuffer will not be called a 64th time.

Returns
Pointer to a new PvBuffer that can be used by the PvSoftDeviceGEV's acquisition manager.

Implemented in PvStreamingChannelSourceDefault.

void IPvStreamingChannelSource::CreateGenApiFeatures ( IPvRegisterMap aRegisterMap,
IPvGenApiFactory aFactory 
)
inlinevirtual

When called, the streaming channel source should create its custom GenApi parameters if they are needed.

Create GenApi features from this callback if the feature is associated with a streaming channel source. For global-device, non streaming channel source features use IPvSoftDeviceGEVEventSink::OnCreateCustomGenApiFeatures instead.

In a multi-source application, GenApi features created by a streaming channel source will only be available when the SourceSelector is set to the streaming channel source that created the feature.

If FeatureXYX is created by Source0 and Source1 but not by Source2, the feature will only be available in the GenApi interface when SourceSelector is set to Source0 or Source1.

  • MySource0 has Feature0, Feature1, Feature2
  • MySource1 has Feature0, Feature3, Feature4
  • In a GenApi browser with SourceSelector=Source0, Feature0, Feature1, Feature2 are available. Feature3 and Feature4 are disabled.
  • In a GenApi browser with SourceSelector=Source1, Feature0, Feature3, Feature4 are available. Feature1 and Feature2 are disabled.

If integers with the same name are created for more than one source but with source-specific minimum, maximum and increment attributes, these attributes will be handled by GenICam SwissKnife operators in the GenICam XML so they are dynamically adjusted based on the value of SourceSelector. The same applies to float maximum and minimum.

  • MyInteger is created for Source0 with min:0 max:100 increment:4
  • MyInteger is created for Source1 with min:4 max:200 increment:1
  • In a GenApi browser, MyInteger will report min:0 max:100 increment:4 with Source0 is selected
  • In a GenApi browser, MyInteger will report min:4 max:200 increment:1 with Source1 is selected

If enumerations with the same name are created for more than one source but with different enum entries, they will be added to the GenICam XML file of the device in way that the correct enum entries should be available for the enum features based on the current SourceSelector value:

  • MyEnum is created with EE0, EE1, EE2 for Source0
  • MyEnum is created with EE0, EE3, EE4 for Source1
  • In a GenApi browser with SourceSelector=Source0, you would see EE0, EE1, EE2 in the combo box
  • In a GenApi browser with SourceSelector=Source1, you would see EE0, EE3, EE4 in the combo box

Creating features of the same name but different types is not supported. Attempting to do so should have the PvSoftDeviceGEV::Start call failing with an appropriate error description.

GenApi features created for a streaming channel source should use registers unique to this streaming channel source. If you have a source class MySource that creates registers and features, it should still create unique register having their own unique addresses. They should however use the same parameter name. The GenApi parameters created by MySource should use the right register for the source instance. The complexity of overlapping per-source feature name is handled by PvSoftDeviceGEV when creating the GenICam XML file from PvSoftDeviceGEV::Start.

  • For Source0:
    • MySource creates MySourceRegister0 @ 0x20000000 + 0x1000 * source index + 0
    • MySource creates MySourceParameter named "MySourceParameter" for Source0 using MySourceRegister0
  • For Source1:
    • MySource creates MySourceRegister1 @ 0x20000000 + 0x1000 * source index + 4
    • MySource creates MySourceParameter named "MySourceParameter" for Source1 using MySourceRegister1

The exception to this rule is selectors: if selectors are created at the streaming source level they must all use the same register, sharing the same register address.

Custom source-specific GenApi features creation occurs AFTER custom source-specific registers creation, inside the PvSoftDeviceGEV::Start call.

Parameters
[in]aRegisterMapThe register map of the device.
[in]aFactoryGenApi factory used to create the new GenApi features.

Reimplemented in PvStreamingChannelSourceDefault.

void IPvStreamingChannelSource::CreateRegisters ( IPvRegisterMap aRegisterMap,
IPvRegisterFactory aFactory 
)
inlinevirtual

When called, the streaming channel source should create its custom registers if they are needed.

To create source-specific custom registers in your application, implement the CreateRegisters method of the IPvStreamingChannelSource interface.

Custom source-specific register creation occurs BEFORE custom source-specific GenApi features creation, inside the PvSoftDeviceGEV::Start call.

If more than one streaming channel source is created from the same class, you must make sure its registers are still unique: RegisterXYZ in Source0 and Source1 should not have the same address. It is also recommended to assign them unique names like RegisterXYZ0 and RegisterXYZ1.

Parameters
[in]aRegisterMapThe register map of the device.
[in]aFactoryRegister factory used to create the new registers.

Reimplemented in PvStreamingChannelSourceDefault.

void IPvStreamingChannelSource::FreeBuffer ( PvBuffer aBuffer)
pure virtual

Request by the PvSoftDeviceGEV to free or release a buffer allocated with AllocBuffer.

You should not delete or free any PvBuffer provided by the AllocBuffer method. FreeBuffer will be called for each buffer created with AllocBuffer when PvSoftDeviceGEV::Stop is called.

Parameters
[in]aBufferBuffer to free.

Implemented in PvStreamingChannelSourceDefault.

bool IPvStreamingChannelSource::GetChunkEnable ( uint32_t  aChunkID) const
pure virtual

Returns the current chunk enabled state.

The application must implement this method and return the current chunk enabled state for the specified chunk ID. The streaming source should maintain an enabled/disabled state for each chunk type that it supports.

The application should append the chunk represented by the specified chunk ID if it is enabled and if the master chunk mode (see GetChunkModeActive) is true.

Parameters
[in]aChunkIDChunk ID.
Returns
True if the chunk specified by aChunk ID is enabled for this streaming source.

Implemented in PvStreamingChannelSourceDefault.

bool IPvStreamingChannelSource::GetChunkModeActive ( ) const
pure virtual

Indicates whether the current master chunk mode is active.

The application must implement this method and return the current master chunk mode state. Return false as a hardcoded value if chunks are not supported by the streaming source.

Returns
True if chunk mode is enabled for this streaming source.

Implemented in PvStreamingChannelSourceDefault.

uint32_t IPvStreamingChannelSource::GetChunksSize ( ) const
pure virtual

Gets the stream channel chunk size attributes.

When using data chunks, it is important to report the chunk data size when queried through this method.

The chunk data size needs to be taken into account when reporting the PayloadSize GenICam parameter to the GigE Vision controller, so it can properly allocate its buffer for streaming without forced buffer re-allocation.

The size reported must for each chunk adds 4 bytes for the chunk ID and another 4 bytes for the chunk length fields. If you have a chunk that is 64 bytes long and it is your only data chunk, you need to report 64 + 4 + 4 (72 bytes) when GetChunksSize is called.

Returns
Chunk data size as currently configured.

Implemented in PvStreamingChannelSourceDefault.

uint32_t IPvStreamingChannelSource::GetHeight ( ) const
pure virtual

Returns the current image height.

Your application must implement this method and return the current image height when invoked.

Returns
Current image height.

Implemented in PvStreamingChannelSourceDefault.

void IPvStreamingChannelSource::GetHeightInfo ( uint32_t &  aMin,
uint32_t &  aMax,
uint32_t &  aInc 
) const
pure virtual

Returns the stream channel height attributes.

When using the GigE Vision Device as a transmitter, the Height parameter is automatically added to the device's GenICam XML file. This method is used to query the minimum, maximum, and increment attributes for the Height parameter.

Parameters
[out]aMinHeight minimum.
[out]aMaxHeight maximum.
[out]aIncHeight increment.

Implemented in PvStreamingChannelSourceDefault.

uint32_t IPvStreamingChannelSource::GetOffsetX ( ) const
pure virtual

Returns the current image offset X.

Your application must implement this method and return the current image offset X when invoked.

Returns
Current image offset X.

Implemented in PvStreamingChannelSourceDefault.

uint32_t IPvStreamingChannelSource::GetOffsetY ( ) const
pure virtual

Returns the current image offset Y.

Your application must implement this method and return the current image offset Y when invoked.

Returns
Current image offset Y.

Implemented in PvStreamingChannelSourceDefault.

uint32_t IPvStreamingChannelSource::GetPayloadSize ( ) const
pure virtual

Stream channel payload size in bytes. Return zero to have it inferred from width, height and pixel format.

If not using image streams (raw data, multi-part, etc.) use implement the GetPayloadSize method and return the payload size for the current streaming channel source configuration. If GetPayloadSize returns 0 the payload size will be inferred from the width, height, pixel format and data chunk size.

When using multi-part, return the sum of the maximum size of all parts plus data chunk.

When payload size is not zero, the payload size value is simply used as provided. Nothing is added to it, not even data chunk size.

Returns
Payload size to use or 0.

Implemented in PvStreamingChannelSourceDefault.

PvPixelType IPvStreamingChannelSource::GetPixelType ( ) const
pure virtual

Returns the current pixel type.

Your application must implement this method and return the current image pixel type when invoked.

Returns
Current pixel type.

Implemented in PvStreamingChannelSourceDefault.

PvScanType IPvStreamingChannelSource::GetScanType ( ) const
pure virtual

Returns the scan type that is used by the streaming source.

Return PvScanTypeArea if your image source is areascan or PvScanTypeLine if your image source is linescan.

Returns
Scan type of the streaming source.

Implemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::GetSupportedChunk ( int  aIndex,
uint32_t &  aID,
PvString aName 
) const
pure virtual

Returns the indexed supported chunk type. Used at PvSoftDeviceGEV::Start time to create the GenICam XML of the device.

This method is used by the PvSoftDeviceGEV to query the application about the supported chunk types for this streaming channel.

The PvSoftDeviceGEV will query the application through this stream interface for all supported chunk types. It will start at index 0 and then increase until something other than PvResult::Code::OK is returned.

The information retrieved through this method is used to populate the chunk selector, allowing the GigE Vision controller to enable or disable each chunk type individually.

If the application supports ChunkSample (ID 0x4001) and ChunkHistogram (ID 0x4002) it needs to handle request to GetSupportedChunk as follows:

Parameters
[in]aIndexIndex of the chunk type to return.
[out]aIDID of the chunk type requested by aIndex.
[out]aNameName of the chunk type requested by aIndex. Should always use the "Chunk" prefix for GenICam SFNC compliance.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::GetSupportedPixelType ( int  aIndex,
PvPixelType aPixelType 
) const
pure virtual

Obtains an index of supported pixel types. Used at PvSoftDeviceGEV::Start time to create the GenICam XML of the device.

This method is used by the PvSoftDeviceGEV to query the application about the supported pixel types for the streaming channel.

The PvSoftDeviceGEV will query the application using this stream interface for all supported pixel types. It will start at index 0 and then increase until something other than PvResult::Code::OK is returned.

If the application supports Mono8, BayerRG8, and RGBa8 it needs to handle the request to GetSupportedPixelType, as follows:

Parameters
[in]aIndexIndex of the pixel type to return.
[out]aPixelTypePvPixelType requested by aIndex.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.

uint32_t IPvStreamingChannelSource::GetWidth ( ) const
pure virtual

Returns the current image width.

Your application must implement this method and return the current image width when invoked.

Returns
Current image width.

Implemented in PvStreamingChannelSourceDefault.

void IPvStreamingChannelSource::GetWidthInfo ( uint32_t &  aMin,
uint32_t &  aMax,
uint32_t &  aInc 
) const
pure virtual

Returns the stream channel width attributes.

When using the GigE Vision Device as a transmitter, the Width parameter is automatically added to the device's GenICam XML file. This method is used to query the minimum, maximum, and increment attributes for the Width parameter.

Parameters
[out]aMinWidth minimum.
[out]aMaxWidth maximum.
[out]aIncWidth increment.

Implemented in PvStreamingChannelSourceDefault.

bool IPvStreamingChannelSource::IsPayloadTypeSupported ( PvPayloadType  aPayloadType)
inlinevirtual

When called, the streaming source has to return whether the specificed payload type is supported or not.

Return true if the streaming source exlusively or non-exclusively can stream buffers of the specified payload type. A default implementation is provided for this method which returns false.

This method must be implemented and returning true for aPayloadType being equal to PvPayloadTypeMultiPart when multi-part is supported by the streaming source.

See SetTestPayloadFormatMode and SetMultiPartAllowed for more information on propertly supporting the multi-part payload type.

Parameters
aPayloadType[in] The payload type for which support is queried.
Returns
Return true if the payload type is supported, false if not.

Reimplemented in PvStreamingChannelSourceDefault.

void IPvStreamingChannelSource::OnOpen ( const PvString aDestIP,
uint16_t  aDestPort 
)
pure virtual

Notification from the PvSoftDeviceGEV that this streaming channel has been opened.

Parameters
[in]aDestIPIP address of the stream destination as a string in the "192.168.138.115" format (SCDA).
[in]aDestPortUDP port of the stream destination (SCP).

Implemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::QueueBuffer ( PvBuffer aBuffer)
pure virtual

Request by the PvSoftDeviceGEV to queue a buffer for acquisition.

If the application can accept the buffer and queue it for image acquisition, it returns success. If the acquisition queue or pipeline is full, return a PvResult error code.

Parameters
[in]aBufferBuffer to queue for image acquisition.
Returns
Includes:
PvResult IPvStreamingChannelSource::RetrieveBuffer ( PvBuffer **  aBuffer)
pure virtual

Request by the PvSoftDeviceGEV to retrieve a buffer from the streaming source.

During acquisition, buffers retrieved with this method will contain valid image data and are going to be transmitted using the GVSP protocol. This method is also used to retrieve queued buffers after calling AbortQueuedBuffers.

If no image is immediately available, we recommend that you wait until an image is available in this method to allow the acquisition thread to wait efficiently for a new image. If getting a new image can take a long time, your application should wait small chunks of time (10, 20, or 50 ms) to prevent deadlocking the acquisition thread and to allow the PvSoftDeviceGEV to stop streaming gracefully.

Parameters
[in]aBufferA pointer to a pointer to a buffer: set to a pointer to the PvBuffer being retrieved.
Returns
Includes:
  • PvResult::Code::OK if a buffer has been retrieved.
  • Any error code if there are currently no buffers available.
PvResult IPvStreamingChannelSource::SetChunkEnable ( uint32_t  aChunkID,
bool  aEnabled 
)
pure virtual

Sets the chunk enabled state for a specific chunk type.

The streaming source should append a specific chunk type to its streaming data when both the GetChunkModeActive (master chunk mode) and GetChunkEnable for this specific chunk type are true.

Parameters
[in]aChunkIDChunk ID of the chunk type to enable or disable.
[in]aEnabledTrue to enable the chunk type, false to disable it.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::SetChunkModeActive ( bool  aEnabled)
pure virtual

Set the master chunk mode active state.

The streaming source should append a specific chunk type to its streaming data when both the GetChunkModeActive (master chunk mode) and GetChunkEnable for this specific chunk type are true.

Parameters
[in]aEnabledTrue to enable chunk mode for this streaming channel, false to disable it.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::SetHeight ( uint32_t  aHeight)
pure virtual

Request from the PvSoftDeviceGEV to change the image height.

The PvSoftDeviceGEV will call SetHeight when the Height GenApi parameter or the underlying register is changed by the GigE Vision controller.

To accept the new height, return PvResult::Code::OK and update your streaming code to use the new height.

Parameters
[in]aHeightNew image height.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.

void IPvStreamingChannelSource::SetMultiPartAllowed ( bool  aAllowed)
inlinevirtual

Sets whether the streaming source is allowed or not, but not forced, to transmit multi-part data.

Streaming sources supporting multi-part data transmission must support non-multi-part streaming by default. All devices starting in a mode where multi-part is not allowed. The GigE Vision controller must unlock the multi-part capability of a GVSP streaming channel using either the SCCx and SCCFGx bootstrap registers or the GevSCCFGMultiPartEnabled GenApi parameter.

The GevSCCFGMultiPartEnabled GenApi parameter is automatically added to the GenICam XML file of a PvSoftDeviceGEV device when IsPayloadTypeSupported returns true when prompted with PvPayloadTypeMultiPart.

See IsPayloadTypeSupported and SetTestPayloadFormatMode for more information on propertly supporting the multi-part payload type.

Parameters
aAllowed[in] True if multi-part is allowed.

Reimplemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::SetOffsetX ( uint32_t  aOffsetX)
pure virtual

Request from the PvSoftDeviceGEV to change the image offset X.

To accept the new offset X, return PvResult::Code::OK and update your streaming code to use the new value.

Parameters
[in]aOffsetXNew image offset X.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::SetOffsetY ( uint32_t  aOffsetY)
pure virtual

Request from the PvSoftDeviceGEV to change the image offset Y.

To accept the new offset Y, return PvResult::Code::OK and update your streaming code to use the new value.

Parameters
[in]aOffsetYNew image offset Y.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::SetPixelType ( PvPixelType  aPixelType)
pure virtual

Request from the PvSoftDeviceGEV to change the image pixel type.

The PvSoftDeviceGEV will call SetPixelType when the PixelType GenApi parameter or the underlying register is changed by the GigE Vision controller.

To accept the new pixel type, return PvResult::Code::OK and update your streaming code to use the new pixel type.

Parameters
[in]aPixelTypeNew image pixel type.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::SetTestPayloadFormatMode ( PvPayloadType  aPayloadType)
inlinevirtual

When called, the streaming source has to ensure it can stream buffers of the specified payload type.

The GigE Vision Validation Framework has to be able to set the device in a functional streaming mode for some payload types (currently only multi-part with more to come) in order to properly validate the device.

This method must be implemented and for aPayloadType being PvPayloadTypeMultiPart when multi-part is supported by the streaming source. The streaming source must be able to configure itself in a mode where it will be able to stream data for certification with the GigE Vision Validation Framework.

Of course, this method will only be called on a streaming source for payload type that have been reported as supported with IsPayloadTypeSupported.

How to prepare your multi-source device source for GigE Vision Validation Framework validation:

See the SoftDeviceGEVMultiPart C++ sample for an example of how to implement this method, SetMultiPartAllowed, and IsPayloadTypeSupported.

Parameters
[in]aPayloadTypePayload type to prepare test for. PvPayloadTypeNone sets the device back in normal operation mode.
Returns
Includes:

Reimplemented in PvStreamingChannelSourceDefault.

PvResult IPvStreamingChannelSource::SetWidth ( uint32_t  aWidth)
pure virtual

Request from the PvSoftDeviceGEV to change the image width.

The PvSoftDeviceGEV will call SetWidth when the Width GenApi parameter or the underlying register is changed by the GigE Vision controller.

To accept the new width, return PvResult::Code::OK and update your streaming code to use the new width.

Parameters
[in]aWidthNew image width.
Returns
Includes:

Implemented in PvStreamingChannelSourceDefault.


The documentation for this class was generated from the following files:

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