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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#!/usr/bin/python
import sys
import os
import shutil
import random
import guessdcp
if len(sys.argv) < 2:
print 'Syntax: %s <film>' % sys.argv[0]
sys.exit(1)
film = sys.argv[1]
print 'Creating reference Film'
os.system('makedcp -n %s' % film)
videos = os.listdir(os.path.join(film, 'video'))
assert(len(videos) == 1)
full_size = os.path.getsize(os.path.join(film, 'video', videos[0]))
print 'Video MXF is %d bytes long' % full_size
while 1:
film_copy = '%s-copy' % film
try:
shutil.rmtree(film_copy)
except:
pass
print 'Copying %s to %s' % (film, film_copy)
shutil.copytree(film, film_copy)
old_dcp = guessdcp.path(film_copy)
print 'Removing %s and log' % old_dcp
shutil.rmtree(old_dcp)
os.remove(os.path.join(film_copy, 'log'))
truncated_size = random.randint(1, full_size)
print 'Truncating video MXF to %d' % truncated_size
videos = os.listdir(os.path.join(film_copy, 'video'))
assert(len(videos) == 1)
os.system('ls -l %s' % os.path.join(film_copy, 'video'))
os.system('truncate %s --size %d' % (os.path.join(film_copy, 'video', videos[0]), truncated_size))
os.system('ls -l %s' % os.path.join(film_copy, 'video'))
print 'Rebuilding'
os.system('makedcp -n %s' % film_copy)
print 'Checking'
r = os.system('dcpdiff %s %s' % (guessdcp.path(film), guessdcp.path(film_copy)))
if r != 0:
print 'FAIL'
sys.exit(1)
print 'OK'
print
print 'Deleting copy'
shutil.rmtree(film_copy)
|