[FFmpeg-devel] [PATCHv2] avutil/crc: avoid needless space wastage of hardcoded crc table

James Almer jamrial at gmail.com
Wed Dec 2 02:08:26 CET 2015


On 12/1/2015 9:53 PM, Ganesh Ajjanagadde wrote:
> There was no reason AFAIK for making AV_CRC_24_IEEE 12. This simply
> resulted in wasted space under --enable-hardcoded-tables:
> dynamic: 1318672 libavutil/libavutil.so.55
> old    : 1330680 libavutil/libavutil.so.55
> new    : 1326488 libavutil/libavutil.so.55
> 
> Minor version number is bumped, with ifdefry due to API breakage.
> 
> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
> ---
>  libavutil/crc.h     | 4 ++++
>  libavutil/version.h | 5 ++++-
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/libavutil/crc.h b/libavutil/crc.h
> index e86bf1d..9af4421 100644
> --- a/libavutil/crc.h
> +++ b/libavutil/crc.h
> @@ -40,7 +40,11 @@ typedef enum {
>      AV_CRC_32_IEEE,
>      AV_CRC_32_IEEE_LE,  /*< reversed bitorder version of AV_CRC_32_IEEE */
>      AV_CRC_16_ANSI_LE,  /*< reversed bitorder version of AV_CRC_16_ANSI */
> +#if FF_API_CRC_BIG_TABLE
>      AV_CRC_24_IEEE = 12,
> +#else
> +    AV_CRC_24_IEEE,
> +#endif /* FF_API_CRC_BIG_TABLE */
>      AV_CRC_MAX,         /*< Not part of public API! Do not use outside libavutil. */
>  }AVCRCId;
>  
> diff --git a/libavutil/version.h b/libavutil/version.h
> index e0ddfd2..67e778a 100644
> --- a/libavutil/version.h
> +++ b/libavutil/version.h
> @@ -56,7 +56,7 @@
>   */
>  
>  #define LIBAVUTIL_VERSION_MAJOR  55
> -#define LIBAVUTIL_VERSION_MINOR   9
> +#define LIBAVUTIL_VERSION_MINOR  10
>  #define LIBAVUTIL_VERSION_MICRO 100
>  
>  #define LIBAVUTIL_VERSION_INT   AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
> @@ -108,6 +108,9 @@
>  #ifndef FF_API_ERROR_FRAME
>  #define FF_API_ERROR_FRAME              (LIBAVUTIL_VERSION_MAJOR < 56)
>  #endif
> +#ifndef FF_API_CRC_BIG_TABLE
> +#define FF_API_CRC_BIG_TABLE            (LIBAVUTIL_VERSION_INT < AV_VERSION_INT(55, 10, 100))

This is wrong. With this check, FF_API_CRC_BIG_TABLE is false. The point
of these FF_API defines is to make sure they are true until the next major
bump. That's why you use LIBAVUTIL_VERSION_MAJOR < 56, like it's being
done for the rest.

> +#endif
>  
>  
>  /**
> 



More information about the ffmpeg-devel mailing list