Skip to content

Instantly share code, notes, and snippets.

View MathieuDuponchelle's full-sized avatar

Mathieu Duponchelle MathieuDuponchelle

View GitHub Profile
from functools import wraps
from schema import Schema
def function_validator(*pos_args, args_schema=None, kwargs_schema=None):
args_schema = args_schema or Schema([])
def decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
new_args = []
(gdb) bt
#0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1 0x00000031fd009cc1 in _L_lock_885 () from /lib64/libpthread.so.0
#2 0x00000031fd009bda in __GI___pthread_mutex_lock (mutex=0x28a0d80) at pthread_mutex_lock.c:85
#3 0x00007fffd75f8c31 in gst_adder_sink_event (pads=0xc75cd0 [GstCollectPads], pad=0x2e02630, event=0x2f8e920, user_data=<optimized out>) at gstadder.c:837
#4 0x00007fffee0ba372 in gst_collect_pads_event (pad=<optimized out>, parent=<optimized out>, event=0x2f8e920) at gstcollectpads.c:1815
#5 0x00007fffef3b1d4a in gst_pad_send_event_unchecked (pad=pad@entry=0x7fffa8024fd0 [GstAdderPad], event=event@entry=0x2f8e920, type=type@entry=320) at gstpad.c:4983
#6 0x00007fffef3b240c in gst_pad_push_event_unchecked (pad=pad@entry=0x2df2c40 [GstGhostPad], event=event@entry=0x2f8e920, type=320, type@entry=GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) at gstpad.c:4679
#7 0x00007fffef3bb46e in gst_pad_push_event (pad=pad@entry=0x2df2c40 [GstGhostPad], event=0x2f8e920) at
@MathieuDuponchelle
MathieuDuponchelle / mixit.py
Last active October 17, 2016 22:16
Gstreamer-editing-services used to make a fancy mixing script.
from gi.repository import GstPbutils
from gi.repository import Gtk
from gi.repository import Gst
from gi.repository import GES
from gi.repository import GObject
import sys
import signal
def handle_sigint(sig, frame):
@MathieuDuponchelle
MathieuDuponchelle / GESController
Created May 3, 2012 22:22
This is a design document for the upcoming GESController.
+------------+
| Controller |
+------------+
+---------+
| Summary |
+---------+
1. First thoughts
2. Problems
tlobject = ges.TimelineFileSource("mon/super/film/porno/")
effect = ges.Effect("mon/super/kaleidoscope")
video_track_object = tlobject.get_video_track_object() <-- Cette helper function pourrait etre sympa
video_track_object.set_effect("mon/super/kaleidoscope")
controller = ges.Controller(effect)