media player가 동영상을 실행하는 내부과정이 궁금합니다..

lucadi의 이미지

제가 동영상 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를 분석하려고 합니다..

위 내용과 관련이 없더라고, 코드를 이해하기위해 필요한 내용있으면 말씀해 주세요..
감사합니다..

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.