scheduling modes

2021. 9. 23. 08:30Multimedia

    목차
반응형

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로 전달
  • 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
  • elem내 모두 pull
    • 나는 driving force가 아니라, 내 뒤의 element가 driving force일 수 있음
      • pull slave 이며, 뒤에 어느 element가 driving dforce
    • 나는 pull의 slave
    • 내 sink의 pull_range를 호출

 

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