libavformat/id3v2.c:227: error: Uninitialized Value
  The value read from tflags was never initialized.

libavformat/id3v2.c:227:13: 
225.         next = url_ftell(s->pb) + tlen;
226. 
227.         if (tflags & (ID3v2_FLAG_ENCRYPTION | ID3v2_FLAG_COMPRESSION)) {
                 ^
228.             av_log(s, AV_LOG_WARNING, "Skipping encrypted/compressed ID3v2 frame %s.\n", tag);
229.             url_fskip(s->pb, tlen);

void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags)
{
    int isv34, tlen, unsync;
    char tag[5];
    int64_t next;
    int taghdrlen;
    const char *reason;
    ByteIOContext pb;
    unsigned char *buffer = NULL;
    int buffer_size = 0;
    switch (version) {
    case 2:
        if (flags & 0x40) {
            reason = "compression";
            goto error;
        }
        isv34 = 0;
        taghdrlen = 6;
        break;
    case 3:
    case 4:
        isv34 = 1;
        taghdrlen = 10;
        break;
    default:
        reason = "version";
        goto error;
    }
    unsync = flags & 0x80;
    if (isv34 && flags & 0x40)
        url_fskip(s->pb, get_size(s->pb, 4));
    while (len >= taghdrlen) {
        unsigned int tflags;
        int tunsync = 0;
        if (isv34) {
            get_buffer(s->pb, tag, 4);
            tag[4] = 0;
            if(version==3){
                tlen = get_be32(s->pb);
            }else
                tlen = get_size(s->pb, 4);
            tflags = get_be16(s->pb);
            tunsync = tflags & ID3v2_FLAG_UNSYNCH;
        } else {
            get_buffer(s->pb, tag, 3);
            tag[3] = 0;
            tlen = get_be24(s->pb);
        }
        len -= taghdrlen + tlen;
        if (len < 0)
            break;
        next = url_ftell(s->pb) + tlen;
        if (tflags & (ID3v2_FLAG_ENCRYPTION | ID3v2_FLAG_COMPRESSION)) {
            av_log(s, AV_LOG_WARNING, "Skipping encrypted/compressed ID3v2 frame %s.\n", tag);
            url_fskip(s->pb, tlen);
        } else if (tag[0] == 'T') {
            if (unsync || tunsync) {
                int i, j;
                av_fast_malloc(&buffer, &buffer_size, tlen);
                for (i = 0, j = 0; i < tlen; i++, j++) {
                    buffer[j] = get_byte(s->pb);
                    if (j > 0 && !buffer[j] && buffer[j - 1] == 0xff) {
                        j--;
                    }
                }
                init_put_byte(&pb, buffer, j, 0, NULL, NULL, NULL, NULL);
                read_ttag(s, &pb, j, tag);
            } else {
                read_ttag(s, s->pb, tlen, tag);
            }
        }
        else if (!tag[0]) {
            if (tag[1])
                av_log(s, AV_LOG_WARNING, "invalid frame id, assuming padding");
            url_fskip(s->pb, tlen);
            break;
        }
        url_fseek(s->pb, next, SEEK_SET);
    }
    ff_metadata_conv(&s->metadata, NULL, ff_id3v2_metadata_conv);
    if (len > 0) {
        url_fskip(s->pb, len);
    }
    if (version == 4 && flags & 0x10)
        url_fskip(s->pb, 10);
    av_free(buffer);
    return;
  error:
    av_log(s, AV_LOG_INFO, "ID3v2.%d tag skipped, cannot handle %s\n", version, reason);
    url_fskip(s->pb, len);
    av_free(buffer);
}
['void ff_id3v2_parse(AVFormatContext *s, int len, uint8_t version, uint8_t flags)\n{\n    int isv34, tlen, unsync;\n    char tag[5];\n    int64_t next;\n    int taghdrlen;\n    const char *reason;\n    ByteIOContext pb;\n    unsigned char *buffer = NULL;\n    int buffer_size = 0;\n    switch (version) {\n    case 2:\n        if (flags & 0x40) {\n            reason = "compression";\n            goto error;\n        }\n        isv34 = 0;\n        taghdrlen = 6;\n        break;\n    case 3:\n    case 4:\n        isv34 = 1;\n        taghdrlen = 10;\n        break;\n    default:\n        reason = "version";\n        goto error;\n    }\n    unsync = flags & 0x80;\n    if (isv34 && flags & 0x40)\n        url_fskip(s->pb, get_size(s->pb, 4));\n    while (len >= taghdrlen) {\n        unsigned int tflags;\n        int tunsync = 0;\n        if (isv34) {\n            get_buffer(s->pb, tag, 4);\n            tag[4] = 0;\n            if(version==3){\n                tlen = get_be32(s->pb);\n            }else\n                tlen = get_size(s->pb, 4);\n            tflags = get_be16(s->pb);\n            tunsync = tflags & ID3v2_FLAG_UNSYNCH;\n        } else {\n            get_buffer(s->pb, tag, 3);\n            tag[3] = 0;\n            tlen = get_be24(s->pb);\n        }\n        len -= taghdrlen + tlen;\n        if (len < 0)\n            break;\n        next = url_ftell(s->pb) + tlen;\n        if (tflags & (ID3v2_FLAG_ENCRYPTION | ID3v2_FLAG_COMPRESSION)) {\n            av_log(s, AV_LOG_WARNING, "Skipping encrypted/compressed ID3v2 frame %s.\\n", tag);\n            url_fskip(s->pb, tlen);\n        } else if (tag[0] == \'T\') {\n            if (unsync || tunsync) {\n                int i, j;\n                av_fast_malloc(&buffer, &buffer_size, tlen);\n                for (i = 0, j = 0; i < tlen; i++, j++) {\n                    buffer[j] = get_byte(s->pb);\n                    if (j > 0 && !buffer[j] && buffer[j - 1] == 0xff) {\n                        j--;\n                    }\n                }\n                init_put_byte(&pb, buffer, j, 0, NULL, NULL, NULL, NULL);\n                read_ttag(s, &pb, j, tag);\n            } else {\n                read_ttag(s, s->pb, tlen, tag);\n            }\n        }\n        else if (!tag[0]) {\n            if (tag[1])\n                av_log(s, AV_LOG_WARNING, "invalid frame id, assuming padding");\n            url_fskip(s->pb, tlen);\n            break;\n        }\n        url_fseek(s->pb, next, SEEK_SET);\n    }\n    ff_metadata_conv(&s->metadata, NULL, ff_id3v2_metadata_conv);\n    if (len > 0) {\n        url_fskip(s->pb, len);\n    }\n    if (version == 4 && flags & 0x10)\n        url_fskip(s->pb, 10);\n    av_free(buffer);\n    return;\n  error:\n    av_log(s, AV_LOG_INFO, "ID3v2.%d tag skipped, cannot handle %s\\n", version, reason);\n    url_fskip(s->pb, len);\n    av_free(buffer);\n}']