media player가 동영상을 실행하는 내부과정이 궁금합니다..
제가 동영상 player code를 분석하려고 하는데요..
요 몇일 했는데도, 너무 맨땅에 헤딩하는 기분이 들어서, 동영상이 실행되는
내부적인 흐름을 대충이라도 알았으면 합니다..
1) 제가 생각하기에는 전체적인 그림은 인코딩된 동영상 데이타(*.avi, *.mpeg)등이 코덱에 의해서
디코딩된후, 디코딩된 데이터가 play되는 것으로 판단하고 있습니다..
그리고, play된다는 것은 각각의 프레임(하나의 화면)이 연속적으로 streaming 된다고 생각했습니다.
2) 그렇다면, 코드상에서 디코딩에 관련된 함수를 실행한후, 디코딩된 데이터를 play를 시켜야 할텐데요,
소스를 따라가다 보면, 디코딩(코덱)에 관련된 함수를 호출 하는 것 같지 않습니다..
거의 대부분의 실제 실행은 gtk 함수가 실행
3) 코덱과 gtk의 관계도 궁금합니다.
코덱에서 디코딩을 한후, 각각의 프레임(하나의화면)까지 추출한 후 이 결과를 gtk를 이용해서
화면에 뿌려주는 것인지, 아니면, 코덱에서는 단지 디코딩만을 하고, gtk에서 디코딩된 데이터에서
프레임을 추출한 후 화면에 뿌려주는것(streaming)까지 하는 것이지 궁금합니다..
1),2),3) 모두 제가 개인적으로 생각한 내용이구요.. 아마도 제가 잘못 생각하고 있는 내용이 많을것
같습니다. 잘못된 내용 지적해주시구요.. 제 생각에 동영상을 재생할때의 대부분의 작업은, 프레임을
추출하는 작업과 이 프레임들을 연속적으로 streaming해주는 것이라고 생각하고 있습니다..
아직 코덱이 정확이 뭔지도 모르고 gtk 다큐먼트도 정독하기 전입니다.. 제가 왠지 삽질할것 같은
불길한 예감이 들어서, 프레임을 뽑아내거나, streaming에 관련된 대표적인 함수 등이 있다면,
알려주시면, 제가 왠지 몇일은 덜 삽질할것 같습니다..
그리고, 코덱과 gtk와의 관계는 정말 궁금하구요...
제가 잠깐 본 코드는 gnome_mplayer이고 마지막으로는 mplayer를 분석하려고 합니다..
위 내용과 관련이 없더라고, 코드를 이해하기위해 필요한 내용있으면 말씀해 주세요..
감사합니다..
댓글 달기