gst-plugins-rs/ci/utils.py
Mathieu Duponchelle 77bf0c945e text: new element for text processing: regex
The element expects an array of "commands", as GstStructures,
in the form:

operation, pattern=<pattern>, ...

The only operation implemented for now is replace-all, eg:

replace-all, pattern=foo, replacement=bar

Other operations can be implemented if useful in the future,
eg. "match" could post a message to the bus when the pattern
is encountered.

The main use case for this is automatic speech recognition,
as implemented by eg awstranscribe as users may want to replace
swear words with tamer language.

Commands are applied in order.

The interface is usable through the CLI with the usual escaping
strategies, though trying to pass in actual regular expressions
through it is a bit tricky, as this introduces yet another
level of escaping.
2021-02-19 15:58:14 +01:00

16 lines
491 B
Python

import os
DIRS = ['audio', 'generic', 'net', 'text', 'utils', 'video']
# Plugins whose name is prefixed by 'rs'
RS_PREFIXED = ['audiofx', 'closedcaption', 'dav1d', 'file', 'json', 'regex']
OVERRIDE = {'wrap': 'rstextwrap', 'flavors': 'rsflv'}
def iterate_plugins():
for d in DIRS:
for name in os.listdir(d):
if name in RS_PREFIXED:
name = "rs{}".format(name)
else:
name = OVERRIDE.get(name, name)
yield name