Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
0b4ad869
Commit
0b4ad869
authored
Dec 20, 2017
by
Aurelien Jacobs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
crc: add AV_CRC_8_SBC as a 8 bits CRC with polynomial 0x1D
parent
ea096318
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
3 deletions
+32
-3
crc.c
libavutil/crc.c
+26
-0
crc.h
libavutil/crc.h
+1
-0
crc.c
libavutil/tests/crc.c
+4
-3
crc
tests/ref/fate/crc
+1
-0
No files found.
libavutil/crc.c
View file @
0b4ad869
...
...
@@ -52,6 +52,30 @@ static const AVCRC av_crc_table[AV_CRC_MAX][257] = {
0xDE
,
0xD9
,
0xD0
,
0xD7
,
0xC2
,
0xC5
,
0xCC
,
0xCB
,
0xE6
,
0xE1
,
0xE8
,
0xEF
,
0xFA
,
0xFD
,
0xF4
,
0xF3
,
0x01
},
[
AV_CRC_8_EBU
]
=
{
0x00
,
0x1D
,
0x3A
,
0x27
,
0x74
,
0x69
,
0x4E
,
0x53
,
0xE8
,
0xF5
,
0xD2
,
0xCF
,
0x9C
,
0x81
,
0xA6
,
0xBB
,
0xCD
,
0xD0
,
0xF7
,
0xEA
,
0xB9
,
0xA4
,
0x83
,
0x9E
,
0x25
,
0x38
,
0x1F
,
0x02
,
0x51
,
0x4C
,
0x6B
,
0x76
,
0x87
,
0x9A
,
0xBD
,
0xA0
,
0xF3
,
0xEE
,
0xC9
,
0xD4
,
0x6F
,
0x72
,
0x55
,
0x48
,
0x1B
,
0x06
,
0x21
,
0x3C
,
0x4A
,
0x57
,
0x70
,
0x6D
,
0x3E
,
0x23
,
0x04
,
0x19
,
0xA2
,
0xBF
,
0x98
,
0x85
,
0xD6
,
0xCB
,
0xEC
,
0xF1
,
0x13
,
0x0E
,
0x29
,
0x34
,
0x67
,
0x7A
,
0x5D
,
0x40
,
0xFB
,
0xE6
,
0xC1
,
0xDC
,
0x8F
,
0x92
,
0xB5
,
0xA8
,
0xDE
,
0xC3
,
0xE4
,
0xF9
,
0xAA
,
0xB7
,
0x90
,
0x8D
,
0x36
,
0x2B
,
0x0C
,
0x11
,
0x42
,
0x5F
,
0x78
,
0x65
,
0x94
,
0x89
,
0xAE
,
0xB3
,
0xE0
,
0xFD
,
0xDA
,
0xC7
,
0x7C
,
0x61
,
0x46
,
0x5B
,
0x08
,
0x15
,
0x32
,
0x2F
,
0x59
,
0x44
,
0x63
,
0x7E
,
0x2D
,
0x30
,
0x17
,
0x0A
,
0xB1
,
0xAC
,
0x8B
,
0x96
,
0xC5
,
0xD8
,
0xFF
,
0xE2
,
0x26
,
0x3B
,
0x1C
,
0x01
,
0x52
,
0x4F
,
0x68
,
0x75
,
0xCE
,
0xD3
,
0xF4
,
0xE9
,
0xBA
,
0xA7
,
0x80
,
0x9D
,
0xEB
,
0xF6
,
0xD1
,
0xCC
,
0x9F
,
0x82
,
0xA5
,
0xB8
,
0x03
,
0x1E
,
0x39
,
0x24
,
0x77
,
0x6A
,
0x4D
,
0x50
,
0xA1
,
0xBC
,
0x9B
,
0x86
,
0xD5
,
0xC8
,
0xEF
,
0xF2
,
0x49
,
0x54
,
0x73
,
0x6E
,
0x3D
,
0x20
,
0x07
,
0x1A
,
0x6C
,
0x71
,
0x56
,
0x4B
,
0x18
,
0x05
,
0x22
,
0x3F
,
0x84
,
0x99
,
0xBE
,
0xA3
,
0xF0
,
0xED
,
0xCA
,
0xD7
,
0x35
,
0x28
,
0x0F
,
0x12
,
0x41
,
0x5C
,
0x7B
,
0x66
,
0xDD
,
0xC0
,
0xE7
,
0xFA
,
0xA9
,
0xB4
,
0x93
,
0x8E
,
0xF8
,
0xE5
,
0xC2
,
0xDF
,
0x8C
,
0x91
,
0xB6
,
0xAB
,
0x10
,
0x0D
,
0x2A
,
0x37
,
0x64
,
0x79
,
0x5E
,
0x43
,
0xB2
,
0xAF
,
0x88
,
0x95
,
0xC6
,
0xDB
,
0xFC
,
0xE1
,
0x5A
,
0x47
,
0x60
,
0x7D
,
0x2E
,
0x33
,
0x14
,
0x09
,
0x7F
,
0x62
,
0x45
,
0x58
,
0x0B
,
0x16
,
0x31
,
0x2C
,
0x97
,
0x8A
,
0xAD
,
0xB0
,
0xE3
,
0xFE
,
0xD9
,
0xC4
,
0x01
},
[
AV_CRC_16_ANSI
]
=
{
0x0000
,
0x0580
,
0x0F80
,
0x0A00
,
0x1B80
,
0x1E00
,
0x1400
,
0x1180
,
0x3380
,
0x3600
,
0x3C00
,
0x3980
,
0x2800
,
0x2D80
,
0x2780
,
0x2200
,
...
...
@@ -305,6 +329,7 @@ static void id ## _init_table_once(void)
#define CRC_INIT_TABLE_ONCE(id) ff_thread_once(&id ## _once_control, id ## _init_table_once)
DECLARE_CRC_INIT_TABLE_ONCE
(
AV_CRC_8_ATM
,
0
,
8
,
0x07
)
DECLARE_CRC_INIT_TABLE_ONCE
(
AV_CRC_8_EBU
,
0
,
8
,
0x1D
)
DECLARE_CRC_INIT_TABLE_ONCE
(
AV_CRC_16_ANSI
,
0
,
16
,
0x8005
)
DECLARE_CRC_INIT_TABLE_ONCE
(
AV_CRC_16_CCITT
,
0
,
16
,
0x1021
)
DECLARE_CRC_INIT_TABLE_ONCE
(
AV_CRC_24_IEEE
,
0
,
24
,
0x864CFB
)
...
...
@@ -351,6 +376,7 @@ const AVCRC *av_crc_get_table(AVCRCId crc_id)
#if !CONFIG_HARDCODED_TABLES
switch
(
crc_id
)
{
case
AV_CRC_8_ATM
:
CRC_INIT_TABLE_ONCE
(
AV_CRC_8_ATM
);
break
;
case
AV_CRC_8_EBU
:
CRC_INIT_TABLE_ONCE
(
AV_CRC_8_EBU
);
break
;
case
AV_CRC_16_ANSI
:
CRC_INIT_TABLE_ONCE
(
AV_CRC_16_ANSI
);
break
;
case
AV_CRC_16_CCITT
:
CRC_INIT_TABLE_ONCE
(
AV_CRC_16_CCITT
);
break
;
case
AV_CRC_24_IEEE
:
CRC_INIT_TABLE_ONCE
(
AV_CRC_24_IEEE
);
break
;
...
...
libavutil/crc.h
View file @
0b4ad869
...
...
@@ -54,6 +54,7 @@ typedef enum {
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 */
AV_CRC_24_IEEE
,
AV_CRC_8_EBU
,
AV_CRC_MAX
,
/*< Not part of public API! Do not use outside libavutil. */
}
AVCRCId
;
...
...
libavutil/tests/crc.c
View file @
0b4ad869
...
...
@@ -25,20 +25,21 @@ int main(void)
{
uint8_t
buf
[
1999
];
int
i
;
static
const
unsigned
p
[
6
][
3
]
=
{
static
const
unsigned
p
[
7
][
3
]
=
{
{
AV_CRC_32_IEEE_LE
,
0xEDB88320
,
0x3D5CDD04
},
{
AV_CRC_32_IEEE
,
0x04C11DB7
,
0xC0F5BAE0
},
{
AV_CRC_24_IEEE
,
0x864CFB
,
0xB704CE
},
{
AV_CRC_16_ANSI_LE
,
0xA001
,
0xBFD8
},
{
AV_CRC_16_ANSI
,
0x8005
,
0x1FBB
},
{
AV_CRC_8_ATM
,
0x07
,
0xE3
}
{
AV_CRC_8_ATM
,
0x07
,
0xE3
},
{
AV_CRC_8_EBU
,
0x1D
,
0xD6
},
};
const
AVCRC
*
ctx
;
for
(
i
=
0
;
i
<
sizeof
(
buf
);
i
++
)
buf
[
i
]
=
i
+
i
*
i
;
for
(
i
=
0
;
i
<
6
;
i
++
)
{
for
(
i
=
0
;
i
<
7
;
i
++
)
{
ctx
=
av_crc_get_table
(
p
[
i
][
0
]);
printf
(
"crc %08X = %X
\n
"
,
p
[
i
][
1
],
av_crc
(
ctx
,
0
,
buf
,
sizeof
(
buf
)));
}
...
...
tests/ref/fate/crc
View file @
0b4ad869
...
...
@@ -4,3 +4,4 @@ crc 00864CFB = 326039
crc 0000A001 = BFD8
crc 00008005 = BB1F
crc 00000007 = E3
crc 0000001D = D6
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