|
WPILibC++
2020.3.2
|
A source for video that provides a sequence of frames. More...
#include <cscore_oo.h>
Public Types | |
| enum | Kind { kUnknown = CS_SOURCE_UNKNOWN, kUsb = CS_SOURCE_USB, kHttp = CS_SOURCE_HTTP, kCv = CS_SOURCE_CV } |
| enum | ConnectionStrategy { kConnectionAutoManage = CS_CONNECTION_AUTO_MANAGE, kConnectionKeepOpen = CS_CONNECTION_KEEP_OPEN, kConnectionForceClose = CS_CONNECTION_FORCE_CLOSE } |
| Connection strategy. More... | |
Public Member Functions | |
| VideoSource (const VideoSource &source) | |
| VideoSource (VideoSource &&other) noexcept | |
| VideoSource & | operator= (VideoSource other) noexcept |
| operator bool () const | |
| int | GetHandle () const |
| bool | operator== (const VideoSource &other) const |
| bool | operator!= (const VideoSource &other) const |
| Kind | GetKind () const |
| Get the kind of the source. | |
| std::string | GetName () const |
| Get the name of the source. More... | |
| std::string | GetDescription () const |
| Get the source description. More... | |
| uint64_t | GetLastFrameTime () const |
| Get the last time a frame was captured. More... | |
| void | SetConnectionStrategy (ConnectionStrategy strategy) |
| Sets the connection strategy. More... | |
| bool | IsConnected () const |
| Is the source currently connected to whatever is providing the images? | |
| bool | IsEnabled () const |
| Gets source enable status. More... | |
| VideoProperty | GetProperty (const wpi::Twine &name) |
| Get a property. More... | |
| std::vector< VideoProperty > | EnumerateProperties () const |
| Enumerate all properties of this source. | |
| VideoMode | GetVideoMode () const |
| Get the current video mode. | |
| bool | SetVideoMode (const VideoMode &mode) |
| Set the video mode. More... | |
| bool | SetVideoMode (VideoMode::PixelFormat pixelFormat, int width, int height, int fps) |
| Set the video mode. More... | |
| bool | SetPixelFormat (VideoMode::PixelFormat pixelFormat) |
| Set the pixel format. More... | |
| bool | SetResolution (int width, int height) |
| Set the resolution. More... | |
| bool | SetFPS (int fps) |
| Set the frames per second (FPS). More... | |
| bool | SetConfigJson (wpi::StringRef config) |
| Set video mode and properties from a JSON configuration string. More... | |
| bool | SetConfigJson (const wpi::json &config) |
| Set video mode and properties from a JSON configuration object. More... | |
| std::string | GetConfigJson () const |
| Get a JSON configuration string. More... | |
| wpi::json | GetConfigJsonObject () const |
| Get a JSON configuration object. More... | |
| double | GetActualFPS () const |
| Get the actual FPS. More... | |
| double | GetActualDataRate () const |
| Get the data rate (in bytes per second). More... | |
| std::vector< VideoMode > | EnumerateVideoModes () const |
| Enumerate all known video modes for this source. | |
| CS_Status | GetLastStatus () const |
| std::vector< VideoSink > | EnumerateSinks () |
| Enumerate all sinks connected to this source. More... | |
Static Public Member Functions | |
| static std::vector< VideoSource > | EnumerateSources () |
| Enumerate all existing sources. More... | |
Protected Member Functions | |
| VideoSource (CS_Source handle) | |
Protected Attributes | |
| CS_Status | m_status = 0 |
| CS_Source | m_handle |
Friends | |
| class | VideoEvent |
| class | VideoSink |
| void | swap (VideoSource &first, VideoSource &second) noexcept |
A source for video that provides a sequence of frames.
Connection strategy.
Used for SetConnectionStrategy().
| std::vector<VideoSink> cs::VideoSource::EnumerateSinks | ( | ) |
Enumerate all sinks connected to this source.
|
static |
Enumerate all existing sources.
|
inline |
Get the data rate (in bytes per second).
SetTelemetryPeriod() must be called for this to be valid.
|
inline |
Get the actual FPS.
SetTelemetryPeriod() must be called for this to be valid.
|
inline |
Get a JSON configuration string.
| wpi::json cs::VideoSource::GetConfigJsonObject | ( | ) | const |
Get a JSON configuration object.
|
inline |
Get the source description.
This is source-kind specific.
|
inline |
Get the last time a frame was captured.
This uses the same time base as wpi::Now().
|
inline |
Get the name of the source.
The name is an arbitrary identifier provided when the source is created, and should be unique.
|
inline |
Get a property.
| name | Property name |
|
inline |
Gets source enable status.
This is determined with a combination of connection strategy and the number of sinks connected.
|
inline |
Set video mode and properties from a JSON configuration object.
| config | configuration |
|
inline |
Set video mode and properties from a JSON configuration string.
The format of the JSON input is:
{
"pixel format": "MJPEG", "YUYV", etc
"width": video mode width
"height": video mode height
"fps": video mode fps
"brightness": percentage brightness
"white balance": "auto", "hold", or value
"exposure": "auto", "hold", or value
"properties": [
{
"name": property name
"value": property value
}
]
}
| config | configuration |
|
inline |
Sets the connection strategy.
By default, the source will automatically connect or disconnect based on whether any sinks are connected.
This function is non-blocking; look for either a connection open or close event or call IsConnected() to determine the connection state.
| strategy | connection strategy (auto, keep open, or force close) |
|
inline |
Set the frames per second (FPS).
| fps | desired FPS |
|
inline |
Set the pixel format.
| pixelFormat | desired pixel format |
|
inline |
Set the resolution.
| width | desired width |
| height | desired height |
|
inline |
Set the video mode.
| mode | Video mode |
|
inline |
Set the video mode.
| pixelFormat | desired pixel format |
| width | desired width |
| height | desired height |
| fps | desired FPS |