return None, None, None
lines = output.split('\n')
- matches = [re.match('^ [DEVILSA.]{6} ([\w+_]+) ', l) for l in lines]
- codecs = set([m.group(1) for m in matches if m])
+ lines = [l for l in lines if re.match('^ [DEVILSA.]{6} [^=].*', l)]
+
+ codecs = {}
+ for line in lines:
+ m = re.match('^ [DEVILSA.]{6} ([\w+_]+)', line)
+ if not m:
+ continue
+
+ codec = m.group(1)
+
+ decoders = set()
+ encoders = set()
+
+ m = re.search('decoders: ([\w\s_]+)+', line)
+ if m:
+ decoders = set(m.group(1).split())
+
+ m = re.search('encoders: ([\w\s_]+)+', line)
+ if m:
+ encoders = set(m.group(1).split())
+
+ codecs[codec] = {
+ 'encoders': encoders,
+ 'decoders': decoders
+ }
logging.debug('using ffmpeg version %s' % version)
# TODO also check for motion codec parameter support
- return 'h264_omx' in codecs
+ return 'h264_omx' in codecs.get('h264', {}).get('encoders', set())
def get_rtsp_support():