1. mpeg sectoin parser

Program Lang./C++ 2016. 7. 13. 22:18

MPEG-2 Part 1, Analyzer를 c++ 공부 차원에서 한번 만들어 보기로 하자.

첫번째 클래스는 ts파일에서 188 바이트씩 읽어와서 section을 넘겨주는 section parser이다.


완전 단순하게 adaptation field을 보고 PID와 PID에 해당하는 section을 단순히 넘기는 클래스이다.

다음에 이어질 PSI (PAT, PMT, SDT ...)에서 사용하기 위함.


사실 셋탑박스나 TV단에서는 system decoder 블록이 별도로 존재하고 chip 자체적으로

PID만 주면 해당 PID에 대한 첫번째 section부터 마지막 setion까지 수신 후,

callback function으로 section을 return해 준다. 기본 길이는 1024 ~ 4096 Byte이다.

이 동작은 네가 경험한 chip에서는 모두 동작이 동일하다.


블로그에 올릴 떄는 현재 기준으로 파일만 대응했는데, IP에서도 가능하도록 도전해 볼 생각이다.


1 소스트리

.

├── CMakeLists.txt

├── SGP.ts

├── psi_glob.h

├── remove.sh

├── section.cpp

├── section.h

├── test.cpp

└── types.h


2. section class header


3. section class


4. test을 위한 main


test는 단순하다. 단순하게 파일해서 188Byte씩 읽어 들이고 setion이라는 구조를 선언하고 이 구조체에

현재 ts에 대한 pid값과 ts header를 제거한 부분을 구조체 버퍼에 넣어서 올려준다.




5. 전체 소스 (github 아래 링크에 존재)


https://github.com/heesoon/mpeg/tree/master/test/section

: