Merge commit '97cfe1d8bd1968143e2ba9aa46ebe9504a835e24'
authorJames Almer <jamrial@gmail.com>
Wed, 1 Nov 2017 23:05:09 +0000 (20:05 -0300)
committerJames Almer <jamrial@gmail.com>
Wed, 1 Nov 2017 23:05:09 +0000 (20:05 -0300)
* commit '97cfe1d8bd1968143e2ba9aa46ebe9504a835e24':
  Convert all AVClass struct declarations to designated initializers.

Merged-by: James Almer <jamrial@gmail.com>
14 files changed:
1  2 
libavcodec/aacenc.c
libavcodec/libfdk-aacdec.c
libavcodec/libfdk-aacenc.c
libavcodec/libopencore-amr.c
libavcodec/libopenh264enc.c
libavcodec/libvo-amrwbenc.c
libavcodec/mpeg4videodec.c
libavcodec/s302m.c
libavcodec/v210dec.c
libavutil/eval.c
libavutil/file.c
libavutil/file_open.c
libavutil/imgutils.c
libavutil/tests/opt.c

@@@ -1066,17 -803,12 +1066,17 @@@ static const AVOption aacenc_options[] 
  };
  
  static const AVClass aacenc_class = {
-     "AAC encoder",
-     av_default_item_name,
-     aacenc_options,
-     LIBAVUTIL_VERSION_INT,
+     .class_name = "AAC encoder",
+     .item_name  = av_default_item_name,
+     .option     = aacenc_options,
+     .version    = LIBAVUTIL_VERSION_INT,
  };
  
 +static const AVCodecDefault aac_encode_defaults[] = {
 +    { "b", "0" },
 +    { NULL }
 +};
 +
  AVCodec ff_aac_encoder = {
      .name           = "aac",
      .long_name      = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
@@@ -79,7 -79,10 +79,10 @@@ static const AVOption fdk_aac_dec_optio
  };
  
  static const AVClass fdk_aac_dec_class = {
-     "libfdk-aac decoder", av_default_item_name, fdk_aac_dec_options, LIBAVUTIL_VERSION_INT
+     .class_name = "libfdk-aac decoder",
+     .item_name  = av_default_item_name,
+     .option     = fdk_aac_dec_options,
 -    .version    = LIBAVUTIL_VERSION_INT
++    .version    = LIBAVUTIL_VERSION_INT,
  };
  
  static int get_stream_info(AVCodecContext *avctx)
Simple merge
@@@ -182,8 -183,11 +182,11 @@@ static const AVOption options[] = 
      { NULL }
  };
  
 -static const AVClass class = {
 +static const AVClass amrnb_class = {
-     "libopencore_amrnb", av_default_item_name, options, LIBAVUTIL_VERSION_INT
+     .class_name = "libopencore_amrnb",
+     .item_name  = av_default_item_name,
+     .option     = options,
+     .version    = LIBAVUTIL_VERSION_INT,
  };
  
  static av_cold int amr_nb_encode_init(AVCodecContext *avctx)
@@@ -75,7 -75,10 +75,10 @@@ static const AVOption options[] = 
  };
  
  static const AVClass class = {
-     "libopenh264enc", av_default_item_name, options, LIBAVUTIL_VERSION_INT
 -    .class_name = "libopenh264enc",
++    .class_name = "libvo_amrwbenc",
+     .item_name  = av_default_item_name,
+     .option     = options,
+     .version    = LIBAVUTIL_VERSION_INT,
  };
  
  static av_cold int svc_encode_close(AVCodecContext *avctx)
@@@ -45,8 -45,11 +45,11 @@@ static const AVOption options[] = 
      { NULL }
  };
  
 -static const AVClass class = {
 +static const AVClass amrwb_class = {
-     "libvo_amrwbenc", av_default_item_name, options, LIBAVUTIL_VERSION_INT
+     .class_name = "libvo_amrwbenc",
+     .item_name  = av_default_item_name,
+     .option     = options,
+     .version    = LIBAVUTIL_VERSION_INT,
  };
  
  static int get_wb_bitrate_mode(int bitrate, void *log_ctx)
@@@ -2816,19 -2613,6 +2816,19 @@@ static av_cold int decode_init(AVCodecC
      return 0;
  }
  
-     "MPEG4 Video Decoder",
-     av_default_item_name,
-     mpeg4_options,
-     LIBAVUTIL_VERSION_INT,
 +static const AVOption mpeg4_options[] = {
 +    {"quarter_sample", "1/4 subpel MC", offsetof(MpegEncContext, quarter_sample), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0},
 +    {"divx_packed", "divx style packed b frames", offsetof(MpegEncContext, divx_packed), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0},
 +    {NULL}
 +};
 +
 +static const AVClass mpeg4_class = {
++    .class_name = "MPEG4 Video Decoder",
++    .item_name  = av_default_item_name,
++    .option     = mpeg4_options,
++    .version    = LIBAVUTIL_VERSION_INT,
 +};
 +
  AVCodec ff_mpeg4_decoder = {
      .name                  = "mpeg4",
      .long_name             = NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),
@@@ -201,23 -140,6 +201,23 @@@ static int s302m_decode_frame(AVCodecCo
      return avpkt->size;
  }
  
-     "SMPTE 302M Decoder",
-     av_default_item_name,
-     s302m_options,
-     LIBAVUTIL_VERSION_INT,
 +#define FLAGS AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_DECODING_PARAM
 +static const AVOption s302m_options[] = {
 +    {"non_pcm_mode", "Chooses what to do with NON-PCM", offsetof(S302Context, non_pcm_mode), AV_OPT_TYPE_INT, {.i64 = 3}, 0, 3, FLAGS, "non_pcm_mode"},
 +    {"copy"        , "Pass NON-PCM through unchanged"     , 0, AV_OPT_TYPE_CONST, {.i64 = 0}, 0, 3, FLAGS, "non_pcm_mode"},
 +    {"drop"        , "Drop NON-PCM"                       , 0, AV_OPT_TYPE_CONST, {.i64 = 1}, 0, 3, FLAGS, "non_pcm_mode"},
 +    {"decode_copy" , "Decode if possible else passthrough", 0, AV_OPT_TYPE_CONST, {.i64 = 2}, 0, 3, FLAGS, "non_pcm_mode"},
 +    {"decode_drop" , "Decode if possible else drop"       , 0, AV_OPT_TYPE_CONST, {.i64 = 3}, 0, 3, FLAGS, "non_pcm_mode"},
 +    {NULL}
 +};
 +
 +static const AVClass s302m_class = {
++    .class_name = "SMPTE 302M Decoder",
++    .item_name  = av_default_item_name,
++    .option     = s302m_options,
++    .version    = LIBAVUTIL_VERSION_INT,
 +};
 +
  AVCodec ff_s302m_decoder = {
      .name           = "s302m",
      .long_name      = NULL_IF_CONFIG_SMALL("SMPTE 302M"),
@@@ -154,20 -106,6 +154,20 @@@ static int decode_frame(AVCodecContext 
      return avpkt->size;
  }
  
-     "V210 Decoder",
-     av_default_item_name,
-     v210dec_options,
-     LIBAVUTIL_VERSION_INT,
 +#define V210DEC_FLAGS AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM
 +static const AVOption v210dec_options[] = {
 +    {"custom_stride", "Custom V210 stride", offsetof(V210DecContext, custom_stride), AV_OPT_TYPE_INT,
 +     {.i64 = 0}, INT_MIN, INT_MAX, V210DEC_FLAGS},
 +    {NULL}
 +};
 +
 +static const AVClass v210dec_class = {
++    .class_name = "V210 Decoder",
++    .item_name  = av_default_item_name,
++    .option     = v210dec_options,
++    .version    = LIBAVUTIL_VERSION_INT,
 +};
 +
  AVCodec ff_v210_decoder = {
      .name           = "v210",
      .long_name      = NULL_IF_CONFIG_SMALL("Uncompressed 4:2:2 10-bit"),
@@@ -54,46 -49,39 +54,53 @@@ typedef struct Parser 
      int log_offset;
      void *log_ctx;
  #define VARS 10
 -    double var[VARS];
 +    double *var;
  } Parser;
  
- static const AVClass eval_class = { "Eval", av_default_item_name, NULL, LIBAVUTIL_VERSION_INT, offsetof(Parser,log_offset), offsetof(Parser,log_ctx) };
 -static const AVClass class = {
++static const AVClass eval_class = {
+     .class_name                = "Eval",
+     .item_name                 = av_default_item_name,
+     .option                    = NULL,
+     .version                   = LIBAVUTIL_VERSION_INT,
+     .log_level_offset_offset   = offsetof(Parser, log_offset),
+     .parent_log_context_offset = offsetof(Parser, log_ctx),
+ };
  
 -static const int8_t si_prefixes['z' - 'E' + 1] = {
 -    ['y'-'E']= -24,
 -    ['z'-'E']= -21,
 -    ['a'-'E']= -18,
 -    ['f'-'E']= -15,
 -    ['p'-'E']= -12,
 -    ['n'-'E']= - 9,
 -    ['u'-'E']= - 6,
 -    ['m'-'E']= - 3,
 -    ['c'-'E']= - 2,
 -    ['d'-'E']= - 1,
 -    ['h'-'E']=   2,
 -    ['k'-'E']=   3,
 -    ['K'-'E']=   3,
 -    ['M'-'E']=   6,
 -    ['G'-'E']=   9,
 -    ['T'-'E']=  12,
 -    ['P'-'E']=  15,
 -    ['E'-'E']=  18,
 -    ['Z'-'E']=  21,
 -    ['Y'-'E']=  24,
 +static const struct {
 +    double bin_val;
 +    double dec_val;
 +    int8_t exp;
 +} si_prefixes['z' - 'E' + 1] = {
 +    ['y'-'E']= { 8.271806125530276749e-25, 1e-24, -24 },
 +    ['z'-'E']= { 8.4703294725430034e-22, 1e-21, -21 },
 +    ['a'-'E']= { 8.6736173798840355e-19, 1e-18, -18 },
 +    ['f'-'E']= { 8.8817841970012523e-16, 1e-15, -15 },
 +    ['p'-'E']= { 9.0949470177292824e-13, 1e-12, -12 },
 +    ['n'-'E']= { 9.3132257461547852e-10, 1e-9,  -9 },
 +    ['u'-'E']= { 9.5367431640625e-7, 1e-6, -6 },
 +    ['m'-'E']= { 9.765625e-4, 1e-3, -3 },
 +    ['c'-'E']= { 9.8431332023036951e-3, 1e-2, -2 },
 +    ['d'-'E']= { 9.921256574801246e-2, 1e-1, -1 },
 +    ['h'-'E']= { 1.0159366732596479e2, 1e2, 2 },
 +    ['k'-'E']= { 1.024e3, 1e3, 3 },
 +    ['K'-'E']= { 1.024e3, 1e3, 3 },
 +    ['M'-'E']= { 1.048576e6, 1e6, 6 },
 +    ['G'-'E']= { 1.073741824e9, 1e9, 9 },
 +    ['T'-'E']= { 1.099511627776e12, 1e12, 12 },
 +    ['P'-'E']= { 1.125899906842624e15, 1e15, 15 },
 +    ['E'-'E']= { 1.152921504606847e18, 1e18, 18 },
 +    ['Z'-'E']= { 1.1805916207174113e21, 1e21, 21 },
 +    ['Y'-'E']= { 1.2089258196146292e24, 1e24, 24 },
 +};
 +
 +static const struct {
 +    const char *name;
 +    double value;
 +} constants[] = {
 +    { "E",   M_E   },
 +    { "PI",  M_PI  },
 +    { "PHI", M_PHI },
 +    { "QP2LAMBDA", FF_QP2LAMBDA },
  };
  
  double av_strtod(const char *numstr, char **tail)
Simple merge
@@@ -91,96 -86,3 +91,100 @@@ int avpriv_open(const char *filename, i
  
      return fd;
  }
-     "TEMPFILE", av_default_item_name, NULL, LIBAVUTIL_VERSION_INT,
-     offsetof(FileLogContext, log_offset), offsetof(FileLogContext, log_ctx)
 +
 +typedef struct FileLogContext {
 +    const AVClass *class;
 +    int   log_offset;
 +    void *log_ctx;
 +} FileLogContext;
 +
 +static const AVClass file_log_ctx_class = {
++    .class_name                = "TEMPFILE",
++    .item_name                 = av_default_item_name,
++    .option                    = NULL,
++    .version                   = LIBAVUTIL_VERSION_INT,
++    .log_level_offset_offset   = offsetof(FileLogContext, log_offset),
++    .parent_log_context_offset = offsetof(FileLogContext, log_ctx),
 +};
 +
 +int avpriv_tempfile(const char *prefix, char **filename, int log_offset, void *log_ctx)
 +{
 +    FileLogContext file_log_ctx = { &file_log_ctx_class, log_offset, log_ctx };
 +    int fd = -1;
 +#if !HAVE_MKSTEMP
 +    void *ptr= tempnam(NULL, prefix);
 +    if(!ptr)
 +        ptr= tempnam(".", prefix);
 +    *filename = av_strdup(ptr);
 +#undef free
 +    free(ptr);
 +#else
 +    size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XXXXXX\0" */
 +    *filename  = av_malloc(len);
 +#endif
 +    /* -----common section-----*/
 +    if (!*filename) {
 +        av_log(&file_log_ctx, AV_LOG_ERROR, "ff_tempfile: Cannot allocate file name\n");
 +        return AVERROR(ENOMEM);
 +    }
 +#if !HAVE_MKSTEMP
 +#   ifndef O_BINARY
 +#       define O_BINARY 0
 +#   endif
 +#   ifndef O_EXCL
 +#       define O_EXCL 0
 +#   endif
 +    fd = open(*filename, O_RDWR | O_BINARY | O_CREAT | O_EXCL, 0600);
 +#else
 +    snprintf(*filename, len, "/tmp/%sXXXXXX", prefix);
 +    fd = mkstemp(*filename);
 +#if defined(_WIN32) || defined (__ANDROID__)
 +    if (fd < 0) {
 +        snprintf(*filename, len, "./%sXXXXXX", prefix);
 +        fd = mkstemp(*filename);
 +    }
 +#endif
 +#endif
 +    /* -----common section-----*/
 +    if (fd < 0) {
 +        int err = AVERROR(errno);
 +        av_log(&file_log_ctx, AV_LOG_ERROR, "ff_tempfile: Cannot open temporary file %s\n", *filename);
 +        av_freep(filename);
 +        return err;
 +    }
 +    return fd; /* success */
 +}
 +
 +FILE *av_fopen_utf8(const char *path, const char *mode)
 +{
 +    int fd;
 +    int access;
 +    const char *m = mode;
 +
 +    switch (*m++) {
 +    case 'r': access = O_RDONLY; break;
 +    case 'w': access = O_CREAT|O_WRONLY|O_TRUNC; break;
 +    case 'a': access = O_CREAT|O_WRONLY|O_APPEND; break;
 +    default :
 +        errno = EINVAL;
 +        return NULL;
 +    }
 +    while (*m) {
 +        if (*m == '+') {
 +            access &= ~(O_RDONLY | O_WRONLY);
 +            access |= O_RDWR;
 +        } else if (*m == 'b') {
 +#ifdef O_BINARY
 +            access |= O_BINARY;
 +#endif
 +        } else if (*m) {
 +            errno = EINVAL;
 +            return NULL;
 +        }
 +        m++;
 +    }
 +    fd = avpriv_open(path, access, 0666);
 +    if (fd == -1)
 +        return NULL;
 +    return fdopen(fd, mode);
 +}
Simple merge
@@@ -98,16 -59,11 +98,16 @@@ static const char *test_get_name(void *
  }
  
  static const AVClass test_class = {
-     "TestContext",
-     test_get_name,
-     test_options
+     .class_name = "TestContext",
+     .item_name  = test_get_name,
+     .option     = test_options,
  };
  
 +static void log_callback_help(void *ptr, int level, const char *fmt, va_list vl)
 +{
 +    vfprintf(stdout, fmt, vl);
 +}
 +
  int main(void)
  {
      int i;