2019-03-14 21:37:43 +00:00
|
|
|
"""Transcodes an input video file to Apple II format."""
|
|
|
|
|
|
|
|
import sys
|
|
|
|
|
2019-03-07 23:07:24 +00:00
|
|
|
import movie
|
2019-01-01 21:50:01 +00:00
|
|
|
|
2019-03-10 22:42:31 +00:00
|
|
|
MAX_OUT = 100 * 1024 * 1024
|
2019-01-02 22:16:54 +00:00
|
|
|
|
2019-01-02 23:10:03 +00:00
|
|
|
|
2019-03-14 21:37:43 +00:00
|
|
|
# TODO: flags
|
|
|
|
# - max out
|
2019-03-03 22:21:28 +00:00
|
|
|
|
2019-03-14 21:37:43 +00:00
|
|
|
def main(argv):
|
|
|
|
filename = argv[1]
|
|
|
|
m = movie.Movie(filename)
|
2019-03-10 22:42:31 +00:00
|
|
|
|
2019-03-14 21:45:40 +00:00
|
|
|
if len(argv) >= 3:
|
2019-03-14 21:37:43 +00:00
|
|
|
out_filename = argv[2]
|
|
|
|
else:
|
|
|
|
out_filename = ".".join(filename.split(".")[:-1] + ["a2m"])
|
2019-01-05 23:31:56 +00:00
|
|
|
|
2019-03-14 21:37:43 +00:00
|
|
|
with open(out_filename, "wb") as out:
|
2019-03-07 23:07:24 +00:00
|
|
|
for bytes_out, b in enumerate(m.emit_stream(m.encode())):
|
2019-03-14 21:45:40 +00:00
|
|
|
out.write(bytearray([b]))
|
2019-03-07 23:07:24 +00:00
|
|
|
|
|
|
|
if bytes_out >= MAX_OUT:
|
2019-02-23 23:32:07 +00:00
|
|
|
break
|
2019-01-01 21:50:01 +00:00
|
|
|
|
2019-03-07 23:07:24 +00:00
|
|
|
out.write(bytes(m.done()))
|
2019-01-01 21:50:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2019-03-14 21:37:43 +00:00
|
|
|
main(sys.argv)
|