본문 바로가기

MultiMedia Framework23

Element States element가 생성되었다고 해서 곧바로 어떤 작업을 수행하는 것은 아니다. element의 상태를 변경해야 할 필요가 있다. element는 총 4 가지 상태로 나눌 수 있으며, 다음과 같다. GST_STATE_NULL- default 상태. 이 상태에서는 어떤 resource도 할당 받지 못한 상태이다. - reference count가 0이거나 free 상태일때 element는 반드시 NULL 상태를 유지해야 한다. GST_STATE_READY- ready 상태. element가 resource를 막 할당받은 상태이다. 이 말인 즉, buffer등의 resource가 Stream 내에 보존되고 있다는 말이다.- 하지만 이 상태에서는 Stream이 열려있지는 않다. 그래서 stream 위치는 자동적으.. 2013. 7. 24.
Linking elements Data는 Source element에서 생성되어 0개 또는 다중의 filter element들을 거친 후 결국에는 sink element로 흐르게 된다. 아래는 위의 그림을 코드로 구현한 내용이다. 링크 시 중요한 사항으로 bin 또는 pipeline에 element를 추가할 때, 이미 연결되어 있는 link에 대한 disconnect를 먼저 확인해야 한다.또한 다른 계층 레벨에서 element 또는 pads를 연결하고자 할때는 ghost pads를 사용해야 한다. 이에 대해서는 다음 번에 자세히 살펴봐야 할 것 같다. (아직까진 무슨 소리를 하는건지 잘....) 2013. 7. 23.
Element GStreamer에 있어서 가장 중요한 객체라고 할 수 있다. Source element - 오직 파이프라인을 사용해서 데이터를 생성해 내는 역할. - 디스크로부터 데이터를 읽는다는지, 사운드 카드로부터 데이터를 읽는 것 등을 예로 들 수 있다. - source element 내부엔 오직 source pad만 존재하며 데이터를 생성해 내는 역할만 한다. Filters, convertors, demuxers, muxers and codecs - Filter와 관련된 element 들은 input과 output pad 모두 가지고 있다. - input (Sink) pad를 통하여 데이터를 전송받고 output (Source) pad 를 통해 데이터를 내보낸다. - 1개 이상의 source pad와 sink .. 2013. 7. 16.
GStreamer 초기화 GStreamer를 이용하여 개발하기 위해서는 우선 소스 맨 위에 를 include 해줘야 한다. include 한 이후에는 GStreamer library의 초기화가 필요하다. 초기화하기 위해서는 gst_init이라는 함수를 사용하는데, GStreamer 기반의 명령 라인 옵션을 parsing할 뿐만 아니라 비초기화된 라이브러리들을 초기화 하는 역할을 담당하고 있다.GST_VERSION_MAJOR, GST_VERSION_MINOR, GST_VERSION_MICRO 매크로를 사용하여 GStreamer 버전을 알 수 있다.매크로를 사용하지 않고 gst_version이라는 함수를 사용할 수도 있다. gst_init 아규먼트에 아무런 명령어 옵션을 지정하고 싶지 않다면, NULL 문자를 기입하여도 상관없다. 2013. 7. 15.
GStreamer란? GStreamer란 무엇인가?? 리눅스 기반에서 streaming을 보다 쉽게 처리할 수 있도록 만든 open source framework.기본 디자인은 Direct show와 매우 흡사하다. 위 그림은 GStreamer의 기본적인 architecture를 나타내고 있는데, protocol을 보면 file로도 떨굴 수 있고, http, rtsp로도 쏠 수 있다. GStreamer Term. Elements- GStreamer에 있어 가장 중요한 객체. 연결된 elements 들의 체인을 만들 수도 있으며 이렇게 만들어진 체인을 이용하여 스트림 데이터를 처리할 수도 있다.하나의 element는 하나의 특정 기능을 가질 수 있다. file로부터 데이터를 읽어오는 element라든지, date를 decodi.. 2013. 7. 13.