diff options
author | Aurelien Jacobs <aurel@gnuage.org> | 2007-07-11 12:45:14 +0000 |
---|---|---|
committer | Aurelien Jacobs <aurel@gnuage.org> | 2007-07-11 12:45:14 +0000 |
commit | 45da8124a09d0ac5f9d8174884584c5f80309d0c (patch) | |
tree | 29af3da0493fd10868964ace9f039064ce105832 /libavformat/utils.c | |
parent | a9fb241c3f36899f07cff1f7e2481e8ac67628dd (diff) | |
download | ffmpeg-45da8124a09d0ac5f9d8174884584c5f80309d0c.tar.gz |
Move public API functions av_codec_get_tag() and av_codec_get_id()
into a file which is compiled un-conditionally (utils.c).
Originally committed as revision 9590 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r-- | libavformat/utils.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index 63a3b692ba..453ff7f3f1 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -22,6 +22,7 @@ #include "allformats.h" #include "opt.h" #include "avstring.h" +#include "riff.h" #undef NDEBUG #include <assert.h> @@ -1656,6 +1657,49 @@ static int set_codec_from_probe_data(AVStream *st, AVProbeData *pd, int score) return !!fmt; } +unsigned int codec_get_tag(const AVCodecTag *tags, int id) +{ + while (tags->id != CODEC_ID_NONE) { + if (tags->id == id) + return tags->tag; + tags++; + } + return 0; +} + +enum CodecID codec_get_id(const AVCodecTag *tags, unsigned int tag) +{ + while (tags->id != CODEC_ID_NONE) { + if( toupper((tag >> 0)&0xFF) == toupper((tags->tag >> 0)&0xFF) + && toupper((tag >> 8)&0xFF) == toupper((tags->tag >> 8)&0xFF) + && toupper((tag >>16)&0xFF) == toupper((tags->tag >>16)&0xFF) + && toupper((tag >>24)&0xFF) == toupper((tags->tag >>24)&0xFF)) + return tags->id; + tags++; + } + return CODEC_ID_NONE; +} + +unsigned int av_codec_get_tag(const AVCodecTag *tags[4], enum CodecID id) +{ + int i; + for(i=0; tags && tags[i]; i++){ + int tag= codec_get_tag(tags[i], id); + if(tag) return tag; + } + return 0; +} + +enum CodecID av_codec_get_id(const AVCodecTag *tags[4], unsigned int tag) +{ + int i; + for(i=0; tags && tags[i]; i++){ + enum CodecID id= codec_get_id(tags[i], tag); + if(id!=CODEC_ID_NONE) return id; + } + return CODEC_ID_NONE; +} + /* absolute maximum size we read until we abort */ #define MAX_READ_SIZE 5000000 |