[downloader/f4m] The last value in a tag is the tag length

This commit is contained in:
Antti Ajanki 2015-01-05 20:22:17 +02:00
parent 3b8f3a1504
commit 2c322cc5d6

View File

@ -187,6 +187,10 @@ def build_fragments_list(boot_info):
return res return res
def write_unsigned_int(stream, val):
stream.write(struct_pack('!I', val))
def write_flv_header(stream): def write_flv_header(stream):
"""Writes the FLV header to stream""" """Writes the FLV header to stream"""
# FLV header # FLV header
@ -198,6 +202,8 @@ def write_flv_header(stream):
def write_metadata_tag(stream, metadata): def write_metadata_tag(stream, metadata):
"""Writes optional metadata tag to stream""" """Writes optional metadata tag to stream"""
FLV_TAG_HEADER_LEN = 11
if metadata: if metadata:
# Script data # Script data
stream.write(b'\x12') stream.write(b'\x12')
@ -205,9 +211,7 @@ def write_metadata_tag(stream, metadata):
stream.write(struct_pack('!L', len(metadata))[1:]) stream.write(struct_pack('!L', len(metadata))[1:])
stream.write(b'\x00\x00\x00\x00\x00\x00\x00') stream.write(b'\x00\x00\x00\x00\x00\x00\x00')
stream.write(metadata) stream.write(metadata)
# Magic numbers extracted from the output files produced by AdobeHDS.php write_unsigned_int(stream, FLV_TAG_HEADER_LEN + len(metadata))
# (https://github.com/K-S-V/Scripts)
stream.write(b'\x00\x00\x01\x73')
def _add_ns(prop): def _add_ns(prop):