Commit 67b76310 authored by Stefano Sabatini's avatar Stefano Sabatini

lavc: prettify printing of some codec tags which contains non alphanumeric characters

Make av_get_codec_tag_string() show codec tag string characters in a more
intelligible ways. For example the ascii char "@" is used as a number, so
should be displayed like "[64]" rather than as a printable character.

Apart alphanumeric chars, only the characters ' ' and '.' are used
literally in codec tags, all the other characters represent numbers.
parent fa6cb2fd
...@@ -1774,9 +1774,14 @@ size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_ta ...@@ -1774,9 +1774,14 @@ size_t av_get_codec_tag_string(char *buf, size_t buf_size, unsigned int codec_ta
{ {
int i, len, ret = 0; int i, len, ret = 0;
#define IS_PRINT(x) \
(((x) >= '0' && (x) <= '9') || \
((x) >= 'a' && (x) <= 'z') || ((x) >= 'A' && (x) <= 'Z') || \
((x) == '.' || (x) == ' '))
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
len = snprintf(buf, buf_size, len = snprintf(buf, buf_size,
isprint(codec_tag&0xFF) ? "%c" : "[%d]", codec_tag&0xFF); IS_PRINT(codec_tag&0xFF) ? "%c" : "[%d]", codec_tag&0xFF);
buf += len; buf += len;
buf_size = buf_size > len ? buf_size - len : 0; buf_size = buf_size > len ? buf_size - len : 0;
ret += len; ret += len;
......
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