On 09.08.2022 00:37, Timo Rothenpieler wrote:
The entire support for the format is removed from swscale in this case, so the function ending up empty doesn't matter.

I'll see if it can be added to half2float, but I can't even tell if it implements ieee floats, or something else.

Did a very straight forward implementation with unions:

static uint32_t half2float(uint16_t h, const uint32_t *mantissatable, const 
uint32_t *exponenttable,
                           const uint16_t *offsettable)
{
#if HAVE_FLOAT16
    union {
        uint16_t i;
        _Float16 f;
    } u16;
    union {
        uint32_t i;
        float f;
    } u32;
    u16.i = h;
    u32.f = u16.f;
    return u32.i;
#else
    uint32_t f;

    f = mantissatable[offsettable[h >> 10] + (h & 0x3ff)] + exponenttable[h >> 
10];

    return f;
#endif
}

Unfortunately, this makes all exr fate tests fail with differing output checksums. At least the checksums match between f16c SIMD version and fallback sse2 implementation.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to