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
utils.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 "
internal.h
"
20
#include "
libavutil/opt.h
"
21
#include "
libavformat/avformat.h
"
22
23
int
ff_alloc_input_device_context
(
AVFormatContext
**avctx,
AVInputFormat
*
iformat
,
const
char
*format)
24
{
25
AVFormatContext
*
s
;
26
int
ret
= 0;
27
28
*avctx =
NULL
;
29
if
(!iformat && !format)
30
return
AVERROR
(EINVAL);
31
if
(!(s =
avformat_alloc_context
()))
32
return
AVERROR
(ENOMEM);
33
34
if
(!iformat)
35
iformat =
av_find_input_format
(format);
36
if
(!iformat || !iformat->
priv_class
|| !
AV_IS_INPUT_DEVICE
(iformat->
priv_class
->
category
)) {
37
ret =
AVERROR
(EINVAL);
38
goto
error;
39
}
40
s->
iformat
=
iformat
;
41
if
(s->
iformat
->
priv_data_size
> 0) {
42
s->
priv_data
=
av_mallocz
(s->
iformat
->
priv_data_size
);
43
if
(!s->
priv_data
) {
44
ret =
AVERROR
(ENOMEM);
45
goto
error;
46
}
47
if
(s->
iformat
->
priv_class
) {
48
*(
const
AVClass
**)s->
priv_data
= s->
iformat
->
priv_class
;
49
av_opt_set_defaults
(s->
priv_data
);
50
}
51
}
else
52
s->
priv_data
=
NULL
;
53
54
*avctx =
s
;
55
return
0;
56
error:
57
avformat_free_context
(s);
58
return
ret
;
59
}
Generated on Sun Mar 8 2015 02:35:01 for FFmpeg by
1.8.2