Skip to content

pylon/StreamGrabber.h#

Low Level API: Definition of IStreamGrabber interface. More…

Namespaces#

Name
Pylon
Contains definitions of pylon types.

Classes#

Name
interface Pylon::IStreamGrabber
Low Level API: Interface to an (input) data stream.

Detailed Description#

Low Level API: Definition of IStreamGrabber interface.

Attention: The Low Level API has been deprecated in pylon 6.0. It is recommended to use the Instant Camera classes instead.

Source code#

//-----------------------------------------------------------------------------
//  Basler pylon SDK
//  Copyright (c) 2006-2022 Basler AG
//  http://www.baslerweb.com
//  Author:  Hartmut Nebelung
//-----------------------------------------------------------------------------
#ifndef __ISTREAMGRABBER_H__
#define __ISTREAMGRABBER_H__

#if _MSC_VER > 1000
#pragma once
#endif //_MSC_VER > 1000

#include <pylon/Platform.h>

#ifdef _MSC_VER
#   pragma pack(push, PYLON_PACKING)
#endif /* _MSC_VER */

#include <GenICamFwd.h>
#include <pylon/stdinclude.h>

namespace Pylon
{
    class GrabResult;
    class WaitObject;
    typedef void* StreamBufferHandle;

    // -------------------------------------------------------------------------
    // interface IStreamGrabber
    // -------------------------------------------------------------------------
    interface IStreamGrabber
    {
        virtual void Open() = 0;


        virtual void Close() = 0;


        virtual bool IsOpen() const = 0;


        virtual StreamBufferHandle RegisterBuffer( void* pBuffer, size_t bufferSize ) = 0;


        virtual const void* DeregisterBuffer( StreamBufferHandle hStreamBuffer ) = 0;


        virtual void PrepareGrab() = 0;


        virtual bool IsStartAndStopStreamingMandatory() = 0;


        virtual void StartStreamingIfMandatory() = 0;


        virtual void StopStreamingIfMandatory() = 0;


        virtual void FinishGrab() = 0;


        virtual void QueueBuffer( StreamBufferHandle hStreamBuffer, const void* pContext = NULL ) = 0;


        virtual void FlushBuffersToOutput() = 0;
        virtual void CancelGrab() = 0;


        virtual bool RetrieveResult( GrabResult& grabResult ) = 0;


        virtual WaitObject& GetWaitObject() const = 0;


        virtual GenApi::INodeMap* GetNodeMap() = 0;
    };

}

#ifdef _MSC_VER
#   pragma pack(pop)
#endif /* _MSC_VER */

#endif //__ISTREAMGRABBER_H__

Updated on 5 July 2022 at 15:30:01