Beispiel #1
0
 def __init__(self, filename, grey=False):
     self.m = ffi.new("struct mjpg *")
     self.fcnt = 0
     if grey:
         r = lib.mjpg_open(self.m, filename, lib.IMTYPE_GRAY, lib.IMORDER_PLANAR)
         self.channels = 1
     else:
         r = lib.mjpg_open(self.m, filename, lib.IMTYPE_RGB, lib.IMORDER_INTERLEAVED)
         self.channels = 3
     if r != lib.OK:
         raise IOError("Failed to open: " + filename)
Beispiel #2
0
 def __init__(self, filename, grey=False):
     self.m = ffi.new("struct mjpg *")
     self.fcnt = 0
     if grey:
         r = lib.mjpg_open(self.m, filename, lib.IMTYPE_GRAY,
                           lib.IMORDER_INTERLEAVED)
         self.channels = 1
     else:
         r = lib.mjpg_open(self.m, filename, lib.IMTYPE_RGB,
                           lib.IMORDER_INTERLEAVED)
         self.channels = 3
     if r != lib.OK:
         raise IOError("Failed to open: " + filename)
Beispiel #3
0
def jpg_info(filename):
    """
    Reads a single jpeg image from the file *filename* and extracts the Axis user data header.
    The information it contains is returned as a dict with the keys "hwid", "serial_numer" and
    "firmware_version".
    """
    if sys.version_info > (3, ):
        filename = bytes(filename, "utf8")
    m = ffi.new("struct mjpg *")
    r = lib.mjpg_open(m, filename, lib.IMTYPE_GRAY, lib.IMORDER_PLANAR)
    lib.mjpg_next_head(m)
    res = {
        'hwid': ffi.string(m.hwid),
        'serial_number': ffi.string(m.serial),
        'firmware_version': ffi.string(m.firmware),
        'timestamp': m.timestamp_sec + m.timestamp_usec / 1000000.0
    }
    lib.mjpg_close(m)
    return res