cmdutils: stop using deprecated av_codec_next()
Signed-off-by: Josh de Kock <josh@itanimul.li>
This commit is contained in:
committed by
Josh de Kock
parent
cacdac819f
commit
4cde83c780
@@ -1500,13 +1500,14 @@ static char get_media_type_char(enum AVMediaType type)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const AVCodec *next_codec_for_id(enum AVCodecID id, const AVCodec *prev,
|
static const AVCodec *next_codec_for_id(enum AVCodecID id, void **iter,
|
||||||
int encoder)
|
int encoder)
|
||||||
{
|
{
|
||||||
while ((prev = av_codec_next(prev))) {
|
const AVCodec *c;
|
||||||
if (prev->id == id &&
|
while ((c = av_codec_iterate(iter))) {
|
||||||
(encoder ? av_codec_is_encoder(prev) : av_codec_is_decoder(prev)))
|
if (c->id == id &&
|
||||||
return prev;
|
(encoder ? av_codec_is_encoder(c) : av_codec_is_decoder(c)))
|
||||||
|
return c;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@@ -1543,11 +1544,12 @@ static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
|
|||||||
|
|
||||||
static void print_codecs_for_id(enum AVCodecID id, int encoder)
|
static void print_codecs_for_id(enum AVCodecID id, int encoder)
|
||||||
{
|
{
|
||||||
const AVCodec *codec = NULL;
|
void *iter = NULL;
|
||||||
|
const AVCodec *codec;
|
||||||
|
|
||||||
printf(" (%s: ", encoder ? "encoders" : "decoders");
|
printf(" (%s: ", encoder ? "encoders" : "decoders");
|
||||||
|
|
||||||
while ((codec = next_codec_for_id(id, codec, encoder)))
|
while ((codec = next_codec_for_id(id, &iter, encoder)))
|
||||||
printf("%s ", codec->name);
|
printf("%s ", codec->name);
|
||||||
|
|
||||||
printf(")");
|
printf(")");
|
||||||
@@ -1570,7 +1572,8 @@ int show_codecs(void *optctx, const char *opt, const char *arg)
|
|||||||
" -------\n");
|
" -------\n");
|
||||||
for (i = 0; i < nb_codecs; i++) {
|
for (i = 0; i < nb_codecs; i++) {
|
||||||
const AVCodecDescriptor *desc = codecs[i];
|
const AVCodecDescriptor *desc = codecs[i];
|
||||||
const AVCodec *codec = NULL;
|
const AVCodec *codec;
|
||||||
|
void *iter = NULL;
|
||||||
|
|
||||||
if (strstr(desc->name, "_deprecated"))
|
if (strstr(desc->name, "_deprecated"))
|
||||||
continue;
|
continue;
|
||||||
@@ -1588,14 +1591,14 @@ int show_codecs(void *optctx, const char *opt, const char *arg)
|
|||||||
|
|
||||||
/* print decoders/encoders when there's more than one or their
|
/* print decoders/encoders when there's more than one or their
|
||||||
* names are different from codec name */
|
* names are different from codec name */
|
||||||
while ((codec = next_codec_for_id(desc->id, codec, 0))) {
|
while ((codec = next_codec_for_id(desc->id, &iter, 0))) {
|
||||||
if (strcmp(codec->name, desc->name)) {
|
if (strcmp(codec->name, desc->name)) {
|
||||||
print_codecs_for_id(desc->id, 0);
|
print_codecs_for_id(desc->id, 0);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
codec = NULL;
|
iter = NULL;
|
||||||
while ((codec = next_codec_for_id(desc->id, codec, 1))) {
|
while ((codec = next_codec_for_id(desc->id, &iter, 1))) {
|
||||||
if (strcmp(codec->name, desc->name)) {
|
if (strcmp(codec->name, desc->name)) {
|
||||||
print_codecs_for_id(desc->id, 1);
|
print_codecs_for_id(desc->id, 1);
|
||||||
break;
|
break;
|
||||||
@@ -1626,9 +1629,10 @@ static void print_codecs(int encoder)
|
|||||||
encoder ? "Encoders" : "Decoders");
|
encoder ? "Encoders" : "Decoders");
|
||||||
for (i = 0; i < nb_codecs; i++) {
|
for (i = 0; i < nb_codecs; i++) {
|
||||||
const AVCodecDescriptor *desc = codecs[i];
|
const AVCodecDescriptor *desc = codecs[i];
|
||||||
const AVCodec *codec = NULL;
|
const AVCodec *codec;
|
||||||
|
void *iter = NULL;
|
||||||
|
|
||||||
while ((codec = next_codec_for_id(desc->id, codec, encoder))) {
|
while ((codec = next_codec_for_id(desc->id, &iter, encoder))) {
|
||||||
printf(" %c", get_media_type_char(desc->type));
|
printf(" %c", get_media_type_char(desc->type));
|
||||||
printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS) ? "F" : ".");
|
printf((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS) ? "F" : ".");
|
||||||
printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS) ? "S" : ".");
|
printf((codec->capabilities & AV_CODEC_CAP_SLICE_THREADS) ? "S" : ".");
|
||||||
@@ -1833,9 +1837,10 @@ static void show_help_codec(const char *name, int encoder)
|
|||||||
if (codec)
|
if (codec)
|
||||||
print_codec(codec);
|
print_codec(codec);
|
||||||
else if ((desc = avcodec_descriptor_get_by_name(name))) {
|
else if ((desc = avcodec_descriptor_get_by_name(name))) {
|
||||||
|
void *iter = NULL;
|
||||||
int printed = 0;
|
int printed = 0;
|
||||||
|
|
||||||
while ((codec = next_codec_for_id(desc->id, codec, encoder))) {
|
while ((codec = next_codec_for_id(desc->id, &iter, encoder))) {
|
||||||
printed = 1;
|
printed = 1;
|
||||||
print_codec(codec);
|
print_codec(codec);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user