From d36cb6af6d0a9bcd32b141308d82e2cf2934129b Mon Sep 17 00:00:00 2001 From: jb-alvarado Date: Wed, 24 Mar 2021 17:24:31 +0100 Subject: [PATCH] rename and uppercase constans, rename filter function --- ffplayout/filters/README.md | 2 +- ffplayout/filters/a_volume.py | 8 ++-- ffplayout/filters/default.py | 72 ++++++++++++++++----------------- ffplayout/filters/v_drawtext.py | 14 +++---- 4 files changed, 48 insertions(+), 48 deletions(-) diff --git a/ffplayout/filters/README.md b/ffplayout/filters/README.md index b83c410e..49d9aeac 100644 --- a/ffplayout/filters/README.md +++ b/ffplayout/filters/README.md @@ -4,7 +4,7 @@ Add your one filters here. They must have the correct file naming: - for audio filter: a_[filter name].py - for video filter: v_[filter name].py -The file itself should contain only one filter in a function named `def filter(prope):` +The file itself should contain only one filter in a function named `def filter_link(prope):` Check **v_addtext.py** for example. diff --git a/ffplayout/filters/a_volume.py b/ffplayout/filters/a_volume.py index db6331f6..a2b6f23f 100644 --- a/ffplayout/filters/a_volume.py +++ b/ffplayout/filters/a_volume.py @@ -1,10 +1,10 @@ -from ffplayout.utils import get_float, stdin_args +from ffplayout.utils import STDIN_ARGS, get_float -def filter(node): +def filter_link(node): """ set audio volume """ - if stdin_args.volume and get_float(stdin_args.volume, False): - return f'volume={stdin_args.volume}' + if STDIN_ARGS.volume and get_float(STDIN_ARGS.volume, False): + return f'volume={STDIN_ARGS.volume}' diff --git a/ffplayout/filters/default.py b/ffplayout/filters/default.py index 3fc06853..11942eec 100644 --- a/ffplayout/filters/default.py +++ b/ffplayout/filters/default.py @@ -23,7 +23,7 @@ import re from glob import glob from pydoc import locate -from ffplayout.utils import _global, _pre, _text, is_advertisement, messenger +from ffplayout.utils import GENERAL, PRE, TEXT, is_advertisement, messenger # ------------------------------------------------------------------------------ # building filters, @@ -35,12 +35,12 @@ def text_filter(): filter_chain = [] font = '' - if _text.add_text and _text.over_pre: - if _text.fontfile and os.path.isfile(_text.fontfile): - font = f":fontfile='{_text.fontfile}'" + if TEXT.add_text and TEXT.over_pre: + if TEXT.fontfile and os.path.isfile(TEXT.fontfile): + font = f":fontfile='{TEXT.fontfile}'" filter_chain = [ "null,zmq=b=tcp\\\\://'{}',drawtext=text=''{}".format( - _text.address.replace(':', '\\:'), font)] + TEXT.address.replace(':', '\\:'), font)] return filter_chain @@ -67,13 +67,13 @@ def pad_filter(probe): filter_chain = [] if not math.isclose(probe.video[0]['aspect'], - _pre.aspect, abs_tol=0.03): - if probe.video[0]['aspect'] < _pre.aspect: + PRE.aspect, abs_tol=0.03): + if probe.video[0]['aspect'] < PRE.aspect: filter_chain.append( - f'pad=ih*{_pre.w}/{_pre.h}/sar:ih:(ow-iw)/2:(oh-ih)/2') - elif probe.video[0]['aspect'] > _pre.aspect: + f'pad=ih*{PRE.w}/{PRE.h}/sar:ih:(ow-iw)/2:(oh-ih)/2') + elif probe.video[0]['aspect'] > PRE.aspect: filter_chain.append( - f'pad=iw:iw*{_pre.h}/{_pre.w}/sar:(ow-iw)/2:(oh-ih)/2') + f'pad=iw:iw*{PRE.h}/{PRE.w}/sar:(ow-iw)/2:(oh-ih)/2') return filter_chain @@ -84,8 +84,8 @@ def fps_filter(probe): """ filter_chain = [] - if probe.video[0]['fps'] != _pre.fps: - filter_chain.append(f'fps={_pre.fps}') + if probe.video[0]['fps'] != PRE.fps: + filter_chain.append(f'fps={PRE.fps}') return filter_chain @@ -97,13 +97,13 @@ def scale_filter(probe): """ filter_chain = [] - if int(probe.video[0]['width']) != _pre.w or \ - int(probe.video[0]['height']) != _pre.h: - filter_chain.append(f'scale={_pre.w}:{_pre.h}') + if int(probe.video[0]['width']) != PRE.w or \ + int(probe.video[0]['height']) != PRE.h: + filter_chain.append(f'scale={PRE.w}:{PRE.h}') if not math.isclose(probe.video[0]['aspect'], - _pre.aspect, abs_tol=0.03): - filter_chain.append(f'setdar=dar={_pre.aspect}') + PRE.aspect, abs_tol=0.03): + filter_chain.append(f'setdar=dar={PRE.aspect}') return filter_chain @@ -132,22 +132,22 @@ def overlay_filter(duration, ad, ad_last, ad_next): logo_filter = '[v]null' scale_filter = '' - if _pre.add_logo and os.path.isfile(_pre.logo) and not ad: + if PRE.add_logo and os.path.isfile(PRE.logo) and not ad: logo_chain = [] - if _pre.logo_scale and \ - re.match(r'\d+:-?\d+', _pre.logo_scale): - scale_filter = f'scale={_pre.logo_scale},' + if PRE.logo_scale and \ + re.match(r'\d+:-?\d+', PRE.logo_scale): + scale_filter = f'scale={PRE.logo_scale},' logo_extras = (f'format=rgba,{scale_filter}' - f'colorchannelmixer=aa={_pre.logo_opacity}') + f'colorchannelmixer=aa={PRE.logo_opacity}') loop = 'loop=loop=-1:size=1:start=0' - logo_chain.append(f'movie={_pre.logo},{loop},{logo_extras}') + logo_chain.append(f'movie={PRE.logo},{loop},{logo_extras}') if ad_last: logo_chain.append('fade=in:st=0:d=1.0:alpha=1') if ad_next: logo_chain.append(f'fade=out:st={duration - 1}:d=1.0:alpha=1') logo_filter = (f'{",".join(logo_chain)}[l];[v][l]' - f'{_pre.logo_filter}:shortest=1') + f'{PRE.logo_filter}:shortest=1') return logo_filter @@ -172,9 +172,9 @@ def add_loudnorm(probe): """ loud_filter = [] - if probe.audio and _pre.add_loudnorm: + if probe.audio and PRE.add_loudnorm: loud_filter = [ - f'loudnorm=I={_pre.loud_i}:TP={_pre.loud_tp}:LRA={_pre.loud_lra}'] + f'loudnorm=I={PRE.loud_i}:TP={PRE.loud_tp}:LRA={PRE.loud_lra}'] return loud_filter @@ -209,11 +209,11 @@ def extend_video(probe, duration, target_duration): def realtime_filter(duration, track=''): speed_filter = '' - if _pre.realtime: + if PRE.realtime: speed_filter = f',{track}realtime=speed=1' - if _global.time_delta < 0: - speed = duration / (duration + _global.time_delta) + if GENERAL.time_delta < 0: + speed = duration / (duration + GENERAL.time_delta) if speed < 1.1: speed_filter = f',{track}realtime=speed={speed}' @@ -229,11 +229,11 @@ def split_filter(filter_type): if filter_type == 'a': prefix = 'a' - if _pre.output_count > 1: - for num in range(_pre.output_count): + if PRE.output_count > 1: + for num in range(PRE.output_count): map_node.append(f'[{filter_type}out{num + 1}]') - _filter = f',{prefix}split={_pre.output_count}{"".join(map_node)}' + _filter = f',{prefix}split={PRE.output_count}{"".join(map_node)}' else: _filter = f'[{filter_type}out1]' @@ -245,10 +245,10 @@ def custom_filter(type, node): filter_dir = os.path.dirname(os.path.abspath(__file__)) filters = [] - for filter in glob(os.path.join(filter_dir, f'{type}_*')): - filter = os.path.splitext(os.path.basename(filter))[0] - filter_func = locate(f'ffplayout.filters.{filter}.filter') - link = filter_func(node) + for filter_file in glob(os.path.join(filter_dir, f'{type}_*')): + filter_ = os.path.splitext(os.path.basename(filter_file))[0] + filter_function = locate(f'ffplayout.filters.{filter_}.filter_link') + link = filter_function(node) if link is not None: filters.append(link) diff --git a/ffplayout/filters/v_drawtext.py b/ffplayout/filters/v_drawtext.py index ad093703..e53e0063 100644 --- a/ffplayout/filters/v_drawtext.py +++ b/ffplayout/filters/v_drawtext.py @@ -1,21 +1,21 @@ import os import re -from ffplayout.utils import _text +from ffplayout.utils import TEXT -def filter(node): +def filter_link(node): """ extract title from file name and overlay it """ font = '' source = os.path.basename(node.get('source')) - match = re.match(_text.regex, source) + match = re.match(TEXT.regex, source) title = match[1] if match else source - if _text.fontfile and os.path.isfile(_text.fontfile): - font = f":fontfile='{_text.fontfile}'" + if TEXT.fontfile and os.path.isfile(TEXT.fontfile): + font = f":fontfile='{TEXT.fontfile}'" - if _text.text_from_filename: + if TEXT.text_from_filename: escape = title.replace("'", "'\\\\\\''").replace("%", "\\\\\\%") - return f"drawtext=text='{escape}':{_text.style}{font}" + return f"drawtext=text='{escape}':{TEXT.style}{font}"