mirror of
https://github.com/kkroening/ffmpeg-python.git
synced 2025-04-06 04:15:44 +08:00
#18: have view
operator return stream_spec
This commit is contained in:
parent
0d63a9e801
commit
8a761f055d
@ -1,5 +1,6 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from builtins import str
|
||||||
from .dag import get_outgoing_edges
|
from .dag import get_outgoing_edges
|
||||||
from ._run import topo_sort
|
from ._run import topo_sort
|
||||||
import os
|
import os
|
||||||
@ -7,6 +8,7 @@ import tempfile
|
|||||||
|
|
||||||
from ffmpeg.nodes import (
|
from ffmpeg.nodes import (
|
||||||
FilterNode,
|
FilterNode,
|
||||||
|
get_stream_map,
|
||||||
InputNode,
|
InputNode,
|
||||||
OutputNode,
|
OutputNode,
|
||||||
Stream,
|
Stream,
|
||||||
@ -30,7 +32,7 @@ def _get_node_color(node):
|
|||||||
|
|
||||||
|
|
||||||
@stream_operator()
|
@stream_operator()
|
||||||
def view(*streams, **kwargs):
|
def view(stream_spec, **kwargs):
|
||||||
try:
|
try:
|
||||||
import graphviz
|
import graphviz
|
||||||
except ImportError:
|
except ImportError:
|
||||||
@ -43,7 +45,8 @@ def view(*streams, **kwargs):
|
|||||||
filename = tempfile.mktemp()
|
filename = tempfile.mktemp()
|
||||||
|
|
||||||
nodes = []
|
nodes = []
|
||||||
for stream in streams:
|
stream_map = get_stream_map(stream_spec)
|
||||||
|
for stream in stream_map.values():
|
||||||
if not isinstance(stream, Stream):
|
if not isinstance(stream, Stream):
|
||||||
raise TypeError('Expected Stream; got {}'.format(type(stream)))
|
raise TypeError('Expected Stream; got {}'.format(type(stream)))
|
||||||
nodes.append(stream.node)
|
nodes.append(stream.node)
|
||||||
@ -51,8 +54,8 @@ def view(*streams, **kwargs):
|
|||||||
sorted_nodes, outgoing_edge_maps = topo_sort(nodes)
|
sorted_nodes, outgoing_edge_maps = topo_sort(nodes)
|
||||||
graph = graphviz.Digraph()
|
graph = graphviz.Digraph()
|
||||||
graph.attr(rankdir='LR')
|
graph.attr(rankdir='LR')
|
||||||
if len(kwargs.keys()) != 0:
|
if len(list(kwargs.keys())) != 0:
|
||||||
raise ValueError('Invalid kwargs key(s): {}'.format(', '.join(kwargs.keys())))
|
raise ValueError('Invalid kwargs key(s): {}'.format(', '.join(list(kwargs.keys()))))
|
||||||
|
|
||||||
for node in sorted_nodes:
|
for node in sorted_nodes:
|
||||||
name = node.name
|
name = node.name
|
||||||
@ -83,6 +86,7 @@ def view(*streams, **kwargs):
|
|||||||
|
|
||||||
graph.view(filename)
|
graph.view(filename)
|
||||||
|
|
||||||
|
return stream_spec
|
||||||
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user