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
48a4ffa7
Commit
48a4ffa7
authored
Feb 05, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
asf: K&R formatting cosmetics
parent
77bcb896
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
51 deletions
+60
-51
asf.c
libavformat/asf.c
+24
-25
asfcrypt.c
libavformat/asfcrypt.c
+36
-26
asfdec.c
libavformat/asfdec.c
+0
-0
asfenc.c
libavformat/asfenc.c
+0
-0
No files found.
libavformat/asf.c
View file @
48a4ffa7
...
...
@@ -20,7 +20,6 @@
#include "asf.h"
const
ff_asf_guid
ff_asf_header
=
{
0x30
,
0x26
,
0xB2
,
0x75
,
0x8E
,
0x66
,
0xCF
,
0x11
,
0xA6
,
0xD9
,
0x00
,
0xAA
,
0x00
,
0x62
,
0xCE
,
0x6C
};
...
...
@@ -48,7 +47,7 @@ const ff_asf_guid ff_asf_audio_conceal_none = {
};
const
ff_asf_guid
ff_asf_audio_conceal_spread
=
{
0x50
,
0xCD
,
0xC3
,
0xBF
,
0x8F
,
0x61
,
0xCF
,
0x11
,
0x8B
,
0xB2
,
0x00
,
0xAA
,
0x00
,
0xB4
,
0xE2
,
0x20
0x50
,
0xCD
,
0xC3
,
0xBF
,
0x8F
,
0x61
,
0xCF
,
0x11
,
0x8B
,
0xB2
,
0x00
,
0xAA
,
0x00
,
0xB4
,
0xE2
,
0x20
};
const
ff_asf_guid
ff_asf_video_stream
=
{
...
...
@@ -91,31 +90,31 @@ const ff_asf_guid ff_asf_head2_guid = {
};
const
ff_asf_guid
ff_asf_extended_content_header
=
{
0x40
,
0xA4
,
0xD0
,
0xD2
,
0x07
,
0xE3
,
0xD2
,
0x11
,
0x97
,
0xF0
,
0x00
,
0xA0
,
0xC9
,
0x5E
,
0xA8
,
0x50
0x40
,
0xA4
,
0xD0
,
0xD2
,
0x07
,
0xE3
,
0xD2
,
0x11
,
0x97
,
0xF0
,
0x00
,
0xA0
,
0xC9
,
0x5E
,
0xA8
,
0x50
};
const
ff_asf_guid
ff_asf_simple_index_header
=
{
0x90
,
0x08
,
0x00
,
0x33
,
0xB1
,
0xE5
,
0xCF
,
0x11
,
0x89
,
0xF4
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x49
,
0xCB
0x90
,
0x08
,
0x00
,
0x33
,
0xB1
,
0xE5
,
0xCF
,
0x11
,
0x89
,
0xF4
,
0x00
,
0xA0
,
0xC9
,
0x03
,
0x49
,
0xCB
};
const
ff_asf_guid
ff_asf_ext_stream_embed_stream_header
=
{
0xe2
,
0x65
,
0xfb
,
0x3a
,
0xEF
,
0x47
,
0xF2
,
0x40
,
0xac
,
0x2c
,
0x70
,
0xa9
,
0x0d
,
0x71
,
0xd3
,
0x43
0xe2
,
0x65
,
0xfb
,
0x3a
,
0xEF
,
0x47
,
0xF2
,
0x40
,
0xac
,
0x2c
,
0x70
,
0xa9
,
0x0d
,
0x71
,
0xd3
,
0x43
};
const
ff_asf_guid
ff_asf_ext_stream_audio_stream
=
{
0x9d
,
0x8c
,
0x17
,
0x31
,
0xE1
,
0x03
,
0x28
,
0x45
,
0xb5
,
0x82
,
0x3d
,
0xf9
,
0xdb
,
0x22
,
0xf5
,
0x03
0x9d
,
0x8c
,
0x17
,
0x31
,
0xE1
,
0x03
,
0x28
,
0x45
,
0xb5
,
0x82
,
0x3d
,
0xf9
,
0xdb
,
0x22
,
0xf5
,
0x03
};
const
ff_asf_guid
ff_asf_metadata_header
=
{
0xea
,
0xcb
,
0xf8
,
0xc5
,
0xaf
,
0x5b
,
0x77
,
0x48
,
0x84
,
0x67
,
0xaa
,
0x8c
,
0x44
,
0xfa
,
0x4c
,
0xca
0xea
,
0xcb
,
0xf8
,
0xc5
,
0xaf
,
0x5b
,
0x77
,
0x48
,
0x84
,
0x67
,
0xaa
,
0x8c
,
0x44
,
0xfa
,
0x4c
,
0xca
};
const
ff_asf_guid
ff_asf_marker_header
=
{
0x01
,
0xCD
,
0x87
,
0xF4
,
0x51
,
0xA9
,
0xCF
,
0x11
,
0x8E
,
0xE6
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
0x01
,
0xCD
,
0x87
,
0xF4
,
0x51
,
0xA9
,
0xCF
,
0x11
,
0x8E
,
0xE6
,
0x00
,
0xC0
,
0x0C
,
0x20
,
0x53
,
0x65
};
/* I am not a number !!! This GUID is the one found on the PC used to
generate the stream */
*
generate the stream */
const
ff_asf_guid
ff_asf_my_guid
=
{
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
};
...
...
@@ -138,23 +137,23 @@ const ff_asf_guid ff_asf_digital_signature = {
/* List of official tags at http://msdn.microsoft.com/en-us/library/dd743066(VS.85).aspx */
const
AVMetadataConv
ff_asf_metadata_conv
[]
=
{
{
"WM/AlbumArtist"
,
"album_artist"
},
{
"WM/AlbumTitle"
,
"album"
},
{
"Author"
,
"artist"
},
{
"Description"
,
"comment"
},
{
"WM/Composer"
,
"composer"
},
{
"WM/EncodedBy"
,
"encoded_by"
},
{
"WM/EncodingSettings"
,
"encoder"
},
{
"WM/Genre"
,
"genre"
},
{
"WM/Language"
,
"language"
},
{
"WM/OriginalFilename"
,
"filename"
},
{
"WM/PartOfSet"
,
"disc"
},
{
"WM/Publisher"
,
"publisher"
},
{
"WM/Tool"
,
"encoder"
},
{
"WM/TrackNumber"
,
"track"
},
{
"WM/Track"
,
"track"
},
{
"WM/AlbumArtist"
,
"album_artist"
},
{
"WM/AlbumTitle"
,
"album"
},
{
"Author"
,
"artist"
},
{
"Description"
,
"comment"
},
{
"WM/Composer"
,
"composer"
},
{
"WM/EncodedBy"
,
"encoded_by"
},
{
"WM/EncodingSettings"
,
"encoder"
},
{
"WM/Genre"
,
"genre"
},
{
"WM/Language"
,
"language"
},
{
"WM/OriginalFilename"
,
"filename"
},
{
"WM/PartOfSet"
,
"disc"
},
{
"WM/Publisher"
,
"publisher"
},
{
"WM/Tool"
,
"encoder"
},
{
"WM/TrackNumber"
,
"track"
},
{
"WM/Track"
,
"track"
},
{
"WM/MediaStationCallSign"
,
"service_provider"
},
{
"WM/MediaStationName"
,
"service_name"
},
{
"WM/MediaStationName"
,
"service_name"
},
// { "Year" , "date" }, TODO: conversion year<->date
{
0
}
};
libavformat/asfcrypt.c
View file @
48a4ffa7
...
...
@@ -20,10 +20,10 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/bswap.h"
#include "libavutil/common.h"
#include "libavutil/des.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/rc4.h"
#include "asfcrypt.h"
...
...
@@ -32,7 +32,8 @@
* @param v number to invert, must be odd!
* @return number so that result * v = 1 (mod 2^32)
*/
static
uint32_t
inverse
(
uint32_t
v
)
{
static
uint32_t
inverse
(
uint32_t
v
)
{
// v ^ 3 gives the inverse (mod 16), could also be implemented
// as table etc. (only lowest 4 bits matter!)
uint32_t
inverse
=
v
*
v
*
v
;
...
...
@@ -50,7 +51,8 @@ static uint32_t inverse(uint32_t v) {
* @param keys output key array containing the keys for encryption in
* native endianness
*/
static
void
multiswap_init
(
const
uint8_t
keybuf
[
48
],
uint32_t
keys
[
12
])
{
static
void
multiswap_init
(
const
uint8_t
keybuf
[
48
],
uint32_t
keys
[
12
])
{
int
i
;
for
(
i
=
0
;
i
<
12
;
i
++
)
keys
[
i
]
=
AV_RL32
(
keybuf
+
(
i
<<
2
))
|
1
;
...
...
@@ -61,7 +63,8 @@ static void multiswap_init(const uint8_t keybuf[48], uint32_t keys[12]) {
* the other way round.
* @param keys key array of ints to invert
*/
static
void
multiswap_invert_keys
(
uint32_t
keys
[
12
])
{
static
void
multiswap_invert_keys
(
uint32_t
keys
[
12
])
{
int
i
;
for
(
i
=
0
;
i
<
5
;
i
++
)
keys
[
i
]
=
inverse
(
keys
[
i
]);
...
...
@@ -69,23 +72,25 @@ static void multiswap_invert_keys(uint32_t keys[12]) {
keys
[
i
]
=
inverse
(
keys
[
i
]);
}
static
uint32_t
multiswap_step
(
const
uint32_t
keys
[
12
],
uint32_t
v
)
{
static
uint32_t
multiswap_step
(
const
uint32_t
keys
[
12
],
uint32_t
v
)
{
int
i
;
v
*=
keys
[
0
];
for
(
i
=
1
;
i
<
5
;
i
++
)
{
v
=
(
v
>>
16
)
|
(
v
<<
16
);
v
=
(
v
>>
16
)
|
(
v
<<
16
);
v
*=
keys
[
i
];
}
v
+=
keys
[
5
];
return
v
;
}
static
uint32_t
multiswap_inv_step
(
const
uint32_t
keys
[
12
],
uint32_t
v
)
{
static
uint32_t
multiswap_inv_step
(
const
uint32_t
keys
[
12
],
uint32_t
v
)
{
int
i
;
v
-=
keys
[
5
];
for
(
i
=
4
;
i
>
0
;
i
--
)
{
v
*=
keys
[
i
];
v
=
(
v
>>
16
)
|
(
v
<<
16
);
v
=
(
v
>>
16
)
|
(
v
<<
16
);
}
v
*=
keys
[
0
];
return
v
;
...
...
@@ -99,17 +104,19 @@ static uint32_t multiswap_inv_step(const uint32_t keys[12], uint32_t v) {
* @param data data to encrypt
* @return encrypted data
*/
static
uint64_t
multiswap_enc
(
const
uint32_t
keys
[
12
],
uint64_t
key
,
uint64_t
data
)
{
static
uint64_t
multiswap_enc
(
const
uint32_t
keys
[
12
],
uint64_t
key
,
uint64_t
data
)
{
uint32_t
a
=
data
;
uint32_t
b
=
data
>>
32
;
uint32_t
c
;
uint32_t
tmp
;
a
+=
key
;
tmp
=
multiswap_step
(
keys
,
a
);
b
+=
tmp
;
c
=
(
key
>>
32
)
+
tmp
;
a
+=
key
;
tmp
=
multiswap_step
(
keys
,
a
);
b
+=
tmp
;
c
=
(
key
>>
32
)
+
tmp
;
tmp
=
multiswap_step
(
keys
+
6
,
b
);
c
+=
tmp
;
c
+=
tmp
;
return
((
uint64_t
)
c
<<
32
)
|
tmp
;
}
...
...
@@ -121,25 +128,28 @@ static uint64_t multiswap_enc(const uint32_t keys[12], uint64_t key, uint64_t da
* @param data data to decrypt
* @return decrypted data
*/
static
uint64_t
multiswap_dec
(
const
uint32_t
keys
[
12
],
uint64_t
key
,
uint64_t
data
)
{
static
uint64_t
multiswap_dec
(
const
uint32_t
keys
[
12
],
uint64_t
key
,
uint64_t
data
)
{
uint32_t
a
;
uint32_t
b
;
uint32_t
c
=
data
>>
32
;
uint32_t
c
=
data
>>
32
;
uint32_t
tmp
=
data
;
c
-=
tmp
;
b
=
multiswap_inv_step
(
keys
+
6
,
tmp
);
c
-=
tmp
;
b
=
multiswap_inv_step
(
keys
+
6
,
tmp
);
tmp
=
c
-
(
key
>>
32
);
b
-=
tmp
;
a
=
multiswap_inv_step
(
keys
,
tmp
);
a
-=
key
;
b
-=
tmp
;
a
=
multiswap_inv_step
(
keys
,
tmp
);
a
-=
key
;
return
((
uint64_t
)
b
<<
32
)
|
a
;
}
void
ff_asfcrypt_dec
(
const
uint8_t
key
[
20
],
uint8_t
*
data
,
int
len
)
{
void
ff_asfcrypt_dec
(
const
uint8_t
key
[
20
],
uint8_t
*
data
,
int
len
)
{
struct
AVDES
des
;
struct
AVRC4
rc4
;
int
num_qwords
=
len
>>
3
;
uint8_t
*
qwords
=
data
;
int
num_qwords
=
len
>>
3
;
uint8_t
*
qwords
=
data
;
uint64_t
rc4buff
[
8
]
=
{
0
};
uint64_t
packetkey
;
uint32_t
ms_keys
[
12
];
...
...
@@ -155,7 +165,7 @@ void ff_asfcrypt_dec(const uint8_t key[20], uint8_t *data, int len) {
av_rc4_crypt
(
&
rc4
,
(
uint8_t
*
)
rc4buff
,
NULL
,
sizeof
(
rc4buff
),
NULL
,
1
);
multiswap_init
((
uint8_t
*
)
rc4buff
,
ms_keys
);
packetkey
=
AV_RN64
(
&
qwords
[
num_qwords
*
8
-
8
]);
packetkey
=
AV_RN64
(
&
qwords
[
num_qwords
*
8
-
8
]);
packetkey
^=
rc4buff
[
7
];
av_des_init
(
&
des
,
key
+
12
,
64
,
1
);
av_des_crypt
(
&
des
,
(
uint8_t
*
)
&
packetkey
,
(
uint8_t
*
)
&
packetkey
,
1
,
NULL
,
1
);
...
...
libavformat/asfdec.c
View file @
48a4ffa7
This diff is collapsed.
Click to expand it.
libavformat/asfenc.c
View file @
48a4ffa7
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