[FFmpeg-devel] [PATCH] mp3enc: write ISO8859-1 instead of UTF-16 when possible

Reimar Döffinger Reimar.Doeffinger
Sat Feb 5 21:37:21 CET 2011


On Sat, Feb 05, 2011 at 09:28:22PM +0100, Anton Khirnov wrote:
> +static int string_is_ascii(const uint8_t *str)
> +{
> +    int ret = 1;
> +    do {
> +        if (*str > 127)
> +            ret = 0;

It's quite silly and inefficient to continue parsing after that.

> +    } while (*str++);
> +    return ret;

In general it would be short/simpler/faster as

while (*str && *str < 128) str++;
return !*str;

> @@ -92,6 +102,12 @@ static int id3v2_put_ttag(AVFormatContext *s, const char *str1, const char *str2
>      if (url_open_dyn_buf(&dyn_buf) < 0)
>          return AVERROR(ENOMEM);
>  
> +    /* check if the strings are ASCII-only and use UTF16 only if
> +     * they're not */
> +    if (enc == ID3v2_ENCODING_UTF16BOM && string_is_ascii(str1))
> +        if ((str2 && string_is_ascii(str2)) || !str2)

enc == ID3v2_ENCODING_UTF16BOM && string_is_ascii(str1) &&
(!str2 || string_is_ascii(str2))



More information about the ffmpeg-devel mailing list