mirror of
https://github.com/mpv-player/mpv
synced 2024-12-17 20:34:58 +00:00
44 lines
1.0 KiB
Python
44 lines
1.0 KiB
Python
#!/usr/bin/env python
|
|
|
|
# Script to embed arbitrary binary files in C header files.
|
|
|
|
CHARS_PER_LINE = 19
|
|
|
|
import sys
|
|
import os
|
|
|
|
if len(sys.argv) != 3:
|
|
print("Embed binary files in C headers.")
|
|
print("Usage: ")
|
|
print(" bin_to_header.py infile outfile.h")
|
|
print("outfile.h will be overwritten with the new contents.")
|
|
sys.exit(1)
|
|
|
|
infile_name = sys.argv[1]
|
|
outfile_name = sys.argv[2]
|
|
|
|
varname = os.path.splitext(os.path.basename(outfile_name))[0]
|
|
|
|
infile = open(infile_name, "rb")
|
|
outfile = open(outfile_name, "w")
|
|
|
|
outfile.write("// Generated with " + " ".join(sys.argv) + "\n")
|
|
outfile.write("\nstatic const unsigned char " + varname + "[] = {\n")
|
|
|
|
while True:
|
|
data = infile.read(CHARS_PER_LINE)
|
|
if len(data) == 0:
|
|
break
|
|
outfile.write(" ")
|
|
for c in data:
|
|
# make it work both in Python 2.x (c is str) and 3.x (c is int)
|
|
if type(c) != int:
|
|
c = ord(c)
|
|
outfile.write("{0:3},".format(c))
|
|
outfile.write("\n")
|
|
|
|
outfile.write("};\n")
|
|
|
|
infile.close()
|
|
outfile.close()
|