from .nodes import ( FilterNode, operator, ) @operator() def setpts(parent, expr): return FilterNode([parent], setpts.__name__, expr) @operator() def trim(parent, **kwargs): return FilterNode([parent], trim.__name__, **kwargs) @operator() def overlay(main_parent, overlay_parent, eof_action='repeat', **kwargs): kwargs['eof_action'] = eof_action return FilterNode([main_parent, overlay_parent], overlay.__name__, **kwargs) @operator() def hflip(parent): return FilterNode([parent], hflip.__name__) @operator() def vflip(parent): return FilterNode([parent], vflip.__name__) @operator() def drawbox(parent, x, y, width, height, color, thickness=None, **kwargs): if thickness: kwargs['t'] = thickness return FilterNode([parent], drawbox.__name__, x, y, width, height, color, **kwargs) @operator() def concat(*parents, **kwargs): kwargs['n'] = len(parents) return FilterNode(parents, concat.__name__, **kwargs) @operator() def zoompan(parent, **kwargs): return FilterNode([parent], zoompan.__name__, **kwargs) @operator() def hue(parent, **kwargs): return FilterNode([parent], hue.__name__, **kwargs) @operator() def colorchannelmixer(parent, *args, **kwargs): """Adjust video input frames by re-mixing color channels. `FFmpeg colorchannelmixer filter`_ .. _FFmpeg colorchannelmixer filter: https://ffmpeg.org/ffmpeg-filters.html#toc-colorchannelmixer """ return FilterNode([parent], colorchannelmixer.__name__, **kwargs) __all__ = [ 'colorchannelmixer', 'concat', 'drawbox', 'hflip', 'hue', 'overlay', 'setpts', 'trim', 'vflip', 'zoompan', ]