1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

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
This commit is contained in:
Aurelien Jacobs 2007-07-11 12:45:14 +00:00
parent a9fb241c3f
commit 45da8124a0
2 changed files with 44 additions and 43 deletions

View File

@ -215,49 +215,6 @@ const AVCodecTag codec_wav_tags[] = {
{ 0, 0 },
};
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;
}
#ifdef CONFIG_MUXERS
offset_t start_tag(ByteIOContext *pb, const char *tag)
{

View File

@ -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