• Andreas Rheinhardt's avatar
    avcodec/mpc8: Avoid code duplication when initializing VLCs · 83ff99ad
    Andreas Rheinhardt authored
    Up until now, VLCs that were part of an array of VLCs were often not
    initialized in a loop, but separately. The probable reason for this
    was that these VLCs differed slightly in the parameters to be used for
    them (i.e. the number of codes or the number of bits to be used
    differs), so that one would have to provide these parameters e.g. via
    arrays.
    
    Yet these problems have actually largely been solved by now: The length
    information is contained in a run-length encoded form that is the same
    for all VLCs and both the number of codes as well as the number of bits
    to use for each VLC can be easily derived from them.
    
    There is just one problem to be solved: When the underlying tables have
    a different number of elements, putting them into an array of arrays
    would be wasteful; using an array of pointers to the arrays would
    also be wasteful. Therefore this commit combines the tables into bigger
    tables. (Given that all the length tables have the same layout this
    applies only to the symbols tables.)
    
    Finally, the array containing the offset of the VLC's buffer in the big
    buffer has also been removed.
    Signed-off-by: 's avatarAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
    83ff99ad
mpc8huff.h 11.1 KB