많은 중첩 된 저장소가있는 GStreamer 응용 프로그램에 대한 그래프를 생성하려고합니다. 각 bin에는 몇 가지 요소가 있지만 parent bin 용 bin은 패드 (싱크 및 소스)가있는 다른 공통 요소와 유사합니다. 시각화하고 싶지만 Graphviz에서는 하위 그래프로 중첩 된 노드를 생성 할 수 없습니다. 불행히도 하위 그래프에는 레코드 모양과 같은 노드 옵션이 없습니다. 내 그래프에서 각 노드는 레코드 모양을 갖지만 하위 그래프는 레코드를 가질 수 없습니다. 예 :레코드 모양의 노드처럼 보이는 그래프 서브 그래프
digraph G
{
graph [rankdir = TD]
node [shape = record]
subgraph cluster_player
{
label = "player"
subgraph cluster_bin1
{
label = "bin1"
bin1_sink1 [label = "sink1"]
bin1_sink2 [label = "sink2"]
obj1 [
label = "{ { <sink1> sink1 | <sink2> sink2 } | obj1 | { <src1> src1 | <src2> src2 } }"
]
bin1_src1 [label = "src1"]
bin1_src2 [label = "src2"]
bin1_sink1:s -> obj1:sink1:n []
bin1_sink2:s -> obj1:sink2:n []
obj1:src1:s -> bin1_src1:n []
obj1:src2:s -> bin1_src2:n []
}
bin1_src1:s -> bin2_sink1:n []
bin1_src2:s -> bin2_sink2:n []
subgraph cluster_bin2
{
label = "bin2"
bin2_sink1 [label = "sink1"]
bin2_sink2 [label = "sink2"]
bin2_obj1 [
label = "{ { <sink1> sink1 | <sink2> sink2 } | obj1 | { <src1> src1 } }"
]
bin2_obj2 [
label = "{ { <sink1> sink1 } | obj2 | { <src1> src1 } }"
]
bin2_src1 [label = "src1"]
bin2_sink1:s -> bin2_obj1:sink1:n []
bin2_sink2:s -> bin2_obj1:sink2:n []
bin2_obj1:src1:s -> bin2_obj2:sink1:n []
bin2_obj2:src1:s -> bin2_src1:n []
}
}
}
이제 쓰레기통에서 소스와 싱크가 정상 요소처럼,하지만 난 그들을 "으로 obj1"레코드처럼보고 싶어 볼 수 있듯이. 그것을하는 방법? 불가능할 수도있는 기능이있는 다른 언어가있을 수 있습니까?
gstreamer의 graphviz 지원이 불충분합니까? GST_DEBUG_DUMP_DOT_DIR envvar 및 관련 매크로를 확인하십시오. – ensonic
더 좋게 만들고 싶기 때문에 그다지 좋지는 않습니다.) –
graphviz 메일 링리스트를 묻는 것은 어떨까요? 현재 양식을 작성하는 데 꽤 많은 시간을 할애했습니다. 노드와 클러스터에 포트가 있으면 실제로 좋을 것입니다. – ensonic