X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavdevice%2Favdevice.c;h=22b7595ab13045a48d81470e5ad68831d0cc8eb6;hb=4e8d22478bc854949a9adbda97348f2997e1dc8d;hp=a42d3498b56d5b083e8dca72beb5f4b3ba3a8f5b;hpb=7dc8752e614a9aa5b3378be5185d97741ee7735f;p=ffmpeg diff --git a/libavdevice/avdevice.c b/libavdevice/avdevice.c index a42d3498b56..22b7595ab13 100644 --- a/libavdevice/avdevice.c +++ b/libavdevice/avdevice.c @@ -27,39 +27,11 @@ #include "libavutil/ffversion.h" const char av_device_ffversion[] = "FFmpeg version " FFMPEG_VERSION; -#define E AV_OPT_FLAG_ENCODING_PARAM -#define D AV_OPT_FLAG_DECODING_PARAM -#define A AV_OPT_FLAG_AUDIO_PARAM -#define V AV_OPT_FLAG_VIDEO_PARAM -#define OFFSET(x) offsetof(AVDeviceCapabilitiesQuery, x) - +#if FF_API_DEVICE_CAPABILITIES const AVOption av_device_capabilities[] = { - { "codec", "codec", OFFSET(codec), AV_OPT_TYPE_INT, - {.i64 = AV_CODEC_ID_NONE}, AV_CODEC_ID_NONE, INT_MAX, E|D|A|V }, - { "sample_format", "sample format", OFFSET(sample_format), AV_OPT_TYPE_SAMPLE_FMT, - {.i64 = AV_SAMPLE_FMT_NONE}, AV_SAMPLE_FMT_NONE, INT_MAX, E|D|A }, - { "sample_rate", "sample rate", OFFSET(sample_rate), AV_OPT_TYPE_INT, - {.i64 = -1}, -1, INT_MAX, E|D|A }, - { "channels", "channels", OFFSET(channels), AV_OPT_TYPE_INT, - {.i64 = -1}, -1, INT_MAX, E|D|A }, - { "channel_layout", "channel layout", OFFSET(channel_layout), AV_OPT_TYPE_CHANNEL_LAYOUT, - {.i64 = -1}, -1, INT_MAX, E|D|A }, - { "pixel_format", "pixel format", OFFSET(pixel_format), AV_OPT_TYPE_PIXEL_FMT, - {.i64 = AV_PIX_FMT_NONE}, AV_PIX_FMT_NONE, INT_MAX, E|D|V }, - { "window_size", "window size", OFFSET(window_width), AV_OPT_TYPE_IMAGE_SIZE, - {.str = NULL}, -1, INT_MAX, E|D|V }, - { "frame_size", "frame size", OFFSET(frame_width), AV_OPT_TYPE_IMAGE_SIZE, - {.str = NULL}, -1, INT_MAX, E|D|V }, - { "fps", "fps", OFFSET(fps), AV_OPT_TYPE_RATIONAL, - {.dbl = -1}, -1, INT_MAX, E|D|V }, { NULL } }; - -#undef E -#undef D -#undef A -#undef V -#undef OFFSET +#endif unsigned avdevice_version(void) { @@ -75,7 +47,7 @@ const char * avdevice_configuration(void) const char * avdevice_license(void) { #define LICENSE_PREFIX "libavdevice license: " - return LICENSE_PREFIX FFMPEG_LICENSE + sizeof(LICENSE_PREFIX) - 1; + return &LICENSE_PREFIX FFMPEG_LICENSE[sizeof(LICENSE_PREFIX) - 1]; } int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type, @@ -94,49 +66,18 @@ int avdevice_dev_to_app_control_message(struct AVFormatContext *s, enum AVDevToA return s->control_message_cb(s, type, data, data_size); } +#if FF_API_DEVICE_CAPABILITIES int avdevice_capabilities_create(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s, AVDictionary **device_options) { - int ret; - av_assert0(s && caps); - av_assert0(s->iformat || s->oformat); - if ((s->oformat && !s->oformat->create_device_capabilities) || - (s->iformat && !s->iformat->create_device_capabilities)) - return AVERROR(ENOSYS); - *caps = av_mallocz(sizeof(**caps)); - if (!(*caps)) - return AVERROR(ENOMEM); - (*caps)->device_context = s; - if (((ret = av_opt_set_dict(s->priv_data, device_options)) < 0)) - goto fail; - if (s->iformat) { - if ((ret = s->iformat->create_device_capabilities(s, *caps)) < 0) - goto fail; - } else { - if ((ret = s->oformat->create_device_capabilities(s, *caps)) < 0) - goto fail; - } - av_opt_set_defaults(*caps); - return 0; - fail: - av_freep(caps); - return ret; + return AVERROR(ENOSYS); } void avdevice_capabilities_free(AVDeviceCapabilitiesQuery **caps, AVFormatContext *s) { - if (!s || !caps || !(*caps)) - return; - av_assert0(s->iformat || s->oformat); - if (s->iformat) { - if (s->iformat->free_device_capabilities) - s->iformat->free_device_capabilities(s, *caps); - } else { - if (s->oformat->free_device_capabilities) - s->oformat->free_device_capabilities(s, *caps); - } - av_freep(caps); + return; } +#endif int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list) { @@ -179,7 +120,7 @@ static int list_devices_for_context(AVFormatContext *s, AVDictionary *options, return ret; } -int avdevice_list_input_sources(AVInputFormat *device, const char *device_name, +int avdevice_list_input_sources(const AVInputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list) { AVFormatContext *s = NULL; @@ -190,7 +131,7 @@ int avdevice_list_input_sources(AVInputFormat *device, const char *device_name, return list_devices_for_context(s, device_options, device_list); } -int avdevice_list_output_sinks(AVOutputFormat *device, const char *device_name, +int avdevice_list_output_sinks(const AVOutputFormat *device, const char *device_name, AVDictionary *device_options, AVDeviceInfoList **device_list) { AVFormatContext *s = NULL;