diff mbox series

[FFmpeg-devel] cmdutils: stop using deprecated av_codec_next()

Message ID 20200414080924.26827-1-anton@khirnov.net
State Accepted
Commit 4cde83c780761b1f611d130285a5aee47d0be657
Headers show
Series [FFmpeg-devel] cmdutils: stop using deprecated av_codec_next()
Related show

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Anton Khirnov April 14, 2020, 8:09 a.m. UTC
---
 fftools/cmdutils.c | 33 +++++++++++++++++++--------------
 1 file changed, 19 insertions(+), 14 deletions(-)

Comments

Josh de Kock April 14, 2020, 12:37 p.m. UTC | #1
On Tue, Apr 14, 2020, at 9:09 AM, Anton Khirnov wrote:
> ---
>  fftools/cmdutils.c | 33 +++++++++++++++++++--------------
>  1 file changed, 19 insertions(+), 14 deletions(-)
> 
> [...]

LGTM, thanks. I will apply this a bit later after my set (or you can if you want it sooner).
Josh de Kock April 20, 2020, 3:46 p.m. UTC | #2
On 14/04/2020 13:37, Josh de Kock wrote:
> On Tue, Apr 14, 2020, at 9:09 AM, Anton Khirnov wrote:
>> ---
>>   fftools/cmdutils.c | 33 +++++++++++++++++++--------------
>>   1 file changed, 19 insertions(+), 14 deletions(-)
>>
>> [...]
> 
> LGTM, thanks. I will apply this a bit later after my set (or you can if you want it sooner).

Applied.
diff mbox series

Patch

diff --git a/fftools/cmdutils.c b/fftools/cmdutils.c
index f0f2b4fde4..7f5a5ca664 100644
--- a/fftools/cmdutils.c
+++ b/fftools/cmdutils.c
@@ -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)
 {
-    while ((prev = av_codec_next(prev))) {
-        if (prev->id == id &&
-            (encoder ? av_codec_is_encoder(prev) : av_codec_is_decoder(prev)))
-            return prev;
+    const AVCodec *c;
+    while ((c = av_codec_iterate(iter))) {
+        if (c->id == id &&
+            (encoder ? av_codec_is_encoder(c) : av_codec_is_decoder(c)))
+            return c;
     }
     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)
 {
-    const AVCodec *codec = NULL;
+    void *iter = NULL;
+    const AVCodec *codec;
 
     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(")");
@@ -1570,7 +1572,8 @@  int show_codecs(void *optctx, const char *opt, const char *arg)
            " -------\n");
     for (i = 0; i < nb_codecs; i++) {
         const AVCodecDescriptor *desc = codecs[i];
-        const AVCodec *codec = NULL;
+        const AVCodec *codec;
+        void *iter = NULL;
 
         if (strstr(desc->name, "_deprecated"))
             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
          * 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)) {
                 print_codecs_for_id(desc->id, 0);
                 break;
             }
         }
-        codec = NULL;
-        while ((codec = next_codec_for_id(desc->id, codec, 1))) {
+        iter = NULL;
+        while ((codec = next_codec_for_id(desc->id, &iter, 1))) {
             if (strcmp(codec->name, desc->name)) {
                 print_codecs_for_id(desc->id, 1);
                 break;
@@ -1626,9 +1629,10 @@  static void print_codecs(int encoder)
            encoder ? "Encoders" : "Decoders");
     for (i = 0; i < nb_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((codec->capabilities & AV_CODEC_CAP_FRAME_THREADS) ? "F" : ".");
             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)
         print_codec(codec);
     else if ((desc = avcodec_descriptor_get_by_name(name))) {
+        void *iter = NULL;
         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;
             print_codec(codec);
         }