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
f61e47dd
Commit
f61e47dd
authored
Sep 01, 2014
by
Gabriel Dume
Committed by
Diego Biurrun
Sep 02, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
asv: K&R formatting cosmetics
Signed-off-by:
Diego Biurrun
<
diego@biurrun.de
>
parent
74512f7e
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
210 additions
and
173 deletions
+210
-173
asv.c
libavcodec/asv.c
+39
-38
asv.h
libavcodec/asv.h
+1
-1
asvdec.c
libavcodec/asvdec.c
+27
-28
asvenc.c
libavcodec/asvenc.c
+143
-106
No files found.
libavcodec/asv.c
View file @
f61e47dd
...
...
@@ -30,65 +30,66 @@
#include "bswapdsp.h"
const
uint8_t
ff_asv_scantab
[
64
]
=
{
0x00
,
0x08
,
0x01
,
0x09
,
0x10
,
0x18
,
0x11
,
0x19
,
0x02
,
0x0A
,
0x03
,
0x0B
,
0x12
,
0x1A
,
0x13
,
0x1B
,
0x04
,
0x0C
,
0x05
,
0x0D
,
0x20
,
0x28
,
0x21
,
0x29
,
0x06
,
0x0E
,
0x07
,
0x0F
,
0x14
,
0x1C
,
0x15
,
0x1D
,
0x22
,
0x2A
,
0x23
,
0x2B
,
0x30
,
0x38
,
0x31
,
0x39
,
0x16
,
0x1E
,
0x17
,
0x1F
,
0x24
,
0x2C
,
0x25
,
0x2D
,
0x32
,
0x3A
,
0x33
,
0x3B
,
0x26
,
0x2E
,
0x27
,
0x2F
,
0x34
,
0x3C
,
0x35
,
0x3D
,
0x36
,
0x3E
,
0x37
,
0x3F
,
0x00
,
0x08
,
0x01
,
0x09
,
0x10
,
0x18
,
0x11
,
0x19
,
0x02
,
0x0A
,
0x03
,
0x0B
,
0x12
,
0x1A
,
0x13
,
0x1B
,
0x04
,
0x0C
,
0x05
,
0x0D
,
0x20
,
0x28
,
0x21
,
0x29
,
0x06
,
0x0E
,
0x07
,
0x0F
,
0x14
,
0x1C
,
0x15
,
0x1D
,
0x22
,
0x2A
,
0x23
,
0x2B
,
0x30
,
0x38
,
0x31
,
0x39
,
0x16
,
0x1E
,
0x17
,
0x1F
,
0x24
,
0x2C
,
0x25
,
0x2D
,
0x32
,
0x3A
,
0x33
,
0x3B
,
0x26
,
0x2E
,
0x27
,
0x2F
,
0x34
,
0x3C
,
0x35
,
0x3D
,
0x36
,
0x3E
,
0x37
,
0x3F
,
};
const
uint8_t
ff_asv_ccp_tab
[
17
][
2
]
=
{
{
0x2
,
2
},
{
0x7
,
5
},
{
0xB
,
5
},
{
0x3
,
5
},
{
0xD
,
5
},
{
0x5
,
5
},
{
0x9
,
5
},
{
0x1
,
5
},
{
0xE
,
5
},
{
0x6
,
5
},
{
0xA
,
5
},
{
0x2
,
5
},
{
0xC
,
5
},
{
0x4
,
5
},
{
0x8
,
5
},
{
0x3
,
2
},
{
0xF
,
5
},
//
EOB
{
0x2
,
2
},
{
0x7
,
5
},
{
0xB
,
5
},
{
0x3
,
5
},
{
0xD
,
5
},
{
0x5
,
5
},
{
0x9
,
5
},
{
0x1
,
5
},
{
0xE
,
5
},
{
0x6
,
5
},
{
0xA
,
5
},
{
0x2
,
5
},
{
0xC
,
5
},
{
0x4
,
5
},
{
0x8
,
5
},
{
0x3
,
2
},
{
0xF
,
5
},
//
EOB
};
const
uint8_t
ff_asv_level_tab
[
7
][
2
]
=
{
{
3
,
4
},
{
3
,
3
},
{
3
,
2
},
{
0
,
3
},
{
2
,
2
},
{
2
,
3
},
{
2
,
4
}
{
3
,
4
},
{
3
,
3
},
{
3
,
2
},
{
0
,
3
},
{
2
,
2
},
{
2
,
3
},
{
2
,
4
}
};
const
uint8_t
ff_asv_dc_ccp_tab
[
8
][
2
]
=
{
{
0x1
,
2
},
{
0xD
,
4
},
{
0xF
,
4
},
{
0xC
,
4
},
{
0x5
,
3
},
{
0xE
,
4
},
{
0x4
,
3
},
{
0x0
,
2
},
{
0x1
,
2
},
{
0xD
,
4
},
{
0xF
,
4
},
{
0xC
,
4
},
{
0x5
,
3
},
{
0xE
,
4
},
{
0x4
,
3
},
{
0x0
,
2
},
};
const
uint8_t
ff_asv_ac_ccp_tab
[
16
][
2
]
=
{
{
0x00
,
2
},
{
0x3B
,
6
},
{
0x0A
,
4
},
{
0x3A
,
6
},
{
0x02
,
3
},
{
0x39
,
6
},
{
0x3C
,
6
},
{
0x38
,
6
},
{
0x03
,
3
},
{
0x3D
,
6
},
{
0x08
,
4
},
{
0x1F
,
5
},
{
0x09
,
4
},
{
0x0B
,
4
},
{
0x0D
,
4
},
{
0x0C
,
4
},
{
0x00
,
2
},
{
0x3B
,
6
},
{
0x0A
,
4
},
{
0x3A
,
6
},
{
0x02
,
3
},
{
0x39
,
6
},
{
0x3C
,
6
},
{
0x38
,
6
},
{
0x03
,
3
},
{
0x3D
,
6
},
{
0x08
,
4
},
{
0x1F
,
5
},
{
0x09
,
4
},
{
0x0B
,
4
},
{
0x0D
,
4
},
{
0x0C
,
4
},
};
const
uint8_t
ff_asv2_level_tab
[
63
][
2
]
=
{
{
0x3F
,
10
},{
0x2F
,
10
},{
0x37
,
10
},{
0x27
,
10
},{
0x3B
,
10
},{
0x2B
,
10
},{
0x33
,
10
},{
0x23
,
10
},
{
0x3D
,
10
},{
0x2D
,
10
},{
0x35
,
10
},{
0x25
,
10
},{
0x39
,
10
},{
0x29
,
10
},{
0x31
,
10
},{
0x21
,
10
},
{
0x1F
,
8
},{
0x17
,
8
},{
0x1B
,
8
},{
0x13
,
8
},{
0x1D
,
8
},{
0x15
,
8
},{
0x19
,
8
},{
0x11
,
8
},
{
0x0F
,
6
},{
0x0B
,
6
},{
0x0D
,
6
},{
0x09
,
6
},
{
0x07
,
4
},{
0x05
,
4
},
{
0x03
,
2
},
{
0x00
,
5
},
{
0x02
,
2
},
{
0x04
,
4
},{
0x06
,
4
},
{
0x08
,
6
},{
0x0C
,
6
},{
0x0A
,
6
},{
0x0E
,
6
},
{
0x10
,
8
},{
0x18
,
8
},{
0x14
,
8
},{
0x1C
,
8
},{
0x12
,
8
},{
0x1A
,
8
},{
0x16
,
8
},{
0x1E
,
8
},
{
0x20
,
10
},{
0x30
,
10
},{
0x28
,
10
},{
0x38
,
10
},{
0x24
,
10
},{
0x34
,
10
},{
0x2C
,
10
},{
0x3C
,
10
},
{
0x22
,
10
},{
0x32
,
10
},{
0x2A
,
10
},{
0x3A
,
10
},{
0x26
,
10
},{
0x36
,
10
},{
0x2E
,
10
},{
0x3E
,
10
},
{
0x3F
,
10
},
{
0x2F
,
10
},
{
0x37
,
10
},
{
0x27
,
10
},
{
0x3B
,
10
},
{
0x2B
,
10
},
{
0x33
,
10
},
{
0x23
,
10
},
{
0x3D
,
10
},
{
0x2D
,
10
},
{
0x35
,
10
},
{
0x25
,
10
},
{
0x39
,
10
},
{
0x29
,
10
},
{
0x31
,
10
},
{
0x21
,
10
},
{
0x1F
,
8
},
{
0x17
,
8
},
{
0x1B
,
8
},
{
0x13
,
8
},
{
0x1D
,
8
},
{
0x15
,
8
},
{
0x19
,
8
},
{
0x11
,
8
},
{
0x0F
,
6
},
{
0x0B
,
6
},
{
0x0D
,
6
},
{
0x09
,
6
},
{
0x07
,
4
},
{
0x05
,
4
},
{
0x03
,
2
},
{
0x00
,
5
},
{
0x02
,
2
},
{
0x04
,
4
},
{
0x06
,
4
},
{
0x08
,
6
},
{
0x0C
,
6
},
{
0x0A
,
6
},
{
0x0E
,
6
},
{
0x10
,
8
},
{
0x18
,
8
},
{
0x14
,
8
},
{
0x1C
,
8
},
{
0x12
,
8
},
{
0x1A
,
8
},
{
0x16
,
8
},
{
0x1E
,
8
},
{
0x20
,
10
},
{
0x30
,
10
},
{
0x28
,
10
},
{
0x38
,
10
},
{
0x24
,
10
},
{
0x34
,
10
},
{
0x2C
,
10
},
{
0x3C
,
10
},
{
0x22
,
10
},
{
0x32
,
10
},
{
0x2A
,
10
},
{
0x3A
,
10
},
{
0x26
,
10
},
{
0x36
,
10
},
{
0x2E
,
10
},
{
0x3E
,
10
},
};
av_cold
void
ff_asv_common_init
(
AVCodecContext
*
avctx
)
{
ASV1Context
*
const
a
=
avctx
->
priv_data
;
av_cold
void
ff_asv_common_init
(
AVCodecContext
*
avctx
)
{
ASV1Context
*
const
a
=
avctx
->
priv_data
;
ff_bswapdsp_init
(
&
a
->
bbdsp
);
a
->
mb_width
=
(
avctx
->
width
+
15
)
/
16
;
a
->
mb_height
=
(
avctx
->
height
+
15
)
/
16
;
a
->
mb_width2
=
(
avctx
->
width
+
0
)
/
16
;
a
->
mb_height2
=
(
avctx
->
height
+
0
)
/
16
;
a
->
mb_width2
=
(
avctx
->
width
+
0
)
/
16
;
a
->
mb_height2
=
(
avctx
->
height
+
0
)
/
16
;
a
->
avctx
=
avctx
;
a
->
avctx
=
avctx
;
}
libavcodec/asv.h
View file @
f61e47dd
...
...
@@ -39,7 +39,7 @@
#include "pixblockdsp.h"
#include "put_bits.h"
typedef
struct
ASV1Context
{
typedef
struct
ASV1Context
{
AVCodecContext
*
avctx
;
BlockDSPContext
bdsp
;
BswapDSPContext
bbdsp
;
...
...
libavcodec/asvdec.c
View file @
f61e47dd
...
...
@@ -35,7 +35,7 @@
#include "mathops.h"
#include "mpeg12data.h"
#define VLC_BITS 6
#define VLC_BITS
6
#define ASV2_LEVEL_VLC_BITS 10
static
VLC
ccp_vlc
;
...
...
@@ -69,10 +69,10 @@ static av_cold void init_vlcs(ASV1Context *a)
}
}
//FIXME write a reversed bitstream reader to avoid the double reverse
//
FIXME write a reversed bitstream reader to avoid the double reverse
static
inline
int
asv2_get_bits
(
GetBitContext
*
gb
,
int
n
)
{
return
ff_reverse
[
get_bits
(
gb
,
n
)
<<
(
8
-
n
)];
return
ff_reverse
[
get_bits
(
gb
,
n
)
<<
(
8
-
n
)];
}
static
inline
int
asv1_get_level
(
GetBitContext
*
gb
)
...
...
@@ -90,7 +90,7 @@ static inline int asv2_get_level(GetBitContext *gb)
int
code
=
get_vlc2
(
gb
,
asv2_level_vlc
.
table
,
ASV2_LEVEL_VLC_BITS
,
1
);
if
(
code
==
31
)
return
(
int8_t
)
asv2_get_bits
(
gb
,
8
);
return
(
int8_t
)
asv2_get_bits
(
gb
,
8
);
else
return
code
-
31
;
}
...
...
@@ -149,13 +149,13 @@ static inline int asv2_decode_block(ASV1Context *a, int16_t block[64])
if
(
ccp
)
{
if
(
ccp
&
8
)
block
[
a
->
scantable
.
permutated
[
4
*
i
+
0
]]
=
(
asv2_get_level
(
&
a
->
gb
)
*
a
->
intra_matrix
[
4
*
i
+
0
])
>>
4
;
block
[
a
->
scantable
.
permutated
[
4
*
i
+
0
]]
=
(
asv2_get_level
(
&
a
->
gb
)
*
a
->
intra_matrix
[
4
*
i
+
0
])
>>
4
;
if
(
ccp
&
4
)
block
[
a
->
scantable
.
permutated
[
4
*
i
+
1
]]
=
(
asv2_get_level
(
&
a
->
gb
)
*
a
->
intra_matrix
[
4
*
i
+
1
])
>>
4
;
block
[
a
->
scantable
.
permutated
[
4
*
i
+
1
]]
=
(
asv2_get_level
(
&
a
->
gb
)
*
a
->
intra_matrix
[
4
*
i
+
1
])
>>
4
;
if
(
ccp
&
2
)
block
[
a
->
scantable
.
permutated
[
4
*
i
+
2
]]
=
(
asv2_get_level
(
&
a
->
gb
)
*
a
->
intra_matrix
[
4
*
i
+
2
])
>>
4
;
block
[
a
->
scantable
.
permutated
[
4
*
i
+
2
]]
=
(
asv2_get_level
(
&
a
->
gb
)
*
a
->
intra_matrix
[
4
*
i
+
2
])
>>
4
;
if
(
ccp
&
1
)
block
[
a
->
scantable
.
permutated
[
4
*
i
+
3
]]
=
(
asv2_get_level
(
&
a
->
gb
)
*
a
->
intra_matrix
[
4
*
i
+
3
])
>>
4
;
block
[
a
->
scantable
.
permutated
[
4
*
i
+
3
]]
=
(
asv2_get_level
(
&
a
->
gb
)
*
a
->
intra_matrix
[
4
*
i
+
3
])
>>
4
;
}
}
...
...
@@ -184,32 +184,31 @@ static inline int decode_mb(ASV1Context *a, int16_t block[6][64])
static
inline
void
idct_put
(
ASV1Context
*
a
,
AVFrame
*
frame
,
int
mb_x
,
int
mb_y
)
{
int16_t
(
*
block
)[
64
]
=
a
->
block
;
int
linesize
=
frame
->
linesize
[
0
];
int16_t
(
*
block
)[
64
]
=
a
->
block
;
int
linesize
=
frame
->
linesize
[
0
];
uint8_t
*
dest_y
=
frame
->
data
[
0
]
+
(
mb_y
*
16
*
linesize
)
+
mb_x
*
16
;
uint8_t
*
dest_cb
=
frame
->
data
[
1
]
+
(
mb_y
*
8
*
frame
->
linesize
[
1
])
+
mb_x
*
8
;
uint8_t
*
dest_cr
=
frame
->
data
[
2
]
+
(
mb_y
*
8
*
frame
->
linesize
[
2
])
+
mb_x
*
8
;
uint8_t
*
dest_y
=
frame
->
data
[
0
]
+
(
mb_y
*
16
*
linesize
)
+
mb_x
*
16
;
uint8_t
*
dest_cb
=
frame
->
data
[
1
]
+
(
mb_y
*
8
*
frame
->
linesize
[
1
])
+
mb_x
*
8
;
uint8_t
*
dest_cr
=
frame
->
data
[
2
]
+
(
mb_y
*
8
*
frame
->
linesize
[
2
])
+
mb_x
*
8
;
a
->
idsp
.
idct_put
(
dest_y
,
linesize
,
block
[
0
]);
a
->
idsp
.
idct_put
(
dest_y
+
8
,
linesize
,
block
[
1
]);
a
->
idsp
.
idct_put
(
dest_y
+
8
*
linesize
,
linesize
,
block
[
2
]);
a
->
idsp
.
idct_put
(
dest_y
+
8
*
linesize
+
8
,
linesize
,
block
[
3
]);
if
(
!
(
a
->
avctx
->
flags
&
CODEC_FLAG_GRAY
))
{
if
(
!
(
a
->
avctx
->
flags
&
CODEC_FLAG_GRAY
))
{
a
->
idsp
.
idct_put
(
dest_cb
,
frame
->
linesize
[
1
],
block
[
4
]);
a
->
idsp
.
idct_put
(
dest_cr
,
frame
->
linesize
[
2
],
block
[
5
]);
}
}
static
int
decode_frame
(
AVCodecContext
*
avctx
,
void
*
data
,
int
*
got_frame
,
static
int
decode_frame
(
AVCodecContext
*
avctx
,
void
*
data
,
int
*
got_frame
,
AVPacket
*
avpkt
)
{
ASV1Context
*
const
a
=
avctx
->
priv_data
;
const
uint8_t
*
buf
=
avpkt
->
data
;
int
buf_size
=
avpkt
->
size
;
AVFrame
*
const
p
=
data
;
ASV1Context
*
const
a
=
avctx
->
priv_data
;
const
uint8_t
*
buf
=
avpkt
->
data
;
int
buf_size
=
avpkt
->
size
;
AVFrame
*
const
p
=
data
;
int
mb_x
,
mb_y
,
ret
;
if
((
ret
=
ff_get_buffer
(
avctx
,
p
,
0
))
<
0
)
{
...
...
@@ -224,16 +223,16 @@ static int decode_frame(AVCodecContext *avctx,
if
(
!
a
->
bitstream_buffer
)
return
AVERROR
(
ENOMEM
);
if
(
avctx
->
codec_id
==
AV_CODEC_ID_ASV1
)
if
(
avctx
->
codec_id
==
AV_CODEC_ID_ASV1
)
{
a
->
bbdsp
.
bswap_buf
((
uint32_t
*
)
a
->
bitstream_buffer
,
(
const
uint32_t
*
)
buf
,
buf_size
/
4
);
else
{
}
else
{
int
i
;
for
(
i
=
0
;
i
<
buf_size
;
i
++
)
a
->
bitstream_buffer
[
i
]
=
ff_reverse
[
buf
[
i
]];
}
init_get_bits
(
&
a
->
gb
,
a
->
bitstream_buffer
,
buf_size
*
8
);
init_get_bits
(
&
a
->
gb
,
a
->
bitstream_buffer
,
buf_size
*
8
);
for
(
mb_y
=
0
;
mb_y
<
a
->
mb_height2
;
mb_y
++
)
{
for
(
mb_x
=
0
;
mb_x
<
a
->
mb_width2
;
mb_x
++
)
{
...
...
@@ -273,8 +272,8 @@ static int decode_frame(AVCodecContext *avctx,
static
av_cold
int
decode_init
(
AVCodecContext
*
avctx
)
{
ASV1Context
*
const
a
=
avctx
->
priv_data
;
const
int
scale
=
avctx
->
codec_id
==
AV_CODEC_ID_ASV1
?
1
:
2
;
ASV1Context
*
const
a
=
avctx
->
priv_data
;
const
int
scale
=
avctx
->
codec_id
==
AV_CODEC_ID_ASV1
?
1
:
2
;
int
i
;
if
(
avctx
->
extradata_size
<
1
)
{
...
...
@@ -301,7 +300,8 @@ static av_cold int decode_init(AVCodecContext *avctx)
for
(
i
=
0
;
i
<
64
;
i
++
)
{
int
index
=
ff_asv_scantab
[
i
];
a
->
intra_matrix
[
i
]
=
64
*
scale
*
ff_mpeg1_default_intra_matrix
[
index
]
/
a
->
inv_qscale
;
a
->
intra_matrix
[
i
]
=
64
*
scale
*
ff_mpeg1_default_intra_matrix
[
index
]
/
a
->
inv_qscale
;
}
return
0
;
...
...
@@ -309,7 +309,7 @@ static av_cold int decode_init(AVCodecContext *avctx)
static
av_cold
int
decode_end
(
AVCodecContext
*
avctx
)
{
ASV1Context
*
const
a
=
avctx
->
priv_data
;
ASV1Context
*
const
a
=
avctx
->
priv_data
;
av_freep
(
&
a
->
bitstream_buffer
);
a
->
bitstream_buffer_size
=
0
;
...
...
@@ -340,4 +340,3 @@ AVCodec ff_asv2_decoder = {
.
decode
=
decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
,
};
libavcodec/asvenc.c
View file @
f61e47dd
This diff is collapsed.
Click to expand it.
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