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:
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user