#include <sys/time.h>
#include <sys/resource.h>
#endif
+#ifdef _WIN32
+#include <windows.h>
+#endif
static int init_report(const char *env);
static int report_file_level = AV_LOG_DEBUG;
int hide_banner = 0;
+enum show_muxdemuxers {
+ SHOW_DEFAULT,
+ SHOW_DEMUXERS,
+ SHOW_MUXERS,
+};
+
void init_opts(void)
{
av_dict_set(&sws_dict, "flags", "bicubic", 0);
}
}
+void init_dynload(void)
+{
+#ifdef _WIN32
+ /* Calling SetDllDirectory with the empty string (but not NULL) removes the
+ * current working directory from the DLL search path as a security pre-caution. */
+ SetDllDirectory("");
+#endif
+}
+
static void (*program_exit)(int ret);
void register_exit(void (*cb)(int ret))
return AV_IS_INPUT_DEVICE(avclass->category) || AV_IS_OUTPUT_DEVICE(avclass->category);
}
-static int show_formats_devices(void *optctx, const char *opt, const char *arg, int device_only)
+static int show_formats_devices(void *optctx, const char *opt, const char *arg, int device_only, int muxdemuxers)
{
AVInputFormat *ifmt = NULL;
AVOutputFormat *ofmt = NULL;
const char *name = NULL;
const char *long_name = NULL;
- while ((ofmt = av_oformat_next(ofmt))) {
- is_dev = is_device(ofmt->priv_class);
- if (!is_dev && device_only)
- continue;
- if ((!name || strcmp(ofmt->name, name) < 0) &&
- strcmp(ofmt->name, last_name) > 0) {
- name = ofmt->name;
- long_name = ofmt->long_name;
- encode = 1;
+ if (muxdemuxers !=SHOW_DEMUXERS) {
+ while ((ofmt = av_oformat_next(ofmt))) {
+ is_dev = is_device(ofmt->priv_class);
+ if (!is_dev && device_only)
+ continue;
+ if ((!name || strcmp(ofmt->name, name) < 0) &&
+ strcmp(ofmt->name, last_name) > 0) {
+ name = ofmt->name;
+ long_name = ofmt->long_name;
+ encode = 1;
+ }
}
}
- while ((ifmt = av_iformat_next(ifmt))) {
- is_dev = is_device(ifmt->priv_class);
- if (!is_dev && device_only)
- continue;
- if ((!name || strcmp(ifmt->name, name) < 0) &&
- strcmp(ifmt->name, last_name) > 0) {
- name = ifmt->name;
- long_name = ifmt->long_name;
- encode = 0;
+ if (muxdemuxers != SHOW_MUXERS) {
+ while ((ifmt = av_iformat_next(ifmt))) {
+ is_dev = is_device(ifmt->priv_class);
+ if (!is_dev && device_only)
+ continue;
+ if ((!name || strcmp(ifmt->name, name) < 0) &&
+ strcmp(ifmt->name, last_name) > 0) {
+ name = ifmt->name;
+ long_name = ifmt->long_name;
+ encode = 0;
+ }
+ if (name && strcmp(ifmt->name, name) == 0)
+ decode = 1;
}
- if (name && strcmp(ifmt->name, name) == 0)
- decode = 1;
}
if (!name)
break;
int show_formats(void *optctx, const char *opt, const char *arg)
{
- return show_formats_devices(optctx, opt, arg, 0);
+ return show_formats_devices(optctx, opt, arg, 0, SHOW_DEFAULT);
+}
+
+int show_muxers(void *optctx, const char *opt, const char *arg)
+{
+ return show_formats_devices(optctx, opt, arg, 0, SHOW_MUXERS);
+}
+
+int show_demuxers(void *optctx, const char *opt, const char *arg)
+{
+ return show_formats_devices(optctx, opt, arg, 0, SHOW_DEMUXERS);
}
int show_devices(void *optctx, const char *opt, const char *arg)
{
- return show_formats_devices(optctx, opt, arg, 1);
+ return show_formats_devices(optctx, opt, arg, 1, SHOW_DEFAULT);
}
#define PRINT_CODEC_SUPPORTED(codec, field, type, list_name, term, get_name) \
int show_bsfs(void *optctx, const char *opt, const char *arg)
{
- AVBitStreamFilter *bsf = NULL;
+ const AVBitStreamFilter *bsf = NULL;
+ void *opaque = NULL;
printf("Bitstream filters:\n");
- while ((bsf = av_bitstream_filter_next(bsf)))
+ while ((bsf = av_bsf_next(&opaque)))
printf("%s\n", bsf->name);
printf("\n");
return 0;
codec = s->oformat ? avcodec_find_encoder(codec_id)
: avcodec_find_decoder(codec_id);
- switch (st->codec->codec_type) {
+ switch (st->codecpar->codec_type) {
case AVMEDIA_TYPE_VIDEO:
prefix = 'v';
flags |= AV_OPT_FLAG_VIDEO_PARAM;
return NULL;
}
for (i = 0; i < s->nb_streams; i++)
- opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codec->codec_id,
+ opts[i] = filter_codec_opts(codec_opts, s->streams[i]->codecpar->codec_id,
s, s->streams[i], NULL);
return opts;
}
if (!fmt || !fmt->priv_class || !AV_IS_INPUT_DEVICE(fmt->priv_class->category))
return AVERROR(EINVAL);
- printf("Audo-detected sources for %s:\n", fmt->name);
+ printf("Auto-detected sources for %s:\n", fmt->name);
if (!fmt->get_device_list) {
ret = AVERROR(ENOSYS);
printf("Cannot list sources. Not implemented.\n");
if (!fmt || !fmt->priv_class || !AV_IS_OUTPUT_DEVICE(fmt->priv_class->category))
return AVERROR(EINVAL);
- printf("Audo-detected sinks for %s:\n", fmt->name);
+ printf("Auto-detected sinks for %s:\n", fmt->name);
if (!fmt->get_device_list) {
ret = AVERROR(ENOSYS);
printf("Cannot list sinks. Not implemented.\n");