asf: export all the DRM stuff, some of it are human readable strings.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
6322a31df3
commit
2eaa55375b
@ -165,6 +165,9 @@ static void get_tag(AVFormatContext *s, const char *key, int type, int len)
|
||||
|
||||
if (type == 0) { // UTF16-LE
|
||||
avio_get_str16le(s->pb, len, value, 2*len + 1);
|
||||
} else if (type == -1) { // ASCII
|
||||
get_buffer(s->pb, value, len);
|
||||
value[len]=0;
|
||||
} else if (type > 1 && type <= 5) { // boolean or DWORD or QWORD or WORD
|
||||
uint64_t num = get_value(s->pb, type);
|
||||
snprintf(value, len, "%"PRIu64, num);
|
||||
@ -636,8 +639,18 @@ static int asf_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
||||
} else {
|
||||
if (!s->keylen) {
|
||||
if (!ff_guidcmp(&g, &ff_asf_content_encryption)) {
|
||||
unsigned int len;
|
||||
AVPacket pkt;
|
||||
av_log(s, AV_LOG_WARNING, "DRM protected stream detected, decoding will likely fail!\n");
|
||||
av_dict_set(&s->metadata, "encryption", "ASF Content Encryption", 0);
|
||||
len= avio_rl32(pb);
|
||||
av_log(s, AV_LOG_DEBUG, "Secret data:\n");
|
||||
av_get_packet(pb, &pkt, len); av_hex_dump_log(s, AV_LOG_DEBUG, pkt.data, pkt.size); av_free_packet(&pkt);
|
||||
len= avio_rl32(pb);
|
||||
get_tag(s, "ASF_Protection_Type", -1, len);
|
||||
len= avio_rl32(pb);
|
||||
get_tag(s, "ASF_Key_ID", -1, len);
|
||||
len= avio_rl32(pb);
|
||||
get_tag(s, "ASF_License_URL", -1, len);
|
||||
} else if (!ff_guidcmp(&g, &ff_asf_ext_content_encryption)) {
|
||||
av_log(s, AV_LOG_WARNING, "Ext DRM protected stream detected, decoding will likely fail!\n");
|
||||
av_dict_set(&s->metadata, "encryption", "ASF Extended Content Encryption", 0);
|
||||
|
Loading…
Reference in New Issue
Block a user