You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
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:
@@ -1930,6 +1930,18 @@ enum AVCodecID av_codec_get_id(const struct AVCodecTag * const *tags, unsigned i
|
|||||||
*/
|
*/
|
||||||
unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum AVCodecID id);
|
unsigned int av_codec_get_tag(const struct AVCodecTag * const *tags, enum AVCodecID id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the codec tag for the given codec id.
|
||||||
|
*
|
||||||
|
* @param tags list of supported codec_id - codec_tag pairs, as stored
|
||||||
|
* in AVInputFormat.codec_tag and AVOutputFormat.codec_tag
|
||||||
|
* @param id codec id that should be searched for in the list
|
||||||
|
* @param tag A pointer to the found tag
|
||||||
|
* @return 0 if id was not found in tags, > 0 if it was found
|
||||||
|
*/
|
||||||
|
int av_codec_get_tag2(const struct AVCodecTag * const *tags, enum AVCodecID id,
|
||||||
|
unsigned int *tag);
|
||||||
|
|
||||||
int av_find_default_stream_index(AVFormatContext *s);
|
int av_find_default_stream_index(AVFormatContext *s);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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 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;
|
int i;
|
||||||
for(i=0; tags && tags[i]; i++){
|
for(i=0; tags && tags[i]; i++){
|
||||||
int tag= ff_codec_get_tag(tags[i], id);
|
const AVCodecTag *codec_tags = tags[i];
|
||||||
if(tag) return tag;
|
while (codec_tags->id != AV_CODEC_ID_NONE) {
|
||||||
|
if (codec_tags->id == id) {
|
||||||
|
*tag = codec_tags->tag;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
codec_tags++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@@ -30,8 +30,8 @@
|
|||||||
#include "libavutil/avutil.h"
|
#include "libavutil/avutil.h"
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_MAJOR 54
|
#define LIBAVFORMAT_VERSION_MAJOR 54
|
||||||
#define LIBAVFORMAT_VERSION_MINOR 60
|
#define LIBAVFORMAT_VERSION_MINOR 61
|
||||||
#define LIBAVFORMAT_VERSION_MICRO 101
|
#define LIBAVFORMAT_VERSION_MICRO 100
|
||||||
|
|
||||||
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
|
||||||
LIBAVFORMAT_VERSION_MINOR, \
|
LIBAVFORMAT_VERSION_MINOR, \
|
||||||
|
Reference in New Issue
Block a user