MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / ff_alloc_input_device_context

Function ff_alloc_input_device_context

libavdevice/utils.c:25–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23#include "libavformat/demux.h"
24
25int ff_alloc_input_device_context(AVFormatContext **avctx, const AVInputFormat *iformat, const char *format)
26{
27 AVFormatContext *s;
28 int ret = 0;
29
30 *avctx = NULL;
31 if (!iformat && !format)
32 return AVERROR(EINVAL);
33 if (!(s = avformat_alloc_context()))
34 return AVERROR(ENOMEM);
35
36 if (!iformat)
37 iformat = av_find_input_format(format);
38 if (!iformat || !iformat->priv_class || !AV_IS_INPUT_DEVICE(iformat->priv_class->category)) {
39 ret = AVERROR(EINVAL);
40 goto error;
41 }
42 s->iformat = iformat;
43 if (ffifmt(s->iformat)->priv_data_size > 0) {
44 s->priv_data = av_mallocz(ffifmt(s->iformat)->priv_data_size);
45 if (!s->priv_data) {
46 ret = AVERROR(ENOMEM);
47 goto error;
48 }
49 if (s->iformat->priv_class) {
50 *(const AVClass**)s->priv_data= s->iformat->priv_class;
51 av_opt_set_defaults(s->priv_data);
52 }
53 } else
54 s->priv_data = NULL;
55
56 *avctx = s;
57 return 0;
58 error:
59 avformat_free_context(s);
60 return ret;
61}

Callers 1

Calls 6

avformat_alloc_contextFunction · 0.85
av_find_input_formatFunction · 0.85
ffifmtFunction · 0.85
av_opt_set_defaultsFunction · 0.85
avformat_free_contextFunction · 0.85
av_malloczFunction · 0.50

Tested by

no test coverage detected