int ff_vorbiscomment_write(uint8_t **p, AVDictionary **m,

                           const char *vendor_string)

{

    bytestream_put_le32(p, strlen(vendor_string));

    bytestream_put_buffer(p, vendor_string, strlen(vendor_string));

    if (*m) {

        int count = av_dict_count(*m);

        AVDictionaryEntry *tag = NULL;

        bytestream_put_le32(p, count);

        while ((tag = av_dict_get(*m, "", tag, AV_DICT_IGNORE_SUFFIX))) {

            unsigned int len1 = strlen(tag->key);

            unsigned int len2 = strlen(tag->value);

            bytestream_put_le32(p, len1+1+len2);

            bytestream_put_buffer(p, tag->key, len1);

            bytestream_put_byte(p, '=');

            bytestream_put_buffer(p, tag->value, len2);

        }

    } else

        bytestream_put_le32(p, 0);

    return 0;

}

int ff_vorbiscomment_write(uint8_t **p, AVDictionary **m,

                           const char *vendor_string)

{

    bytestream_put_le32(p, strlen(vendor_string));

    bytestream_put_buffer(p, vendor_string, strlen(vendor_string));

    if (*m) {

        int count = av_dict_count(*m);

        AVDictionaryEntry *tag = NULL;

        bytestream_put_le32(p, count);

        while ((tag = av_dict_get(*m, "", tag, AV_DICT_IGNORE_SUFFIX))) {

            unsigned int len1 = strlen(tag->key);

            unsigned int len2 = strlen(tag->value);

            bytestream_put_le32(p, len1+1+len2);

            bytestream_put_buffer(p, tag->key, len1);

            bytestream_put_byte(p, '=');

            bytestream_put_buffer(p, tag->value, len2);

        }

    } else

        bytestream_put_le32(p, 0);

    return 0;

}

int FUNC_0(uint8_t **VAR_0, AVDictionary **VAR_1,

                           const char *VAR_2)

{

    bytestream_put_le32(VAR_0, strlen(VAR_2));

    bytestream_put_buffer(VAR_0, VAR_2, strlen(VAR_2));

    if (*VAR_1) {

        int VAR_3 = av_dict_count(*VAR_1);

        AVDictionaryEntry *tag = NULL;

        bytestream_put_le32(VAR_0, VAR_3);

        while ((tag = av_dict_get(*VAR_1, "", tag, AV_DICT_IGNORE_SUFFIX))) {

            unsigned int VAR_4 = strlen(tag->key);

            unsigned int VAR_5 = strlen(tag->value);

            bytestream_put_le32(VAR_0, VAR_4+1+VAR_5);

            bytestream_put_buffer(VAR_0, tag->key, VAR_4);

            bytestream_put_byte(VAR_0, '=');

            bytestream_put_buffer(VAR_0, tag->value, VAR_5);

        }

    } else

        bytestream_put_le32(VAR_0, 0);

    return 0;

}

int FUNC_0(uint8_t **VAR_0, AVDictionary **VAR_1,
const char *VAR_2)
{ bytestream_put_le32(VAR_0, strlen(VAR_2)); bytestream_put_buffer(VAR_0, VAR_2, strlen(VAR_2)); if (*VAR_1) { int VAR_3 = av_dict_count(*VAR_1); AVDictionaryEntry *tag = NULL; bytestream_put_le32(VAR_0, VAR_3); while ((tag = av_dict_get(*VAR_1, "", tag, AV_DICT_IGNORE_SUFFIX))) { unsigned int VAR_4 = strlen(tag->key); unsigned int VAR_5 = strlen(tag->value); bytestream_put_le32(VAR_0, VAR_4+1+VAR_5); bytestream_put_buffer(VAR_0, tag->key, VAR_4); bytestream_put_byte(VAR_0, '='); bytestream_put_buffer(VAR_0, tag->value, VAR_5); } } else bytestream_put_le32(VAR_0, 0); return 0; }