FFmpeg: libavdevice/avdevice.c Source File
Go to the documentation of this file. 1 /*
2 * This file is part of FFmpeg.
3 *
4 * FFmpeg is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * FFmpeg is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with FFmpeg; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
25 #include "config.h"
26
27 #include "libavutil/ffversion.h"
29
30 #if FF_API_DEVICE_CAPABILITIES
33 };
34 #endif
35
37 {
40 }
41
43 {
44 return FFMPEG_CONFIGURATION;
45 }
46
48 {
49 #define LICENSE_PREFIX "libavdevice license: "
51 }
52
54 void *
data,
size_t data_size)
55 {
56 if (!
s->oformat || !
s->oformat->control_message)
58 return s->oformat->control_message(
s,
type,
data, data_size);
59 }
60
62 void *
data,
size_t data_size)
63 {
64 if (!
s->control_message_cb)
66 return s->control_message_cb(
s,
type,
data, data_size);
67 }
68
69 #if FF_API_DEVICE_CAPABILITIES
72 {
74 }
75
77 {
78 return;
79 }
80 #endif
81
83 {
88 if ((
s->oformat && !
s->oformat->get_device_list) ||
89 (
s->iformat && !
s->iformat->get_device_list)) {
92 }
94 if (!(*device_list))
96 /* no default device by default */
97 (*device_list)->default_device = -1;
99 ret =
s->oformat->get_device_list(
s, *device_list);
100 else
101 ret =
s->iformat->get_device_list(
s, *device_list);
105 }
106
109 {
112
121 }
122
125 {
128
132 }
133
136 {
139
143 }
144
146 {
150
154 return;
155
156 for (
i = 0;
i <
list->nb_devices;
i++) {
157 dev =
list->devices[
i];
158 if (dev) {
162 }
163 }
166 }
int avdevice_list_input_sources(AVInputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
List devices.
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
#define LIBAVDEVICE_VERSION_INT
char * device_name
device name, format depends on device
Following API allows user to probe device capabilities (supported codecs, pixel formats,...
int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list)
List devices.
const AVOption av_device_capabilities[]
AVOption table used by devices to implement device capabilities API.
int avdevice_capabilities_create(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s, AVDictionary **device_options)
Initialize capabilities probing API based on AVOption API.
AVAppToDevMessageType
Message types used by avdevice_app_to_dev_control_message().
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 LIBAVDEVICE_VERSION_MICRO
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
#define av_assert0(cond)
assert() equivalent, that is always enabled.
const char * avdevice_license(void)
Return the libavdevice license.
static int list_devices_for_context(AVFormatContext *s, AVDictionary *options, AVDeviceInfoList **device_list)
const char * avdevice_configuration(void)
Return the libavdevice build-time configuration.
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
void avdevice_capabilities_free(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s)
Free resources created by avdevice_capabilities_create()
const OptionDef options[]
Structure describes basic parameters of the device.
void avdevice_free_list_devices(AVDeviceInfoList **device_list)
Convenient function to free result of avdevice_list_devices().
#define AV_OPT_SEARCH_CHILDREN
Search in possible children of the given object first.
av_warn_unused_result int ff_alloc_input_device_context(struct AVFormatContext **avctx, struct AVInputFormat *iformat, const char *format)
const char av_device_ffversion[]
int av_opt_set_dict2(void *obj, AVDictionary **options, int search_flags)
Set all the options from a given dictionary on an object.
void av_dict_free(AVDictionary **pm)
Free all the memory allocated for an AVDictionary struct and all keys and values.
AVDevToAppMessageType
Message types used by avdevice_dev_to_app_control_message().
char * device_description
human friendly name
int avdevice_list_output_sinks(AVOutputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list)
unsigned avdevice_version(void)
Return the LIBAVDEVICE_VERSION_INT constant.
void * av_mallocz(size_t size)
Allocate a memory block with alignment suitable for all memory accesses (including vectors if availab...
void avformat_free_context(AVFormatContext *s)
Free an AVFormatContext and all its streams.
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 av_dict_copy(AVDictionary **dst, const AVDictionary *src, int flags)
Copy entries from one AVDictionary struct into another.
Generated on Wed Aug 24 2022 21:34:23 for FFmpeg by
doxygen
1.8.17