분류 전체보기(422)
-
Ghost pads
Element들은 다른 Element와 연결하기 위해 각각 pads를 가지고 있다. 그렇다면 Bin은? Bin 자체도 내부 Element와 연결하거나 외부로부터 데이터를 받기 위해서는 pad가 있어야 하는 것 아닌가? 그래서 생긴게 바로 Ghost pads이다. 그림에서 보면 Element1의 sink pad는 이제 bin의 sink pad 역할도 함께 담당하게 된다. ghostpad는 gst_ghost_pad_new()를 사용하여 생성한다.
2013.07.31 -
Capabilities의 사용 용도
Capabilities(짧게 앞으로는 cap) 는 pad에서 지원하고 있는 데이터의 type에 대해 기술하고 있다. 그렇다면 이러한 cap을 과연 어떤 용도로 사용하게 될까?해당 메뉴얼에서는 크게 4가지의 사용 방법을 제시하고 있다. Autoplugging- element가 자동으로 cap이 지원하는 pad를 연결할 수 있도록 하는 autoplugging을 지원한다. Compatibility detection- 두 개의 pads가 서로 연결되어 있다고 한다면, GStreamer는 해당 pads가 동일한 미디어 타입을 지원하는 지를 검증할 수 있다.- cap을 통해 해당 검증을 가능케 해준다. Metadata- pad로부터 cap 정보를 읽음으로써, application은 현재 pad에 흐르고 있는 미디어..
2013.07.30 -
Capabilities of a pad
Pad의 capabilities를 사용함으로써 어떤 data type이 pad를 통해 흘러들어가고 나가는지를 확인할 수 있다.Pad의 capabilities는 GstCaps 객체에 의해 기술된다. 내부적으로 GstCaps는 하나 이상의 GstStructure를 포함하고 있으며, 이 GstStructure는 하나의 미디어 타입에 대해 기술해 놓고 있다.간단히 "vorbisdec" element를 예로 들자면, 해당 element에 대해 gst-inspect로 분석해 보면, source pad와 sink pad가 각각 한개씩 존재하는 것을 알 수 있다. source pad는 raw audio mime 타입의 데이터("audio/x-raw-float")를 다음 element로 전송하고 있고 sink pad는 ..
2013.07.29 -
Pads
Pad 타입은 'direction'과 'availability'. 두 가지 프로퍼티에 의해 정의된다. 이 전에도 설명한 것과 같이 GStreamer에서는 'source pad'와 'sink pad'라는 두 개의 pad direction을 정의한다.source pad와 sink pad는 이전에도 설명한 적이 있으니 skip~또한 pad는 세 개의 availability를 가진다.바로 always, sometimes 그리고 on request.always pad는 항상 존재하는 pad를 말하고, sometimes pad는 어떤 특정 경우에는 존재하는 pad를 말한다.on request pad는 application에 의해 요청이 들어왔을 때만 존재하는 pad를 말한다. Dynamic(or sometimes)..
2013.07.28 -
Message types
GStreamer는 미리 정의된 Message type을 가지고 있다. 또한 추가적인 message들도 정의가 가능하다. 모든 message들은 message source와 type 그리고 timestamp를 가지고 있다. message source는 어떤 element가 message를 전달했는지를 알기 위해서 사용한다. 아래는 message 목록과 짧은 설명에 대해 기술하였다. Error, warning and information notifications- pipeline의 상태에 대해 사용자에게 알리는 용도로 사용되는 message.- Error message는 치명적인 결함을 알리며, date의 흐름을 종료한다.- Warning은 치명적이진 않지만, 문제를 일으킬 소지가 있다.- Informat..
2013.07.27 -
Bus
Bus는 현재의 thread context 내에서 pipeline thread에서 application으로 메시지를 전송할 때 쓰이는 단순한 시스템이다. bus의 이점은 application이 GStreamer를 사용하기 위해 현재 동작하고 있는 Thread에 대해 전혀 알 필요가 없다는 것이다. 모든 pipeline이 기본적으로 bus를 포함하고 있으며, application은 bus를 따로 생성할 필요가 없다. application은 오직 message handler만 설정하면 된다. mainloop가 돌 때 bus는 주기적으로 새로운 메시지를 체크하고, 메시지가 이용가능하다고 판단되면 callback을 호출한다. Bus를 사용하여 메시지를 가져오는 방법에는 두 가지가 있다. 첫 번째는 GLib ma..
2013.07.26