FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavdevice
avdevice.c
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
19
#include "
libavutil/avassert.h
"
20
#include "
avdevice.h
"
21
#include "config.h"
22
23
unsigned
avdevice_version
(
void
)
24
{
25
av_assert0
(
LIBAVDEVICE_VERSION_MICRO
>= 100);
26
return
LIBAVDEVICE_VERSION_INT
;
27
}
28
29
const
char
*
avdevice_configuration
(
void
)
30
{
31
return
FFMPEG_CONFIGURATION;
32
}
33
34
const
char
*
avdevice_license
(
void
)
35
{
36
#define LICENSE_PREFIX "libavdevice license: "
37
return
LICENSE_PREFIX
FFMPEG_LICENSE +
sizeof
(
LICENSE_PREFIX
) - 1;
38
}
39
40
int
avdevice_app_to_dev_control_message
(
struct
AVFormatContext
*
s
,
enum
AVAppToDevMessageType
type
,
41
void
*
data
,
size_t
data_size
)
42
{
43
if
(!s->
oformat
|| !s->
oformat
->
control_message
)
44
return
AVERROR
(ENOSYS);
45
return
s->
oformat
->
control_message
(s, type, data, data_size);
46
}
47
48
int
avdevice_dev_to_app_control_message
(
struct
AVFormatContext
*
s
,
enum
AVDevToAppMessageType
type
,
49
void
*
data
,
size_t
data_size
)
50
{
51
if
(!s->
control_message_cb
)
52
return
AVERROR
(ENOSYS);
53
return
s->
control_message_cb
(s, type, data, data_size);
54
}
55
56
int
avdevice_list_devices
(
AVFormatContext
*
s
,
AVDeviceInfoList
**device_list)
57
{
58
av_assert0
(s);
59
av_assert0
(device_list);
60
av_assert0
(s->
oformat
|| s->
iformat
);
61
if
((s->
oformat
&& !s->
oformat
->
get_device_list
) ||
62
(s->
iformat
&& !s->
iformat
->
get_device_list
)) {
63
*device_list = NULL;
64
return
AVERROR
(ENOSYS);
65
}
66
*device_list =
av_mallocz
(
sizeof
(
AVDeviceInfoList
));
67
if
(!(*device_list))
68
return
AVERROR
(ENOMEM);
69
if
(s->
oformat
)
70
return
s->
oformat
->
get_device_list
(s, *device_list);
71
return
s->
iformat
->
get_device_list
(s, *device_list);
72
}
73
74
void
avdevice_free_list_devices
(
AVDeviceInfoList
**device_list)
75
{
76
AVDeviceInfoList
*list;
77
AVDeviceInfo
*dev;
78
int
i;
79
80
av_assert0
(device_list);
81
list = *device_list;
82
if
(!list)
83
return
;
84
85
for
(i = 0; i < list->
nb_devices
; i++) {
86
dev = list->
devices
[i];
87
if
(dev) {
88
av_free
(dev->
device_name
);
89
av_free
(dev->
device_description
);
90
av_free
(dev);
91
}
92
}
93
av_free
(list->
devices
);
94
av_freep
(device_list);
95
}
Generated on Sun Mar 23 2014 23:50:06 for FFmpeg by
1.8.2