FFmpeg
Public Attributes | List of all members
AVDeviceCapabilitiesQuery Struct Reference

Following API allows user to probe device capabilities (supported codecs, pixel formats, sample formats, resolutions, channel counts, etc). More...

#include <avdevice.h>

Public Attributes

const AVClassav_class
 
AVFormatContextdevice_context
 
enum AVCodecID codec
 
enum AVSampleFormat sample_format
 
enum AVPixelFormat pixel_format
 
int sample_rate
 
int channels
 
int64_t channel_layout
 
int window_width
 
int window_height
 
int frame_width
 
int frame_height
 
AVRational fps
 

Detailed Description

Following API allows user to probe device capabilities (supported codecs, pixel formats, sample formats, resolutions, channel counts, etc).

It is build on top op AVOption API. Queried capabilities make it possible to set up converters of video or audio parameters that fit to the device.

List of capabilities that can be queried:

Value of the capability may be set by user using av_opt_set() function and AVDeviceCapabilitiesQuery object. Following queries will limit results to the values matching already set capabilities. For example, setting a codec may impact number of formats or fps values returned during next query. Setting invalid value may limit results to zero.

Example of the usage basing on opengl output device:

AVFormatContext *oc = NULL;
AVOptionRanges *ranges;
int ret;
if ((ret = avformat_alloc_output_context2(&oc, NULL, "opengl", NULL)) < 0)
goto fail;
if (avdevice_capabilities_create(&caps, oc, NULL) < 0)
goto fail;
//query codecs
if (av_opt_query_ranges(&ranges, caps, "codec", AV_OPT_MULTI_COMPONENT_RANGE)) < 0)
goto fail;
//pick codec here and set it
av_opt_set(caps, "codec", AV_CODEC_ID_RAWVIDEO, 0);
//query format
if (av_opt_query_ranges(&ranges, caps, "pixel_format", AV_OPT_MULTI_COMPONENT_RANGE)) < 0)
goto fail;
//pick format here and set it
av_opt_set(caps, "pixel_format", AV_PIX_FMT_YUV420P, 0);
//query and set more capabilities
fail:
//clean up code

Structure describes device capabilities.

It is used by devices in conjunction with av_device_capabilities AVOption table to implement capabilities probing API based on AVOption API. Should not be used directly.


The documentation for this struct was generated from the following file: