diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/av_common.c | 17 | ||||
-rw-r--r-- | common/av_common.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/common/av_common.c b/common/av_common.c index 65a212b994..0599d98465 100644 --- a/common/av_common.c +++ b/common/av_common.c @@ -26,6 +26,7 @@ #include <libavutil/error.h> #include <libavutil/cpu.h> #include <libavcodec/avcodec.h> +#include <libavformat/avformat.h> #include "config.h" @@ -33,6 +34,7 @@ #include "common/msg.h" #include "demux/packet.h" #include "demux/stheader.h" +#include "misc/bstr.h" #include "video/fmt-conversion.h" #include "av_common.h" #include "codecs.h" @@ -246,6 +248,21 @@ void mp_add_lavc_encoders(struct mp_decoder_list *list) } } +char **mp_get_lavf_demuxers(void) +{ + char **list = NULL; + AVInputFormat *cur = NULL; + int num = 0; + for (;;) { + cur = av_iformat_next(cur); + if (!cur) + break; + MP_TARRAY_APPEND(NULL, list, num, talloc_strdup(NULL, cur->name)); + } + MP_TARRAY_APPEND(NULL, list, num, NULL); + return list; +} + int mp_codec_to_av_codec_id(const char *codec) { int id = AV_CODEC_ID_NONE; diff --git a/common/av_common.h b/common/av_common.h index 6d0c823b8d..0e7c838884 100644 --- a/common/av_common.h +++ b/common/av_common.h @@ -41,6 +41,7 @@ double mp_pts_from_av(int64_t av_pts, AVRational *tb); void mp_set_avcodec_threads(struct mp_log *l, AVCodecContext *avctx, int threads); void mp_add_lavc_decoders(struct mp_decoder_list *list, enum AVMediaType type); void mp_add_lavc_encoders(struct mp_decoder_list *list); +char **mp_get_lavf_demuxers(void); int mp_codec_to_av_codec_id(const char *codec); const char *mp_codec_from_av_codec_id(int codec_id); void mp_set_avdict(struct AVDictionary **dict, char **kv); |