scheduling modes
2021. 9. 23. 08:30ㆍMultimedia
- 목차
반응형
1. mode 선택 기준
- push
- live streaming에서 선호
- pull
- on-demand로 display 하는 경우에 선호
- ex. video playback
- demuxer, parser, 특정 decoder가 이를 사용
- 주도적(주도권을 갖고)으로 뭔가 처리를 하고자 하는 경우임
- 원하는 시점의 parsing 등
2. mode 별 element의 동작
- 모든 element가 push mode
- 첫 번째 element가 src로 push
- 첫 번째 element가 driving force
- 모든 downstream element는 push mode로 동작해야 함
- 두 번째 element의 sink pad 상의 chain이 호출되어 buffer 처리
- 다음의 sink pad로 전달
- 첫 번째 element가 src로 push
- sink는 pull, src는 push 동작
- 이 element가 driving force임
- sink가 pull, src가 push
- 즉 현재 element가 driving force (GstTask를 지니고 이게 pad_pull_range 호출)
- GstTask를 sink pad에서 동작하여
- pad_pull_range를 호출하여 upstream의 src에 _get_range 호출
- upstream이 _get_range에서 buffer를 채워줌
- 전달 받은 buffer를 src pad에 push
- 이 element가 driving force임
- elem내 모두 pull
- 나는 driving force가 아니라, 내 뒤의 element가 driving force일 수 있음
- pull slave 이며, 뒤에 어느 element가 driving dforce
- 나는 pull의 slave
- 내 sink의 pull_range를 호출
- 나는 driving force가 아니라, 내 뒤의 element가 driving force일 수 있음
3. 모드의 동작
- push mode
- 앞 element가 자신의 src pad에 pad_push하면,
- sink pad의 chain 함수가 호출되고, 다시 source로 push
- 이렇게 모든 downstream element들의 _chain() 함수가 호출됨
- pull mode
- 나의 sink pad에 대해 pull_range 하면,
- 앞 elem의 src pad의 get_range에서 buffer를 채워줌
- pad의 활성화
- 기본 mode는 push mode임
- _activate에서 다른 mode로 설정 가능
반응형
'Multimedia' 카테고리의 다른 글
GST tag (0) | 2021.09.23 |
---|---|
GST clock running-time (0) | 2021.09.23 |
GST events (0) | 2021.09.23 |
GST memory (0) | 2021.09.23 |
caps (0) | 2021.09.23 |