• Show log

    Commit

  • Hash : c519d7b6
    Author : DRC
    Date : 2024-09-05T11:10:44

    Don't ignore JPEG buf size with TJPARAM_NOREALLOC
    
    Since the introduction of TJFLAG_NOREALLOC in libjpeg-turbo 1.2.x, the
    TurboJPEG C API documentation has (confusingly) stated that:
    
    - if the JPEG buffer pointer points to a pre-allocated buffer, then the
    JPEG buffer size must be specified, and
    
    - the JPEG buffer size should be specified if the JPEG buffer is
    pre-allocated to an arbitrary size.
    
    The documentation never explicitly stated that the JPEG buffer size
    should be specified if the JPEG buffer is pre-allocated to a worst-case
    size, but since focus does not imply exclusion, it also never explicitly
    stated the reverse.  Furthermore, the documentation never stated that
    this was contingent upon TJPARAM_NOREALLOC/TJFLAG_NOREALLOC.  However,
    effectively the compression and lossless transformation functions
    ignored the JPEG buffer size(s) passed to them, and assumed that the
    JPEG buffer(s) had been allocated to a worst-case size, if
    TJPARAM_NOREALLOC/TJFLAG_NOREALLOC was set.  This behavior was an
    accidental and undocumented throwback to libjpeg-turbo 1.1.x, in which
    the tjCompress() function provided no way to specify the JPEG buffer
    size.  It was always a bad idea for applications to rely upon that
    behavior (although our own TJBench application unfortunately did.)
    However, if such applications exist in the wild, the new behavior would
    constitute a breaking change, so it has been introduced only into
    libjpeg-turbo 3.1.x and only into TurboJPEG 3 API functions.  The
    previous behavior has been retained when calling functions from the
    TurboJPEG 2.1.x API and prior versions.
    
    Did I mention that APIs are hard?
    

  • Properties

  • Git HTTP https://git.kmx.io/kc3-lang/libjpeg-turbo.git
    Git SSH git@git.kmx.io:kc3-lang/libjpeg-turbo.git
    Public access ? public
    Description

    Fork of libjpeg with SIMD

    Users
    thodg_m kc3_lang_org thodg_w www_kmx_io thodg_l thodg
    Tags