Merge commit 'bae557edcea996328e8ff48b9e074a4210f7e6b4'
authorMichael Niedermayer <michaelni@gmx.at>
Fri, 17 Oct 2014 19:00:08 +0000 (21:00 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Fri, 17 Oct 2014 19:13:01 +0000 (21:13 +0200)
* commit 'bae557edcea996328e8ff48b9e074a4210f7e6b4':
  dump: display codec tags when available

Conflicts:
libavcodec/utils.c

See: d2d7b7134fc387837d51aa1d7f3dbe090d35e8b4
Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/utils.c

index 9f65340d93116eddd892f7a15c44beb2a0228ead,95d2193abc80bc4bd609b06c11d3e367926af702..f040dae7f407b54bf1543f84c79e0e304eada715
@@@ -2970,36 -1907,28 +2970,37 @@@ void avcodec_string(char *buf, int buf_
      int bitrate;
      int new_line = 0;
      AVRational display_aspect_ratio;
 +    const char *separator = enc->dump_separator ? (const char *)enc->dump_separator : ", ";
  
 -    if (enc->codec)
 -        p = enc->codec;
 -    else if (encode)
 -        p = avcodec_find_encoder(enc->codec_id);
 -    else
 -        p = avcodec_find_decoder(enc->codec_id);
 -
 -    if (p) {
 -        codec_name = p->name;
 -        profile = av_get_profile_name(p, enc->profile);
 -    } else if (enc->codec_id == AV_CODEC_ID_MPEG2TS) {
 -        /* fake mpeg2 transport stream codec (currently not
 -         * registered) */
 -        codec_name = "mpeg2ts";
 -    } else {
 -        /* output avi tags */
 +    if (!buf || buf_size <= 0)
 +        return;
 +    codec_type = av_get_media_type_string(enc->codec_type);
 +    codec_name = avcodec_get_name(enc->codec_id);
 +    if (enc->profile != FF_PROFILE_UNKNOWN) {
 +        if (enc->codec)
 +            p = enc->codec;
 +        else
 +            p = encode ? avcodec_find_encoder(enc->codec_id) :
 +                        avcodec_find_decoder(enc->codec_id);
 +        if (p)
 +            profile = av_get_profile_name(p, enc->profile);
 +    }
 +
 +    snprintf(buf, buf_size, "%s: %s", codec_type ? codec_type : "unknown",
 +             codec_name);
 +    buf[0] ^= 'a' ^ 'A'; /* first letter in uppercase */
 +
 +    if (enc->codec && strcmp(enc->codec->name, codec_name))
 +        snprintf(buf + strlen(buf), buf_size - strlen(buf), " (%s)", enc->codec->name);
 +
 +    if (profile)
 +        snprintf(buf + strlen(buf), buf_size - strlen(buf), " (%s)", profile);
++
 +    if (enc->codec_tag) {
          char tag_buf[32];
          av_get_codec_tag_string(tag_buf, sizeof(tag_buf), enc->codec_tag);
 -        snprintf(buf1, sizeof(buf1), "%s / 0x%04X", tag_buf, enc->codec_tag);
 -        codec_name = buf1;
 +        snprintf(buf + strlen(buf), buf_size - strlen(buf),
 +                 " (%s / 0x%04X)", tag_buf, enc->codec_tag);
      }
  
      switch (enc->codec_type) {
          }
          break;
      case AVMEDIA_TYPE_AUDIO:
 -        snprintf(buf, buf_size,
 -                 "Audio: %s",
 -                 codec_name);
 -        if (profile)
 -            snprintf(buf + strlen(buf), buf_size - strlen(buf),
 -                     " (%s)", profile);
 -        if (enc->codec_tag) {
 -            char tag_buf[32];
 -            av_get_codec_tag_string(tag_buf, sizeof(tag_buf), enc->codec_tag);
 -            snprintf(buf + strlen(buf), buf_size - strlen(buf),
 -                     " [%s / 0x%04X]", tag_buf, enc->codec_tag);
 -        }
 +        av_strlcat(buf, separator, buf_size);
 -        av_strlcat(buf, "\n      ", buf_size);
          if (enc->sample_rate) {
              snprintf(buf + strlen(buf), buf_size - strlen(buf),
                       "%d Hz, ", enc->sample_rate);