annotate ffmpeg/doc/print_options.c @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents 6840f77b83aa
children
rev   line source
yading@10 1 /*
yading@10 2 * Copyright (c) 2012 Anton Khirnov
yading@10 3 *
yading@10 4 * This file is part of Libav.
yading@10 5 *
yading@10 6 * Libav is free software; you can redistribute it and/or
yading@10 7 * modify it under the terms of the GNU Lesser General Public
yading@10 8 * License as published by the Free Software Foundation; either
yading@10 9 * version 2.1 of the License, or (at your option) any later version.
yading@10 10 *
yading@10 11 * Libav is distributed in the hope that it will be useful,
yading@10 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
yading@10 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
yading@10 14 * Lesser General Public License for more details.
yading@10 15 *
yading@10 16 * You should have received a copy of the GNU Lesser General Public
yading@10 17 * License along with Libav; if not, write to the Free Software
yading@10 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
yading@10 19 */
yading@10 20
yading@10 21 /*
yading@10 22 * generate texinfo manpages for avoptions
yading@10 23 */
yading@10 24
yading@10 25 #include <stddef.h>
yading@10 26 #include <string.h>
yading@10 27 #include <float.h>
yading@10 28
yading@10 29 #include "libavformat/avformat.h"
yading@10 30 #include "libavcodec/avcodec.h"
yading@10 31 #include "libavutil/opt.h"
yading@10 32
yading@10 33 static void print_usage(void)
yading@10 34 {
yading@10 35 fprintf(stderr, "Usage: enum_options type\n"
yading@10 36 "type: format codec\n");
yading@10 37 exit(1);
yading@10 38 }
yading@10 39
yading@10 40 static void print_option(const AVOption *opts, const AVOption *o, int per_stream)
yading@10 41 {
yading@10 42 if (!(o->flags & (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_ENCODING_PARAM)))
yading@10 43 return;
yading@10 44
yading@10 45 printf("@item -%s%s @var{", o->name, per_stream ? "[:stream_specifier]" : "");
yading@10 46 switch (o->type) {
yading@10 47 case AV_OPT_TYPE_BINARY: printf("hexadecimal string"); break;
yading@10 48 case AV_OPT_TYPE_STRING: printf("string"); break;
yading@10 49 case AV_OPT_TYPE_INT:
yading@10 50 case AV_OPT_TYPE_INT64: printf("integer"); break;
yading@10 51 case AV_OPT_TYPE_FLOAT:
yading@10 52 case AV_OPT_TYPE_DOUBLE: printf("float"); break;
yading@10 53 case AV_OPT_TYPE_RATIONAL: printf("rational number"); break;
yading@10 54 case AV_OPT_TYPE_FLAGS: printf("flags"); break;
yading@10 55 default: printf("value"); break;
yading@10 56 }
yading@10 57 printf("} (@emph{");
yading@10 58
yading@10 59 if (o->flags & AV_OPT_FLAG_DECODING_PARAM) {
yading@10 60 printf("input");
yading@10 61 if (o->flags & AV_OPT_FLAG_ENCODING_PARAM)
yading@10 62 printf("/");
yading@10 63 }
yading@10 64 if (o->flags & AV_OPT_FLAG_ENCODING_PARAM) printf("output");
yading@10 65 if (o->flags & AV_OPT_FLAG_AUDIO_PARAM) printf(",audio");
yading@10 66 if (o->flags & AV_OPT_FLAG_VIDEO_PARAM) printf(",video");
yading@10 67 if (o->flags & AV_OPT_FLAG_SUBTITLE_PARAM) printf(",subtitles");
yading@10 68
yading@10 69 printf("})\n");
yading@10 70 if (o->help)
yading@10 71 printf("%s\n", o->help);
yading@10 72
yading@10 73 if (o->unit) {
yading@10 74 const AVOption *u;
yading@10 75 printf("\nPossible values:\n@table @samp\n");
yading@10 76
yading@10 77 for (u = opts; u->name; u++) {
yading@10 78 if (u->type == AV_OPT_TYPE_CONST && u->unit && !strcmp(u->unit, o->unit))
yading@10 79 printf("@item %s\n%s\n", u->name, u->help ? u->help : "");
yading@10 80 }
yading@10 81 printf("@end table\n");
yading@10 82 }
yading@10 83 }
yading@10 84
yading@10 85 static void show_opts(const AVOption *opts, int per_stream)
yading@10 86 {
yading@10 87 const AVOption *o;
yading@10 88
yading@10 89 printf("@table @option\n");
yading@10 90 for (o = opts; o->name; o++) {
yading@10 91 if (o->type != AV_OPT_TYPE_CONST)
yading@10 92 print_option(opts, o, per_stream);
yading@10 93 }
yading@10 94 printf("@end table\n");
yading@10 95 }
yading@10 96
yading@10 97 static void show_format_opts(void)
yading@10 98 {
yading@10 99 #include "libavformat/options_table.h"
yading@10 100
yading@10 101 printf("@section Format AVOptions\n");
yading@10 102 show_opts(options, 0);
yading@10 103 }
yading@10 104
yading@10 105 static void show_codec_opts(void)
yading@10 106 {
yading@10 107 #include "libavcodec/options_table.h"
yading@10 108
yading@10 109 printf("@section Codec AVOptions\n");
yading@10 110 show_opts(options, 1);
yading@10 111 }
yading@10 112
yading@10 113 int main(int argc, char **argv)
yading@10 114 {
yading@10 115 if (argc < 2)
yading@10 116 print_usage();
yading@10 117
yading@10 118 printf("@c DO NOT EDIT THIS FILE!\n"
yading@10 119 "@c It was generated by print_options.\n\n");
yading@10 120 if (!strcmp(argv[1], "format"))
yading@10 121 show_format_opts();
yading@10 122 else if (!strcmp(argv[1], "codec"))
yading@10 123 show_codec_opts();
yading@10 124 else
yading@10 125 print_usage();
yading@10 126
yading@10 127 return 0;
yading@10 128 }