mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Utility to add a cached index to an existing movie file.
This commit is contained in:
parent
269b2a2eb7
commit
5c1797ac23
1 changed files with 79 additions and 0 deletions
79
Demo/sgi/video/Vaddcache.py
Executable file
79
Demo/sgi/video/Vaddcache.py
Executable file
|
@ -0,0 +1,79 @@
|
|||
#! /usr/local/python
|
||||
|
||||
# Add a cache to each of the files given as command line arguments
|
||||
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# Vaddcache [file] ...
|
||||
|
||||
|
||||
# Options:
|
||||
#
|
||||
# file ... : file(s) to inspect; default film.video
|
||||
|
||||
|
||||
import sys
|
||||
sys.path.append('/ufs/guido/src/video')
|
||||
import VFile
|
||||
import getopt
|
||||
|
||||
|
||||
# Global options
|
||||
|
||||
# None
|
||||
|
||||
|
||||
# Main program -- mostly command line parsing
|
||||
|
||||
def main():
|
||||
opts, args = getopt.getopt(sys.argv[1:], '')
|
||||
if not args:
|
||||
args = ['film.video']
|
||||
sts = 0
|
||||
for filename in args:
|
||||
if process(filename):
|
||||
sts = 1
|
||||
sys.exit(sts)
|
||||
|
||||
|
||||
# Process one file
|
||||
|
||||
def process(filename):
|
||||
try:
|
||||
fp = open(filename, 'r+')
|
||||
vin = VFile.RandomVinFile().initfp(fp, filename)
|
||||
except IOError, msg:
|
||||
sys.stderr.write(filename + ': I/O error: ' + `msg` + '\n')
|
||||
return 1
|
||||
except VFile.Error, msg:
|
||||
sys.stderr.write(msg + '\n')
|
||||
return 1
|
||||
except EOFError:
|
||||
sys.stderr.write(filename + ': EOF in video file\n')
|
||||
return 1
|
||||
|
||||
try:
|
||||
vin.readcache()
|
||||
hascache = 1
|
||||
except VFile.Error:
|
||||
hascache = 0
|
||||
|
||||
if hascache:
|
||||
sys.stderr.write(filename + ': already has a cache\n')
|
||||
vin.close()
|
||||
return 1
|
||||
|
||||
vin.printinfo()
|
||||
vin.warmcache()
|
||||
vin.writecache()
|
||||
vin.close()
|
||||
return 0
|
||||
|
||||
|
||||
# Don't forget to call the main program
|
||||
|
||||
try:
|
||||
main()
|
||||
except KeyboardInterrupt:
|
||||
print '[Interrupt]'
|
Loading…
Add table
Add a link
Reference in a new issue