Add a new function av_codec_get_tag2().

av_codec_get_tag() may return 0 both in case a codec_tag was
found and if no codec_tag was found.
The new function does not have this ambiguity.
This commit is contained in:
Carl Eugen Hoyos
2013-01-17 20:44:33 +01:00
parent 8fdd24455e
commit a1a707f728
3 changed files with 31 additions and 4 deletions

View File

@@ -2583,11 +2583,26 @@ enum AVCodecID ff_get_pcm_codec_id(int bps, int flt, int be, int sflags)
}
unsigned int av_codec_get_tag(const AVCodecTag * const *tags, enum AVCodecID id)
{
unsigned int tag;
if (!av_codec_get_tag2(tags, id, &tag))
return 0;
return tag;
}
int av_codec_get_tag2(const AVCodecTag * const *tags, enum AVCodecID id,
unsigned int *tag)
{
int i;
for(i=0; tags && tags[i]; i++){
int tag= ff_codec_get_tag(tags[i], id);
if(tag) return tag;
const AVCodecTag *codec_tags = tags[i];
while (codec_tags->id != AV_CODEC_ID_NONE) {
if (codec_tags->id == id) {
*tag = codec_tags->tag;
return 1;
}
codec_tags++;
}
}
return 0;
}