DirectShow 보유 GraphEdit 파일 포맷   [목차열람] [주소복사] [슬롯비우기]
GraphEdit 파일 포맷
 
Microsoft DirectX 9.0

GraphEdit 파일 포맷

GraphEdit 유틸리티로 DirectShow 필터 그래프를 보존하는 경우,. grf 라고 하는 확장자(extension)를 가지는 보존 파일이 생성 된다. 이 보존 파일은, ActiveMovieGraph 라는 이름의 단일의 스트림을 저장 하고 있다. 이 스트림에는, 모든 필터, 필터명, 파일명, 접속 등에 관한 정보가 포함되어 있다.

다음에 나타내는 문법은, 수정된 BNF (박카스나우아 기법)의 구문을 사용해, 스트림내의 그래프의 구문을 기술한 것이다.

<graph> ::= 0003\r\n<filters><connections><clock>END | 0002\r\n<filters><connections>END
<filters> ::= FILTERS<b> [<filter list><b>]
<filter list> ::= <filter><b> [<filter list>]
<filter> ::= <filter id><b><name><b><class id><b>[<file>]<length><b1><filter data>
<class id> ::= <guid>
<file> ::= SOURCE <name><b> | SINK <name><b>
<connections> ::= CONNECTIONS<b> {<connection><b>}
<connection> ::= <filter id><b><pin id><b><filter id><b><pin id><b><media type>
<filter id> ::= <id>
<pin id> ::= <name>
<media type> ::= <sample size><major type><b><subtype><b><flags><format>
<major type> ::= <guid>
<subtype> ::= <guid>
<flags> ::= <fixed sample size><b><temporal compression><b>
<fixed sample size> ::= 1 | 0
<temporal compression> ::= 1 | 0
<format> ::= <length><b1><format type><b><length><b1><format data>
<format type> ::= <guid>
<format data> ::= { binary_data }
<clock> ::= CLOCK <b><required><b><clockid>\r\n
<required> ::= 1 | 0
<clockid> ::= <filter id> | <class id>
<name> ::= quote_symbol { any_non_quote_character } quote_symbol
<length> ::= unsigned decimal number (as a string), indicating the number 
             of bytes of data in the following token.
<guid> ::= GUID in string format.  for example: {CF49D4E0-1115-11CE-B03A-0020AF0BA770}
<b> ::= { space_character } { \t } { \r } { \n } { <b> }
<b1> ::= space_character
<id> ::= integer (as a string), such as 0001

출력으로는, 필터마다, 접속마다, 및 키워드 FILTERS 와 CONNECTIONS 마다 복귀 개행 ("\r\n")이 삽입된다. 그 이외의 <b> 는 1 개의 공백이다. 키워드 FILTERS, CONNECTIONS, 및 END 는 로컬라이즈 가능하지 않다. 필터 데이터와 포맷 데이터는 바이너리이므로, 부적절한 개행이나 NULL 값등을 포함하는 일이 있다. 이 스트림은 와이드 문자를 사용한다.

이하에 표준적인 그래프를 나타낸다. 접속의 행은 알기 쉽게 하기 위해서 일부뿐이어, 바이너리 데이터는 생략 되고 있다.

003
FILTERS
0001 "C:\SomeFile.avi" {E436EBB5-524F-11CE-9F53-0020AF0BA770} SOURCE "C:\SomeFile.avi" 0000000000 
0002 "AVI Splitter" {1B544C20-FD0B-11CE-8C63-00AA0044B51E} 0000000000 
0003 "AVI Decompressor" {CF49D4E0-1115-11CE-B03A-0020AF0BA770} 0000000000
0004 "Video Renderer" {70E102B0-5556-11CE-97C0-00AA0055595A} 0000000000
CONNECTIONS
0001 "Output" 0002 "input pin" 0000000288 
   {E436EB83-524F-11CE-9F53-0020AF0BA770} 
   {E436EB88-524F-11CE-9F53-0020AF0BA770} 1 0 0000000001 
   {00000000-0000-0000-0000-000000000000} 0000000000  
0002 "Stream 00" 0003 "In" 0000000376 
   {73646976-0000-0010-8000-00AA00389B71} 
   {64697663-0000-0010-8000-00AA00389B71} 0 0 0000000001 
   {05589F80-C356-11CE-BF01-00AA0055595A} 0000000088 <binary data>
0003 "Out" 0004 "In" 0000000376 
    {73646976-0000-0010-8000-00AA00389B71} 
    {E436EB7D-524F-11CE-9F53-0020AF0BA770} 1 0 0000129600 
    {05589F80-C356-11CE-BF01-00AA0055595A} 0000000088 <binary data> 
CLOCK 1 0000
END

참조

↑TOP