27 #include "libavutil/ffversion.h" 30 #define E AV_OPT_FLAG_ENCODING_PARAM 31 #define D AV_OPT_FLAG_DECODING_PARAM 32 #define A AV_OPT_FLAG_AUDIO_PARAM 33 #define V AV_OPT_FLAG_VIDEO_PARAM 34 #define OFFSET(x) offsetof(AVDeviceCapabilitiesQuery, x) 42 {.i64 = -1}, -1, INT_MAX,
E|
D|
A },
44 {.i64 = -1}, -1, INT_MAX,
E|
D|
A },
46 {.i64 = -1}, -1, INT_MAX,
E|
D|
A },
50 {.str =
NULL}, -1, INT_MAX,
E|
D|
V },
52 {.str =
NULL}, -1, INT_MAX,
E|
D|
V },
54 {.dbl = -1}, -1, INT_MAX,
E|
D|
V },
72 return FFMPEG_CONFIGURATION;
77 #define LICENSE_PREFIX "libavdevice license: " 82 void *
data,
size_t data_size)
90 void *
data,
size_t data_size)
109 (*caps)->device_context =
s;
128 if (!s || !caps || !(*caps))
156 (*device_list)->default_device = -1;
const char * avdevice_configuration(void)
Return the libavdevice build-time configuration.
Structure describes basic parameters of the device.
ptrdiff_t const GLvoid * data
char * device_description
human friendly name
void avdevice_capabilities_free(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s)
Free resources created by avdevice_capabilities_create()
void av_opt_set_defaults(void *s)
Set the values of all AVOption fields to their default values.
char * device_name
device name, format depends on device
int av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags)
Copy entries from one AVDictionary struct into another.
int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list)
List devices.
av_warn_unused_result int ff_alloc_input_device_context(struct AVFormatContext **avctx, struct AVInputFormat *iformat, const char *format)
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
int avdevice_dev_to_app_control_message(struct AVFormatContext *s, enum AVDevToAppMessageType type, void *data, size_t data_size)
Send control message from device to application.
#define av_assert0(cond)
assert() equivalent, that is always enabled.
int avdevice_capabilities_create(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s, AVDictionary **device_options)
Initialize capabilities probing API based on AVOption API.
AVDevToAppMessageType
Message types used by avdevice_dev_to_app_control_message().
void avdevice_free_list_devices(AVDeviceInfoList **device_list)
Convenient function to free result of avdevice_list_devices().
Main libavdevice API header.
ff_const59 struct AVInputFormat * iformat
The input container format.
const char av_device_ffversion[]
void av_dict_free(AVDictionary **pm)
Free all the memory allocated for an AVDictionary struct and all keys and values. ...
simple assert() macros that are a bit more flexible than ISO C assert().
#define LIBAVDEVICE_VERSION_INT
AVDeviceInfo ** devices
list of autodetected devices
int avdevice_list_input_sources(AVInputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
List devices.
#define AV_OPT_SEARCH_CHILDREN
Search in possible children of the given object first.
int avdevice_list_output_sinks(AVOutputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
int av_opt_set_dict2(void *obj, AVDictionary **options, int search_flags)
Set all the options from a given dictionary on an object.
const AVOption av_device_capabilities[]
AVOption table used by devices to implement device capabilities API.
ff_const59 struct AVOutputFormat * oformat
The output container format.
Libavcodec external API header.
int av_opt_set_dict(void *obj, AVDictionary **options)
Set all the options from a given dictionary on an object.
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining list
const char * avdevice_license(void)
Return the libavdevice license.
void avformat_free_context(AVFormatContext *s)
Free an AVFormatContext and all its streams.
offset must point to two consecutive integers
#define LIBAVDEVICE_VERSION_MICRO
const OptionDef options[]
av_format_control_message control_message_cb
Callback used by devices to communicate with application.
unsigned avdevice_version(void)
Return the LIBAVDEVICE_VERSION_INT constant.
void * priv_data
Format private data.
AVAppToDevMessageType
Message types used by avdevice_app_to_dev_control_message().
static int list_devices_for_context(AVFormatContext *s, AVDictionary *options, AVDeviceInfoList **device_list)
Filter the word “frame” indicates either a video frame or a group of audio as stored in an AVFrame structure Format for each input and each output the list of supported formats For video that means pixel format For audio that means channel sample they are references to shared objects When the negotiation mechanism computes the intersection of the formats supported at each end of a all references to both lists are replaced with a reference to the intersection And when a single format is eventually chosen for a link amongst the remaining all references to the list are updated That means that if a filter requires that its input and output have the same format amongst a supported all it has to do is use a reference to the same list of formats query_formats can leave some formats unset and return AVERROR(EAGAIN) to cause the negotiation mechanism toagain later.That can be used by filters with complex requirements to use the format negotiated on one link to set the formats supported on another.Frame references ownership and permissions
int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type, void *data, size_t data_size)
Send control message from application to device.
int nb_devices
number of autodetected devices
Following API allows user to probe device capabilities (supported codecs, pixel formats, sample formats, resolutions, channel counts, etc).