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

Function main

tools/aviocat.c:34–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32}
33
34int main(int argc, char **argv)
35{
36 int bps = 0, duration = 0, verbose = 0, ret, i;
37 const char *input_url = NULL, *output_url = NULL;
38 int64_t stream_pos = 0;
39 int64_t start_time;
40 AVIOContext *input, *output;
41 AVDictionary *in_opts = NULL;
42 AVDictionary *out_opts = NULL;
43
44 avformat_network_init();
45
46 for (i = 1; i < argc; i++) {
47 if (!strcmp(argv[i], "-b") && i + 1 < argc) {
48 bps = atoi(argv[i + 1]);
49 i++;
50 } else if (!strcmp(argv[i], "-d") && i + 1 < argc) {
51 duration = atoi(argv[i + 1]);
52 i++;
53 } else if (!strcmp(argv[i], "-oi") && i + 1 < argc) {
54 if (av_dict_parse_string(&in_opts, argv[i + 1], "=", ":", 0) < 0) {
55 fprintf(stderr, "Cannot parse option string %s\n",
56 argv[i + 1]);
57 return usage(argv[0], 1);
58 }
59 i++;
60 } else if (!strcmp(argv[i], "-oo") && i + 1 < argc) {
61 if (av_dict_parse_string(&out_opts, argv[i + 1], "=", ":", 0) < 0) {
62 fprintf(stderr, "Cannot parse option string %s\n",
63 argv[i + 1]);
64 return usage(argv[0], 1);
65 }
66 i++;
67 } else if (!strcmp(argv[i], "-v")) {
68 verbose = 1;
69 } else if (!input_url) {
70 input_url = argv[i];
71 } else if (!output_url) {
72 output_url = argv[i];
73 } else {
74 return usage(argv[0], 1);
75 }
76 }
77 if (!output_url)
78 return usage(argv[0], 1);
79
80 ret = avio_open2(&input, input_url, AVIO_FLAG_READ, NULL, &in_opts);
81 if (ret) {
82 fprintf(stderr, "Unable to open %s: %s\n", input_url, av_err2str(ret));
83 return 1;
84 }
85 if (verbose) {
86 int64_t size = avio_seek(input, 0, AVSEEK_SIZE);
87 if (size >= 0) {
88 fprintf(stderr, "aviocat: input size: %"PRId64"\n", size);
89 } else {
90 fprintf(stderr, "aviocat: input size: unknown\n");
91 }

Callers

nothing calls this directly

Calls 14

avformat_network_initFunction · 0.85
av_dict_parse_stringFunction · 0.85
avio_open2Function · 0.85
avio_seekFunction · 0.85
avio_sizeFunction · 0.85
av_gettime_relativeFunction · 0.85
avio_readFunction · 0.85
avio_writeFunction · 0.85
avio_flushFunction · 0.85
av_usleepFunction · 0.85
avio_closeFunction · 0.85
av_dict_freeFunction · 0.85

Tested by

no test coverage detected