You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
Code clean-up for crc.c, lfg.c, log.c, random_see.d, rational.c and tree.c.
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This commit is contained in:
committed by
Ronald S. Bultje
parent
4a59eca97a
commit
425b45d4b0
@@ -56,7 +56,8 @@ static AVCRC av_crc_table[AV_CRC_MAX][257];
|
||||
* @param ctx_size size of ctx in bytes
|
||||
* @return <0 on failure
|
||||
*/
|
||||
int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size){
|
||||
int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size)
|
||||
{
|
||||
unsigned i, j;
|
||||
uint32_t c;
|
||||
|
||||
@@ -81,7 +82,8 @@ int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size){
|
||||
if (ctx_size >= sizeof(AVCRC) * 1024)
|
||||
for (i = 0; i < 256; i++)
|
||||
for (j = 0; j < 3; j++)
|
||||
ctx[256*(j+1) + i]= (ctx[256*j + i]>>8) ^ ctx[ ctx[256*j + i]&0xFF ];
|
||||
ctx[256 *(j + 1) + i] =
|
||||
(ctx[256 * j + i] >> 8) ^ ctx[ctx[256 * j + i] & 0xFF];
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
@@ -92,7 +94,8 @@ int av_crc_init(AVCRC *ctx, int le, int bits, uint32_t poly, int ctx_size){
|
||||
* @param crc_id ID of a standard CRC
|
||||
* @return a pointer to the CRC table or NULL on failure
|
||||
*/
|
||||
const AVCRC *av_crc_get_table(AVCRCId crc_id){
|
||||
const AVCRC *av_crc_get_table(AVCRCId crc_id)
|
||||
{
|
||||
#if !CONFIG_HARDCODED_TABLES
|
||||
if (!av_crc_table[crc_id][FF_ARRAY_ELEMS(av_crc_table[crc_id]) - 1])
|
||||
if (av_crc_init(av_crc_table[crc_id],
|
||||
@@ -112,7 +115,9 @@ const AVCRC *av_crc_get_table(AVCRCId crc_id){
|
||||
*
|
||||
* @see av_crc_init() "le" parameter
|
||||
*/
|
||||
uint32_t av_crc(const AVCRC *ctx, uint32_t crc, const uint8_t *buffer, size_t length){
|
||||
uint32_t av_crc(const AVCRC *ctx, uint32_t crc,
|
||||
const uint8_t *buffer, size_t length)
|
||||
{
|
||||
const uint8_t *end = buffer + length;
|
||||
|
||||
#if !CONFIG_SMALL
|
||||
@@ -122,10 +127,10 @@ uint32_t av_crc(const AVCRC *ctx, uint32_t crc, const uint8_t *buffer, size_t le
|
||||
|
||||
while (buffer < end - 3) {
|
||||
crc ^= av_le2ne32(*(const uint32_t *) buffer); buffer += 4;
|
||||
crc = ctx[3*256 + ( crc &0xFF)]
|
||||
^ctx[2*256 + ((crc>>8 )&0xFF)]
|
||||
^ctx[1*256 + ((crc>>16)&0xFF)]
|
||||
^ctx[0*256 + ((crc>>24) )];
|
||||
crc = ctx[3 * 256 + ( crc & 0xFF)] ^
|
||||
ctx[2 * 256 + ((crc >> 8 ) & 0xFF)] ^
|
||||
ctx[1 * 256 + ((crc >> 16) & 0xFF)] ^
|
||||
ctx[0 * 256 + ((crc >> 24) )];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -137,13 +142,15 @@ uint32_t av_crc(const AVCRC *ctx, uint32_t crc, const uint8_t *buffer, size_t le
|
||||
|
||||
#ifdef TEST
|
||||
#undef printf
|
||||
int main(void){
|
||||
int main(void)
|
||||
{
|
||||
uint8_t buf[1999];
|
||||
int i;
|
||||
int p[4][3] = { { AV_CRC_32_IEEE_LE, 0xEDB88320, 0x3D5CDD04 },
|
||||
{ AV_CRC_32_IEEE , 0x04C11DB7, 0xC0F5BAE0 },
|
||||
{ AV_CRC_16_ANSI , 0x8005 , 0x1FBB },
|
||||
{AV_CRC_8_ATM , 0x07, 0xE3 },};
|
||||
{ AV_CRC_8_ATM , 0x07 , 0xE3 }
|
||||
};
|
||||
const AVCRC *ctx;
|
||||
|
||||
for (i = 0; i < sizeof(buf); i++)
|
||||
|
@@ -27,12 +27,14 @@
|
||||
#include "intreadwrite.h"
|
||||
#include "attributes.h"
|
||||
|
||||
void av_cold av_lfg_init(AVLFG *c, unsigned int seed){
|
||||
void av_cold av_lfg_init(AVLFG *c, unsigned int seed)
|
||||
{
|
||||
uint8_t tmp[16] = { 0 };
|
||||
int i;
|
||||
|
||||
for (i = 8; i < 64; i += 4) {
|
||||
AV_WL32(tmp, seed); tmp[4]=i;
|
||||
AV_WL32(tmp, seed);
|
||||
tmp[4] = i;
|
||||
av_md5_sum(tmp, tmp, 16);
|
||||
c->state[i ] = AV_RL32(tmp);
|
||||
c->state[i + 1] = AV_RL32(tmp + 4);
|
||||
|
@@ -48,12 +48,14 @@ static const uint8_t color[]={0x41,0x41,0x11,0x03,9,9,9};
|
||||
static int use_color = -1;
|
||||
|
||||
#undef fprintf
|
||||
static void colored_fputs(int level, const char *str){
|
||||
static void colored_fputs(int level, const char *str)
|
||||
{
|
||||
if (use_color < 0) {
|
||||
#if defined(_WIN32) && !defined(__MINGW32CE__)
|
||||
CONSOLE_SCREEN_BUFFER_INFO con_info;
|
||||
con = GetStdHandle(STD_ERROR_HANDLE);
|
||||
use_color = (con != INVALID_HANDLE_VALUE) && !getenv("NO_COLOR") && !getenv("AV_LOG_FORCE_NOCOLOR");
|
||||
use_color = (con != INVALID_HANDLE_VALUE) && !getenv("NO_COLOR") &&
|
||||
!getenv("AV_LOG_FORCE_NOCOLOR");
|
||||
if (use_color) {
|
||||
GetConsoleScreenBufferInfo(con, &con_info);
|
||||
attr_orig = con_info.wAttributes;
|
||||
@@ -61,9 +63,11 @@ static void colored_fputs(int level, const char *str){
|
||||
}
|
||||
#elif HAVE_ISATTY
|
||||
use_color = !getenv("NO_COLOR") && !getenv("AV_LOG_FORCE_NOCOLOR") &&
|
||||
(getenv("TERM") && isatty(2) || getenv("AV_LOG_FORCE_COLOR"));
|
||||
(getenv("TERM") && isatty(2) ||
|
||||
getenv("AV_LOG_FORCE_COLOR"));
|
||||
#else
|
||||
use_color= getenv("AV_LOG_FORCE_COLOR") && !getenv("NO_COLOR") && !getenv("AV_LOG_FORCE_NOCOLOR");
|
||||
use_color = getenv("AV_LOG_FORCE_COLOR") && !getenv("NO_COLOR") &&
|
||||
!getenv("AV_LOG_FORCE_NOCOLOR");
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -76,7 +80,8 @@ static void colored_fputs(int level, const char *str){
|
||||
}
|
||||
}
|
||||
|
||||
const char* av_default_item_name(void* ptr){
|
||||
const char *av_default_item_name(void *ptr)
|
||||
{
|
||||
return (*(AVClass **) ptr)->class_name;
|
||||
}
|
||||
|
||||
@@ -94,12 +99,15 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
|
||||
#undef fprintf
|
||||
if (print_prefix && avc) {
|
||||
if (avc->parent_log_context_offset) {
|
||||
AVClass** parent= *(AVClass***)(((uint8_t*)ptr) + avc->parent_log_context_offset);
|
||||
AVClass** parent = *(AVClass ***) (((uint8_t *) ptr) +
|
||||
avc->parent_log_context_offset);
|
||||
if (parent && *parent) {
|
||||
snprintf(line, sizeof(line), "[%s @ %p] ", (*parent)->item_name(parent), parent);
|
||||
snprintf(line, sizeof(line), "[%s @ %p] ",
|
||||
(*parent)->item_name(parent), parent);
|
||||
}
|
||||
}
|
||||
snprintf(line + strlen(line), sizeof(line) - strlen(line), "[%s @ %p] ", avc->item_name(ptr), ptr);
|
||||
snprintf(line + strlen(line), sizeof(line) - strlen(line), "[%s @ %p] ",
|
||||
avc->item_name(ptr), ptr);
|
||||
}
|
||||
|
||||
vsnprintf(line + strlen(line), sizeof(line) - strlen(line), fmt, vl);
|
||||
@@ -107,10 +115,12 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
|
||||
print_prefix = strlen(line) && line[strlen(line) - 1] == '\n';
|
||||
|
||||
#if HAVE_ISATTY
|
||||
if(!is_atty) is_atty= isatty(2) ? 1 : -1;
|
||||
if (!is_atty)
|
||||
is_atty = isatty(2) ? 1 : -1;
|
||||
#endif
|
||||
|
||||
if(print_prefix && (flags & AV_LOG_SKIP_REPEATED) && !strncmp(line, prev, sizeof line)){
|
||||
if (print_prefix && (flags & AV_LOG_SKIP_REPEATED) &&
|
||||
!strncmp(line, prev, sizeof line)) {
|
||||
count++;
|
||||
if (is_atty == 1)
|
||||
fprintf(stderr, " Last message repeated %d times\r", count);
|
||||
@@ -124,14 +134,16 @@ void av_log_default_callback(void* ptr, int level, const char* fmt, va_list vl)
|
||||
av_strlcpy(prev, line, sizeof line);
|
||||
}
|
||||
|
||||
static void (*av_log_callback)(void*, int, const char*, va_list) = av_log_default_callback;
|
||||
static void (*av_log_callback)(void*, int, const char*, va_list) =
|
||||
av_log_default_callback;
|
||||
|
||||
void av_log(void* avcl, int level, const char *fmt, ...)
|
||||
{
|
||||
AVClass* avc = avcl ? *(AVClass **) avcl : NULL;
|
||||
va_list vl;
|
||||
va_start(vl, fmt);
|
||||
if(avc && avc->version >= (50<<16 | 15<<8 | 2) && avc->log_level_offset_offset && level>=AV_LOG_FATAL)
|
||||
if (avc && avc->version >= (50 << 16 | 15 << 8 | 2) &&
|
||||
avc->log_level_offset_offset && level >= AV_LOG_FATAL)
|
||||
level += *(int *) (((uint8_t *) avcl) + avc->log_level_offset_offset);
|
||||
av_vlog(avcl, level, fmt, vl);
|
||||
va_end(vl);
|
||||
|
@@ -33,7 +33,9 @@
|
||||
#include "mathematics.h"
|
||||
#include "rational.h"
|
||||
|
||||
int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max){
|
||||
int av_reduce(int *dst_num, int *dst_den,
|
||||
int64_t num, int64_t den, int64_t max)
|
||||
{
|
||||
AVRational a0 = { 0, 1 }, a1 = { 1, 0 };
|
||||
int sign = (num < 0) ^ (den < 0);
|
||||
int64_t gcd = av_gcd(FFABS(num), FFABS(den));
|
||||
@@ -75,25 +77,34 @@ int av_reduce(int *dst_num, int *dst_den, int64_t num, int64_t den, int64_t max)
|
||||
return den == 0;
|
||||
}
|
||||
|
||||
AVRational av_mul_q(AVRational b, AVRational c){
|
||||
av_reduce(&b.num, &b.den, b.num * (int64_t)c.num, b.den * (int64_t)c.den, INT_MAX);
|
||||
AVRational av_mul_q(AVRational b, AVRational c)
|
||||
{
|
||||
av_reduce(&b.num, &b.den,
|
||||
b.num * (int64_t) c.num,
|
||||
b.den * (int64_t) c.den, INT_MAX);
|
||||
return b;
|
||||
}
|
||||
|
||||
AVRational av_div_q(AVRational b, AVRational c){
|
||||
AVRational av_div_q(AVRational b, AVRational c)
|
||||
{
|
||||
return av_mul_q(b, (AVRational) { c.den, c.num });
|
||||
}
|
||||
|
||||
AVRational av_add_q(AVRational b, AVRational c) {
|
||||
av_reduce(&b.num, &b.den, b.num * (int64_t)c.den + c.num * (int64_t)b.den, b.den * (int64_t)c.den, INT_MAX);
|
||||
av_reduce(&b.num, &b.den,
|
||||
b.num * (int64_t) c.den +
|
||||
c.num * (int64_t) b.den,
|
||||
b.den * (int64_t) c.den, INT_MAX);
|
||||
return b;
|
||||
}
|
||||
|
||||
AVRational av_sub_q(AVRational b, AVRational c){
|
||||
AVRational av_sub_q(AVRational b, AVRational c)
|
||||
{
|
||||
return av_add_q(b, (AVRational) { -c.num, c.den });
|
||||
}
|
||||
|
||||
AVRational av_d2q(double d, int max){
|
||||
AVRational av_d2q(double d, int max)
|
||||
{
|
||||
AVRational a;
|
||||
#define LOG2 0.69314718055994530941723212145817656807550013436025
|
||||
int exponent;
|
||||
@@ -143,11 +154,14 @@ int main(void)
|
||||
for (b.num = -2; b.num <= 2; b.num++) {
|
||||
for (b.den = -2; b.den <= 2; b.den++) {
|
||||
int c = av_cmp_q(a,b);
|
||||
double d= av_q2d(a) == av_q2d(b) ? 0 : (av_q2d(a) - av_q2d(b));
|
||||
double d = av_q2d(a) == av_q2d(b) ?
|
||||
0 : (av_q2d(a) - av_q2d(b));
|
||||
if (d > 0) d = 1;
|
||||
else if (d < 0) d = -1;
|
||||
else if (d != d) d = INT_MIN;
|
||||
if(c!=d) av_log(0, AV_LOG_ERROR, "%d/%d %d/%d, %d %f\n", a.num, a.den, b.num, b.den, c,d);
|
||||
if (c != d)
|
||||
av_log(0, AV_LOG_ERROR, "%d/%d %d/%d, %d %f\n", a.num,
|
||||
a.den, b.num, b.den, c,d);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -29,7 +29,9 @@ typedef struct AVTreeNode{
|
||||
|
||||
const int av_tree_node_size = sizeof(AVTreeNode);
|
||||
|
||||
void *av_tree_find(const AVTreeNode *t, void *key, int (*cmp)(void *key, const void *b), void *next[2]){
|
||||
void *av_tree_find(const AVTreeNode *t, void *key,
|
||||
int (*cmp)(void *key, const void *b), void *next[2])
|
||||
{
|
||||
if (t) {
|
||||
unsigned int v = cmp(key, t->elem);
|
||||
if (v) {
|
||||
@@ -46,7 +48,9 @@ void *av_tree_find(const AVTreeNode *t, void *key, int (*cmp)(void *key, const v
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void *av_tree_insert(AVTreeNode **tp, void *key, int (*cmp)(void *key, const void *b), AVTreeNode **next){
|
||||
void *av_tree_insert(AVTreeNode **tp, void *key,
|
||||
int (*cmp)(void *key, const void *b), AVTreeNode **next)
|
||||
{
|
||||
AVTreeNode *t = *tp;
|
||||
if (t) {
|
||||
unsigned int v = cmp(t->elem, key);
|
||||
@@ -117,7 +121,8 @@ void *av_tree_insert(AVTreeNode **tp, void *key, int (*cmp)(void *key, const voi
|
||||
}
|
||||
return ret;
|
||||
} else {
|
||||
*tp= *next; *next= NULL;
|
||||
*tp = *next;
|
||||
*next = NULL;
|
||||
if (*tp) {
|
||||
(*tp)->elem = key;
|
||||
return NULL;
|
||||
@@ -126,7 +131,8 @@ void *av_tree_insert(AVTreeNode **tp, void *key, int (*cmp)(void *key, const voi
|
||||
}
|
||||
}
|
||||
|
||||
void av_tree_destroy(AVTreeNode *t){
|
||||
void av_tree_destroy(AVTreeNode *t)
|
||||
{
|
||||
if (t) {
|
||||
av_tree_destroy(t->child[0]);
|
||||
av_tree_destroy(t->child[1]);
|
||||
@@ -134,12 +140,18 @@ void av_tree_destroy(AVTreeNode *t){
|
||||
}
|
||||
}
|
||||
|
||||
void av_tree_enumerate(AVTreeNode *t, void *opaque, int (*cmp)(void *opaque, void *elem), int (*enu)(void *opaque, void *elem)){
|
||||
void av_tree_enumerate(AVTreeNode *t, void *opaque,
|
||||
int (*cmp)(void *opaque, void *elem),
|
||||
int (*enu)(void *opaque, void *elem))
|
||||
{
|
||||
if (t) {
|
||||
int v = cmp ? cmp(opaque, t->elem) : 0;
|
||||
if(v>=0) av_tree_enumerate(t->child[0], opaque, cmp, enu);
|
||||
if(v==0) enu(opaque, t->elem);
|
||||
if(v<=0) av_tree_enumerate(t->child[1], opaque, cmp, enu);
|
||||
if (v >= 0)
|
||||
av_tree_enumerate(t->child[0], opaque, cmp, enu);
|
||||
if (v == 0)
|
||||
enu(opaque, t->elem);
|
||||
if (v <= 0)
|
||||
av_tree_enumerate(t->child[1], opaque, cmp, enu);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -147,7 +159,8 @@ void av_tree_enumerate(AVTreeNode *t, void *opaque, int (*cmp)(void *opaque, voi
|
||||
|
||||
#include "lfg.h"
|
||||
|
||||
static int check(AVTreeNode *t){
|
||||
static int check(AVTreeNode *t)
|
||||
{
|
||||
if (t) {
|
||||
int left = check(t->child[0]);
|
||||
int right = check(t->child[1]);
|
||||
@@ -163,7 +176,8 @@ static int check(AVTreeNode *t){
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void print(AVTreeNode *t, int depth){
|
||||
static void print(AVTreeNode *t, int depth)
|
||||
{
|
||||
int i;
|
||||
for (i = 0; i < depth * 4; i++) av_log(NULL, AV_LOG_ERROR, " ");
|
||||
if (t) {
|
||||
@@ -174,11 +188,13 @@ static void print(AVTreeNode *t, int depth){
|
||||
av_log(NULL, AV_LOG_ERROR, "NULL\n");
|
||||
}
|
||||
|
||||
static int cmp(void *a, const void *b){
|
||||
static int cmp(void *a, const void *b)
|
||||
{
|
||||
return (uint8_t *) a - (const uint8_t *) b;
|
||||
}
|
||||
|
||||
int main(void){
|
||||
int main (void)
|
||||
{
|
||||
int i;
|
||||
void *k;
|
||||
AVTreeNode *root = NULL, *node = NULL;
|
||||
|
Reference in New Issue
Block a user