Simple Streaming Application Example Code.
This example shows you how to create a simple streaming application to write files to disk.
#include "stdint.h"
#include "stdlib.h"
#include "stdio.h"
#if defined(_WIN32) || defined(_WINDOWS)
#include "windows.h"
#else
#include "unistd.h"
#endif
#include "wchar.h"
#define FLI_TEST_MAX_SUPPORTED_CAMERAS (4)
static int32_t SetFrameInfo(int32_t iDeviceHandle);
static int32_t s_iDeviceHandle;
uint32_t uiNumDetectedDevices;
static FPRODEVICEINFO s_camDeviceInfo[FLI_TEST_MAX_SUPPORTED_CAMERAS];
#define STREAMER_PATH_MAX (1024)
static wchar_t s_wcStreamerPath[STREAMER_PATH_MAX];
static wchar_t s_wcStreamerPrefix[STREAMER_PATH_MAX];
int main()
{
int32_t iResult;
uint32_t uiFramSizeInBytes;
uint32_t uiNumFrames;
uint32_t uiCapNum;
uiNumDetectedDevices = FLI_TEST_MAX_SUPPORTED_CAMERAS;
if ((iResult >= 0) && (uiNumDetectedDevices > 0))
{
s_iDeviceHandle = -1;
iResult =
FPROCam_Open(&s_camDeviceInfo[0], &s_iDeviceHandle);
if ((iResult >= 0) && (s_iDeviceHandle >= 0))
{
if (iResult >= 0)
iResult = SetFrameInfo(s_iDeviceHandle);
if (iResult >= 0)
{
if (iResult >= 0)
{
uiNumFrames= 10;
#if defined(_WIN32) || defined(_WINDOWS)
wcscpy_s(s_wcStreamerPath, STREAMER_PATH_MAX, L"./StreamerFiles");
wcscpy_s(s_wcStreamerPrefix, STREAMER_PATH_MAX, L"myFiles");
#else
wcscpy(s_wcStreamerPath, L"./StreamerFiles");
wcscpy(s_wcStreamerPrefix, L"myFiles");
#endif
if (iResult >= 0)
{
if (iResult >= 0)
{
while ((iResult >= 0) &&
{
#if defined(_WIN32) || defined(_WINDOWS)
Sleep(1000);
#else
sleep(1);
#endif
fflush(stdout);
}
printf("\n");
{
printf("Stream Error\n");
}
}
}
}
}
}
}
return 0;
}
int32_t
SetFrameInfo(int32_t iDeviceHandle)
{
int32_t iResult;
iResult = 0;
if (iResult >= 0)
if (iResult >= 0)
return(iResult);
}
Finger Lakes Instrumentation Camera API.
LIBFLIPRO_API FPROFrame_StreamDeinitialize(int32_t iHandle)
Deinitializes the Streamer interfaces.
LIBFLIPRO_API FPROSensor_GetCapabilityList(int32_t iHandle, uint32_t *pCapList, uint32_t *pNumCaps)
Retrieves the capabilities list for the connected camera.
LIBFLIPRO_API FPROCam_Open(FPRODEVICEINFO *pDevInfo, int32_t *pHandle)
Connects to the camera specified by the pDevInfo parameter.
LIBFLIPRO_API FPROCam_Close(int32_t iHandle)
Disconnects from the camera an releases the handle.
LIBFLIPRO_API FPROFrame_StreamInitialize(int32_t iHandle, uint32_t uiFrameSizeBytes, wchar_t *pRootPath, wchar_t *pFilePrefix)
Initializes the Streamer interfaces.
LIBFLIPRO_API FPROFrame_StreamStart(int32_t iHandle, uint32_t uiFrameCount, uint64_t uiFrameIntervalMS)
Start the streaming operation.
@ FPROCAP_NUM
Number of supported capabilities.
Definition: libflipro.h:877
LIBFLIPRO_API FPROFrame_StreamStop(int32_t iHandle)
Stop the streaming operation.
LIBFLIPRO_API FPROFrame_ComputeFrameSize(int32_t iHandle)
Computes the size in bytes of the image frame.
LIBFLIPRO_API FPROCtrl_SetExposure(int32_t iHandle, uint64_t uiExposureTime, uint64_t uiFrameDelay, bool bImmediate)
Sets the exposure time of the image sensor.
LIBFLIPRO_API FPROFrame_SetImageArea(int32_t iHandle, uint32_t uiColOffset, uint32_t uiRowOffset, uint32_t uiWidth, uint32_t uiHeight)
Sets the area of the image sensor to be used to produce image frame data.
@ FPRO_STREAMER_STOPPED
Streaming Stopped. This is the default state. It also enters this state when the requested number of ...
Definition: libflipro.h:1142
@ FPRO_STREAMER_STOPPED_ERROR
If streaming has stopped due to an error, the status will be less than 0. Consult the log file for er...
Definition: libflipro.h:1141
LIBFLIPRO_API FPROCam_GetCameraList(FPRODEVICEINFO *pDeviceInfo, uint32_t *pNumDevices)
FPROCam_GetCameraList.
LIBFLIPRO_API FPROFrame_StreamGetStatistics(int32_t iHandle, FPROSTREAMSTATS *pStats)
Stop the streaming operation.
Definition: libflipro.h:365
Definition: libflipro.h:1184
FPROSTREAMERSTATUS iStatus
The status of the streamer. See FPROSTREAMERSTATUS.
Definition: libflipro.h:1192
uint64_t uiDiskFramesWritten
The total number of frames written to disk.
Definition: libflipro.h:1187