Commit 3133fef0 authored by stefano's avatar stefano

Implement av_get_codec_tag_string() and use it in ffprobe.

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@23421 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent c0c50ba9
...@@ -120,7 +120,6 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx) ...@@ -120,7 +120,6 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx)
AVCodec *dec; AVCodec *dec;
char val_str[128]; char val_str[128];
AVMetadataTag *tag = NULL; AVMetadataTag *tag = NULL;
char a, b, c, d;
AVRational display_aspect_ratio; AVRational display_aspect_ratio;
printf("[STREAM]\n"); printf("[STREAM]\n");
...@@ -139,16 +138,9 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx) ...@@ -139,16 +138,9 @@ static void show_stream(AVFormatContext *fmt_ctx, int stream_idx)
printf("codec_time_base=%d/%d\n", dec_ctx->time_base.num, dec_ctx->time_base.den); printf("codec_time_base=%d/%d\n", dec_ctx->time_base.num, dec_ctx->time_base.den);
/* print AVI/FourCC tag */ /* print AVI/FourCC tag */
a = dec_ctx->codec_tag & 0xff; av_get_codec_tag_string(val_str, sizeof(val_str), dec_ctx->codec_tag);
b = dec_ctx->codec_tag>>8 & 0xff; printf("codec_tag_string=%s\n", val_str);
c = dec_ctx->codec_tag>>16 & 0xff; printf("codec_tag=0x%04x\n", dec_ctx->codec_tag);
d = dec_ctx->codec_tag>>24 & 0xff;
printf("codec_tag_string=");
if (isprint(a)) printf("%c", a); else printf("[%d]", a);
if (isprint(b)) printf("%c", b); else printf("[%d]", b);
if (isprint(c)) printf("%c", c); else printf("[%d]", c);
if (isprint(d)) printf("%c", d); else printf("[%d]", d);
printf("\ncodec_tag=0x%04x\n", dec_ctx->codec_tag);
switch (dec_ctx->codec_type) { switch (dec_ctx->codec_type) {
case AVMEDIA_TYPE_VIDEO: case AVMEDIA_TYPE_VIDEO:
......
...@@ -30,8 +30,8 @@ ...@@ -30,8 +30,8 @@
#include "libavutil/avutil.h" #include "libavutil/avutil.h"
#define LIBAVCODEC_VERSION_MAJOR 52 #define LIBAVCODEC_VERSION_MAJOR 52
#define LIBAVCODEC_VERSION_MINOR 72 #define LIBAVCODEC_VERSION_MINOR 73
#define LIBAVCODEC_VERSION_MICRO 1 #define LIBAVCODEC_VERSION_MICRO 0
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \ #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
LIBAVCODEC_VERSION_MINOR, \ LIBAVCODEC_VERSION_MINOR, \
...@@ -3093,6 +3093,15 @@ attribute_deprecated enum PixelFormat avcodec_get_pix_fmt(const char* name); ...@@ -3093,6 +3093,15 @@ attribute_deprecated enum PixelFormat avcodec_get_pix_fmt(const char* name);
*/ */
unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat pix_fmt); unsigned int avcodec_pix_fmt_to_codec_tag(enum PixelFormat pix_fmt);
/**
* Puts a string representing the codec tag codec_tag in buf.
*
* @param buf_size size in bytes of buf
* @return the length of the string that would have been generated if
* enough space had been available, excluding the trailing null
*/
size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_tag);
#define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */ #define FF_LOSS_RESOLUTION 0x0001 /**< loss due to resolution change */
#define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */ #define FF_LOSS_DEPTH 0x0002 /**< loss due to color depth change */
#define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */ #define FF_LOSS_COLORSPACE 0x0004 /**< loss due to color space conversion */
......
...@@ -802,6 +802,21 @@ static int get_bit_rate(AVCodecContext *ctx) ...@@ -802,6 +802,21 @@ static int get_bit_rate(AVCodecContext *ctx)
return bit_rate; return bit_rate;
} }
size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_tag)
{
int i, len, ret = 0;
for (i = 0; i < 4; i++) {
len = snprintf(buf, buf_size,
isprint(codec_tag&0xFF) ? "%c" : "[%d]", codec_tag&0xFF);
buf += len;
buf_size = buf_size > len ? buf_size - len : 0;
ret += len;
codec_tag>>=8;
}
return ret;
}
void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode) void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode)
{ {
const char *codec_name; const char *codec_name;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment