Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
de69aedf
Commit
de69aedf
authored
May 01, 2014
by
Luca Barbato
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mathematics: K&R formatting cosmetics
parent
3a177a9c
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
42 deletions
+53
-42
mathematics.c
libavutil/mathematics.c
+53
-42
No files found.
libavutil/mathematics.c
View file @
de69aedf
...
...
@@ -30,7 +30,7 @@
#include "version.h"
#if FF_API_AV_REVERSE
const
uint8_t
av_reverse
[
256
]
=
{
const
uint8_t
av_reverse
[
256
]
=
{
0x00
,
0x80
,
0x40
,
0xC0
,
0x20
,
0xA0
,
0x60
,
0xE0
,
0x10
,
0x90
,
0x50
,
0xD0
,
0x30
,
0xB0
,
0x70
,
0xF0
,
0x08
,
0x88
,
0x48
,
0xC8
,
0x28
,
0xA8
,
0x68
,
0xE8
,
0x18
,
0x98
,
0x58
,
0xD8
,
0x38
,
0xB8
,
0x78
,
0xF8
,
0x04
,
0x84
,
0x44
,
0xC4
,
0x24
,
0xA4
,
0x64
,
0xE4
,
0x14
,
0x94
,
0x54
,
0xD4
,
0x34
,
0xB4
,
0x74
,
0xF4
,
...
...
@@ -50,47 +50,53 @@ const uint8_t av_reverse[256]={
};
#endif
int64_t
av_gcd
(
int64_t
a
,
int64_t
b
){
if
(
b
)
return
av_gcd
(
b
,
a
%
b
);
else
return
a
;
int64_t
av_gcd
(
int64_t
a
,
int64_t
b
)
{
if
(
b
)
return
av_gcd
(
b
,
a
%
b
);
else
return
a
;
}
int64_t
av_rescale_rnd
(
int64_t
a
,
int64_t
b
,
int64_t
c
,
enum
AVRounding
rnd
){
int64_t
r
=
0
;
int64_t
av_rescale_rnd
(
int64_t
a
,
int64_t
b
,
int64_t
c
,
enum
AVRounding
rnd
)
{
int64_t
r
=
0
;
if
(
c
<=
0
||
b
<
0
||
rnd
==
4
||
rnd
>
5
)
return
INT64_MIN
;
if
(
a
<
0
&&
a
!=
INT64_MIN
)
return
-
av_rescale_rnd
(
-
a
,
b
,
c
,
rnd
^
((
rnd
>>
1
)
&
1
));
if
(
a
<
0
&&
a
!=
INT64_MIN
)
return
-
av_rescale_rnd
(
-
a
,
b
,
c
,
rnd
^
((
rnd
>>
1
)
&
1
));
if
(
rnd
==
AV_ROUND_NEAR_INF
)
r
=
c
/
2
;
else
if
(
rnd
&
1
)
r
=
c
-
1
;
if
(
rnd
==
AV_ROUND_NEAR_INF
)
r
=
c
/
2
;
else
if
(
rnd
&
1
)
r
=
c
-
1
;
if
(
b
<=
INT_MAX
&&
c
<=
INT_MAX
)
{
if
(
a
<=
INT_MAX
)
return
(
a
*
b
+
r
)
/
c
;
if
(
b
<=
INT_MAX
&&
c
<=
INT_MAX
)
{
if
(
a
<=
INT_MAX
)
return
(
a
*
b
+
r
)
/
c
;
else
return
a
/
c
*
b
+
(
a
%
c
*
b
+
r
)
/
c
;
}
else
{
return
a
/
c
*
b
+
(
a
%
c
*
b
+
r
)
/
c
;
}
else
{
#if 1
uint64_t
a0
=
a
&
0xFFFFFFFF
;
uint64_t
a1
=
a
>>
32
;
uint64_t
b0
=
b
&
0xFFFFFFFF
;
uint64_t
b1
=
b
>>
32
;
uint64_t
t1
=
a0
*
b1
+
a1
*
b0
;
uint64_t
t1a
=
t1
<<
32
;
uint64_t
a0
=
a
&
0xFFFFFFFF
;
uint64_t
a1
=
a
>>
32
;
uint64_t
b0
=
b
&
0xFFFFFFFF
;
uint64_t
b1
=
b
>>
32
;
uint64_t
t1
=
a0
*
b1
+
a1
*
b0
;
uint64_t
t1a
=
t1
<<
32
;
int
i
;
a0
=
a0
*
b0
+
t1a
;
a1
=
a1
*
b1
+
(
t1
>>
32
)
+
(
a0
<
t1a
);
a0
=
a0
*
b0
+
t1a
;
a1
=
a1
*
b1
+
(
t1
>>
32
)
+
(
a0
<
t1a
);
a0
+=
r
;
a1
+=
a0
<
r
;
a1
+=
a0
<
r
;
for
(
i
=
63
;
i
>=
0
;
i
--
){
// int o= a1 & 0x8000000000000000ULL;
a1
+=
a1
+
((
a0
>>
i
)
&
1
);
t1
+=
t1
;
if
(
/*o || */
c
<=
a1
){
for
(
i
=
63
;
i
>=
0
;
i
--
)
{
a1
+=
a1
+
((
a0
>>
i
)
&
1
);
t1
+=
t1
;
if
(
c
<=
a1
)
{
a1
-=
c
;
t1
++
;
}
...
...
@@ -99,23 +105,24 @@ int64_t av_rescale_rnd(int64_t a, int64_t b, int64_t c, enum AVRounding rnd){
}
#else
AVInteger
ai
;
ai
=
av_mul_i
(
av_int2i
(
a
),
av_int2i
(
b
));
ai
=
av_add_i
(
ai
,
av_int2i
(
r
));
ai
=
av_mul_i
(
av_int2i
(
a
),
av_int2i
(
b
));
ai
=
av_add_i
(
ai
,
av_int2i
(
r
));
return
av_i2int
(
av_div_i
(
ai
,
av_int2i
(
c
)));
}
#endif
}
int64_t
av_rescale
(
int64_t
a
,
int64_t
b
,
int64_t
c
){
int64_t
av_rescale
(
int64_t
a
,
int64_t
b
,
int64_t
c
)
{
return
av_rescale_rnd
(
a
,
b
,
c
,
AV_ROUND_NEAR_INF
);
}
int64_t
av_rescale_q_rnd
(
int64_t
a
,
AVRational
bq
,
AVRational
cq
,
enum
AVRounding
rnd
)
{
int64_t
b
=
bq
.
num
*
(
int64_t
)
cq
.
den
;
int64_t
c
=
cq
.
num
*
(
int64_t
)
bq
.
den
;
int64_t
b
=
bq
.
num
*
(
int64_t
)
cq
.
den
;
int64_t
c
=
cq
.
num
*
(
int64_t
)
bq
.
den
;
return
av_rescale_rnd
(
a
,
b
,
c
,
rnd
);
}
...
...
@@ -124,17 +131,21 @@ int64_t av_rescale_q(int64_t a, AVRational bq, AVRational cq)
return
av_rescale_q_rnd
(
a
,
bq
,
cq
,
AV_ROUND_NEAR_INF
);
}
int
av_compare_ts
(
int64_t
ts_a
,
AVRational
tb_a
,
int64_t
ts_b
,
AVRational
tb_b
){
int64_t
a
=
tb_a
.
num
*
(
int64_t
)
tb_b
.
den
;
int64_t
b
=
tb_b
.
num
*
(
int64_t
)
tb_a
.
den
;
if
(
av_rescale_rnd
(
ts_a
,
a
,
b
,
AV_ROUND_DOWN
)
<
ts_b
)
return
-
1
;
if
(
av_rescale_rnd
(
ts_b
,
b
,
a
,
AV_ROUND_DOWN
)
<
ts_a
)
return
1
;
int
av_compare_ts
(
int64_t
ts_a
,
AVRational
tb_a
,
int64_t
ts_b
,
AVRational
tb_b
)
{
int64_t
a
=
tb_a
.
num
*
(
int64_t
)
tb_b
.
den
;
int64_t
b
=
tb_b
.
num
*
(
int64_t
)
tb_a
.
den
;
if
(
av_rescale_rnd
(
ts_a
,
a
,
b
,
AV_ROUND_DOWN
)
<
ts_b
)
return
-
1
;
if
(
av_rescale_rnd
(
ts_b
,
b
,
a
,
AV_ROUND_DOWN
)
<
ts_a
)
return
1
;
return
0
;
}
int64_t
av_compare_mod
(
uint64_t
a
,
uint64_t
b
,
uint64_t
mod
){
int64_t
c
=
(
a
-
b
)
&
(
mod
-
1
);
if
(
c
>
(
mod
>>
1
))
c
-=
mod
;
int64_t
av_compare_mod
(
uint64_t
a
,
uint64_t
b
,
uint64_t
mod
)
{
int64_t
c
=
(
a
-
b
)
&
(
mod
-
1
);
if
(
c
>
(
mod
>>
1
))
c
-=
mod
;
return
c
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment