def get_page_layout(page): assert isinstance(page, Poppler.Page) capsule = page.__gpointer__ page_addr = PyCapsule_GetPointer(capsule, None) rectangles = LP_Poppler_Rectangle() n_rectangles = ctypes.c_uint(0) has_text = poppler_page_get_text_layout(page_addr, ctypes.byref(rectangles), ctypes.byref(n_rectangles)) try: result = [] if has_text: assert n_rectangles.value > 0, "n_rectangles.value > 0: {}".format(n_rectangles.value) assert rectangles, "rectangles: {}".format(rectangles) for i in range(n_rectangles.value): r = rectangles[i] result.append((r.x1, r.y1, r.x2, r.y2)) return result finally: if rectangles: GLib.free(ctypes.addressof(rectangles.contents))
def get_page_layout(page): assert isinstance(page, Poppler.Page) capsule = page.__gpointer__ page_addr = PyCapsule_GetPointer(capsule, None) rectangles = LP_Poppler_Rectangle() n_rectangles = ctypes.c_uint(0) has_text = poppler_page_get_text_layout(page_addr, ctypes.byref(rectangles), ctypes.byref(n_rectangles)) try: result = [] if has_text: assert n_rectangles.value > 0, "n_rectangles.value > 0: {}".format( n_rectangles.value) assert rectangles, "rectangles: {}".format(rectangles) for i in range(n_rectangles.value): r = rectangles[i] result.append((r.x1, r.y1, r.x2, r.y2)) return result finally: if rectangles: GLib.free(ctypes.addressof(rectangles.contents))
def file_message_cb(bus, msg, data): file_bin = data t = msg.type if t == Gst.MessageType.ERROR: name = msg.src.get_path_string() err, debug = msg.parse_error() print("ERROR: from element %s: %s" % (name, err.message)) if debug is not None: print("Additional debug info:\n%s" % debug) file_bin['rec_mutex'].lock() GLib.source_remove(file_bin['timer_id']) file_bin['timer_id'] = 0 file_bin['filebin'].set_state(Gst.State.NULL) file_bin['rec_mutex'].unlock() GLib.free(err) GLib.free(debug) GLib.free(name) elif t == Gst.MessageType.WARNING: name = msg.src.get_path_string() err, debug = msg.parse_error() print("ERROR: from element %s: %s" % (name, err.message)) if debug is not None: print("Additional debug info:\n%s" % debug) GLib.free(err) GLib.free(debug) GLib.free(name) elif t == Gst.MessageType.EOS: file_bin['rec_mutex'].lock() file_bin['filebin'].set_state(Gst.State.NULL) file_bin['rec_mutex'].unlock() else: pass return True
def snapshot_message_cb(bus, msg, data): snapshot_bin = data t = msg.type if t == Gst.MessageType.ERROR: name = msg.src.get_path_string() err, debug = msg.parse_error() print("ERROR: from element %s: %s" % (name, err.message)) if debug is not None: print("Additional debug info:\n%s" % debug) snapshot_bin['snapshotbin'].set_state(Gst.State.NULL) GLib.free(err) GLib.free(debug) GLib.free(name) elif t == Gst.MessageType.WARNING: name = msg.src.get_path_string() err, debug = msg.parse_warning() print("ERROR: from element %s: %s" % (name, err.message)) if debug is not None: print("Additional debug info:\n%s" % debug) GLib.free(err) GLib.free(debug) GLib.free(name) elif t == Gst.MessageType.EOS: snapshot_bin['snapshotbin'].set_state(Gst.State.NULL) snapshot_bin['snapshotbin'].unref() snapshot_bin['snapshotbin'] = None else: pass return True
def snapshot_message_cb(bus, msg, data): snapshot_bin = data t = msg.type if t == Gst.MessageType.ERROR: name = msg.src.get_path_string() err, debug = msg.parse_error() print("ERROR: from element %s: %s" %(name, err.message)) if debug is not None: print("Additional debug info:\n%s" % debug) snapshot_bin['snapshotbin'].set_state(Gst.State.NULL) GLib.free(err) GLib.free(debug) GLib.free(name) elif t == Gst.MessageType.WARNING: name = msg.src.get_path_string() err, debug = msg.parse_warning() print("ERROR: from element %s: %s" %(name, err.message)) if debug is not None: print("Additional debug info:\n%s" % debug) GLib.free(err) GLib.free(debug) GLib.free(name) elif t == Gst.MessageType.EOS: snapshot_bin['snapshotbin'].set_state(Gst.State.NULL) snapshot_bin['snapshotbin'].unref() snapshot_bin['snapshotbin'] = None else : pass return True
def file_message_cb(bus, msg, data): file_bin = data t = msg.type if t == Gst.MessageType.ERROR: name = msg.src.get_path_string() err, debug = msg.parse_error() print("ERROR: from element %s: %s" %(name, err.message)) if debug is not None: print("Additional debug info:\n%s" % debug) file_bin['rec_mutex'].lock() GLib.source_remove(file_bin['timer_id']) file_bin['timer_id'] = 0 file_bin['filebin'].set_state(Gst.State.NULL) file_bin['rec_mutex'].unlock() GLib.free(err) GLib.free(debug) GLib.free(name) elif t == Gst.MessageType.WARNING: name = msg.src.get_path_string() err, debug = msg.parse_error() print("ERROR: from element %s: %s" %(name, err.message)) if debug is not None: print("Additional debug info:\n%s" % debug) GLib.free(err) GLib.free(debug) GLib.free(name) elif t == Gst.MessageType.EOS: file_bin['rec_mutex'].lock() file_bin['filebin'].set_state(Gst.State.NULL) file_bin['rec_mutex'].unlock() else: pass return True