areaDetector  3-5-0
EPICS areaDetector framework
Macros | Functions
ffmpegServer.cpp File Reference
#include "ffmpegServer.h"
#include "epicsExport.h"
#include "iocsh.h"
#include <epicsExit.h>
#include <epicsThread.h>
#include <time.h>
#include <math.h>

Macros

#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 

Functions

void dorequest (int sid)
 This is called whenever a client requests a stream. More...
 
int config_read ()
 this dummy function is here to satisfy nullhttpd More...
 
void c_shutdown (void *)
 c function that will be called at epicsExit that shuts down the http server cleanly More...
 
void ffmpegServerConfigure (int port)
 Configure and start the http server. More...
 
int ffmpegStreamConfigure (const char *portName, int queueSize, int blockingCallbacks, const char *NDArrayPort, int NDArrayAddr, int maxBuffers, int maxMemory, int priority, int stackSize)
 Configuration routine. More...
 
void ffmpegServerRegister (void)
 Register ffmpegStreamConfigure and ffmpegServerConfigure for use on iocsh. More...
 
 epicsExportRegistrar (ffmpegServerRegister)
 

Detailed Description

License

Author: Diamond Light Source, Copyright 2010

'ffmpegServer' is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

'ffmpegServer' is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with 'ffmpegServer'. If not, see http://www.gnu.org/licenses/.

Macro Definition Documentation

◆ MIN

#define MIN (   a,
 
)    (((a) < (b)) ? (a) : (b))

Function Documentation

◆ c_shutdown()

void c_shutdown ( void *  )

c function that will be called at epicsExit that shuts down the http server cleanly

◆ config_read()

int config_read ( void  )

this dummy function is here to satisfy nullhttpd

◆ dorequest()

void dorequest ( int  sid)

This is called whenever a client requests a stream.

◆ epicsExportRegistrar()

epicsExportRegistrar ( ffmpegServerRegister  )

◆ ffmpegServerConfigure()

void ffmpegServerConfigure ( int  port)

Configure and start the http server.

Call this before creating any instances of ffmpegStream

Parameters
portport number to run the server on. Defaults to 8080

◆ ffmpegServerRegister()

void ffmpegServerRegister ( void  )

Register ffmpegStreamConfigure and ffmpegServerConfigure for use on iocsh.

◆ ffmpegStreamConfigure()

int ffmpegStreamConfigure ( const char *  portName,
int  queueSize,
int  blockingCallbacks,
const char *  NDArrayPort,
int  NDArrayAddr,
int  maxBuffers,
int  maxMemory,
int  priority,
int  stackSize 
)

Configuration routine.

Called directly, or from the iocsh function, calls ffmpegStream constructor:

Constructor for ffmpegStream; Class representing an mjpg stream served up by ffmpegServer. ffmpegServerConfigure() must be called before creating any instances of this class. ffmpegStreamConfigure() should be used to create an instance in the iocsh. See ffmpegStream.template for more details of usage.

\param portName The name of the asyn port driver to be created.
\param queueSize The number of NDArrays that the input queue for this plugin can hold when 
       NDPluginDriverBlockingCallbacks=0.  Larger queues can decrease the number of dropped arrays,
       at the expense of more NDArray buffers being allocated from the underlying driver's NDArrayPool.
\param blockingCallbacks Initial setting for the NDPluginDriverBlockingCallbacks flag.
       0=callbacks are queued and executed by the callback thread; 1 callbacks execute in the thread
       of the driver doing the callbacks.
\param NDArrayPort Name of asyn port driver for initial source of NDArray callbacks.
\param NDArrayAddr asyn port driver address for initial source of NDArray callbacks.
\param maxBuffers The maximum number of NDArray buffers that the NDArrayPool for this driver is 
       allowed to allocate. Set this to -1 to allow an unlimited number of buffers.
\param maxMemory The maximum amount of memory that the NDArrayPool for this driver is 
       allowed to allocate. Set this to -1 to allow an unlimited amount of memory.
\param priority The thread priority for the asyn port driver thread if ASYN_CANBLOCK is set in asynFlags.
\param stackSize The stack size for the asyn port driver thread if ASYN_CANBLOCK is set in asynFlags.