On Friday, 26 May 2023 at 13:18:15 UTC, Steven Schveighoffer wrote:
[...]
This worked for me:

```d
char[4] fourC(string s)
{
    if(s.length >= 4)
        return s[0 .. 4];

Silent truncation? Non-ASCII chars?

    char[4] res = 0;

According to [1], [2] or [3] that should read

```
    char[4] res = ' ';
```

    res[0 .. s.length] = s;
    return res;
}
```

[1] Multimedia Programming Interface and Data Specifications 1.0
    IBM Corporation and Microsoft Corporation
    August 1991, p. 11
https://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Docs/riffmci.pdf

[2] http://ffmpeg.org/doxygen/trunk/raw_8c_source.html#l00050

[3] https://en.wikipedia.org/wiki/FourCC
"The byte sequence is usually restricted to ASCII printable characters, with space characters reserved for padding shorter sequences. [...] Some FourCCs however, do contain non-printable characters, and are not human-readable without special formatting for display; for example, 10bit Y'CbCr 4:2:2 video can have a FourCC of ('Y', '3', 10, 10) which ffmpeg displays as rawvideo (Y3[10] [10] / 0x0A0A3359), yuv422p10le."

Reply via email to