03 Mar, 2015

1 commit

  • The cos table used at fixp-arith.h has only 8 bits of precision.
    That causes problems if it is reused on other drivers.

    As some media drivers require a higher precision sin/cos
    implementation, replace the current implementation by one that
    will provide 32 bits precision.

    The values generated by the new implementation matches the
    32 bit precision of glibc's sin for an angle measured in
    integer degrees.

    It also provides support for fractional angles via linear
    interpolation. On experimental calculus, when used a table
    with a 0.001 degree angle, the maximum error for sin is
    0.000038, which is likely good enough for practical purposes.

    There are some logic there that seems to be specific to the
    usage inside ff-memless.c. Move those logic to there, as they're
    not needed elsewhere.

    Cc: Hans de Goede
    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Prashant Laddha
    Signed-off-by: Hans Verkuil
    Acked-by: Dmitry Torokhov
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     

14 May, 2012

1 commit