full version (pat, pmt, sdt)

Program Lang./C++ 2016. 7. 22. 12:43

처음 해보려고 한 목적은 개발 중에 필드에서 Stream 이상한 것이 많다.

이런 것들 항상 자기 컴에 복사해서 분석기로 돌려서 보고, 분석하지만 분석기가 동작이 제 각각이고 내가 보고 싶은 부분만

빨리 보고 싶은데 그러기도 힘들고 분석 후에 파일의 사후 관리도 안된다. 

따라서 중앙 서버에 모든 파일을 두고 여기서 돌리고 브라우져로 결과를 보면 스트림 관리가 편하지 않을까 생각해서

해보려고 했다. 하지만 현실의 벽이 높다.


지금까지 작업을 수행했던 Section, PAT, PMT, SDT parser의 full version 정리

여기에 CAT, TDT, TOT, NIT, EIT 까지 붙이면 좋을텐데 시간이 되면 해야 할 것 같다.

올해 처음 생긴 5년마다의 안식년 휴가 3주 동안 이 모든 것을 하기에는 시간이 부족하다.


같이 공부하고 연구하는 사람이 있으면 좋을텐데, 회사의 개발자들은 별로 자기 개발에 의지가 없는듯.

혼자 하는 수 밖에. 난 오늘도 도서관 꼭대기 에어콘도 들어오지 않는 곳에서 열심히 열공 중이다. ㅠ.ㅠ


1. 소스 트리

지금까지 작업한 모든 소스 한 곳에 모았다. javascript folder는 실행결과를 web browser에서

확인하기 위해서 APM 설치 후에 기본 서비스 폴더에 복사해 넣으면 된다.

.

├── CMakeLists.txt

├── javascript

│   ├── css

│   │   ├── images

│   │   │   ├── ajax-loader.gif

│   │   │   ├── file.gif

│   │   │   ├── folder-closed.gif

│   │   │   ├── folder.gif

│   │   │   ├── minus.gif

│   │   │   ├── plus.gif

│   │   │   ├── treeview-black-line.gif

│   │   │   ├── treeview-black.gif

│   │   │   ├── treeview-default-line.gif

│   │   │   ├── treeview-default.gif

│   │   │   ├── treeview-famfamfam-line.gif

│   │   │   ├── treeview-famfamfam.gif

│   │   │   ├── treeview-gray-line.gif

│   │   │   ├── treeview-gray.gif

│   │   │   ├── treeview-red-line.gif

│   │   │   └── treeview-red.gif

│   │   ├── jquery.treeview.css

│   │   └── screen.css

│   ├── index.html

│   ├── lib

│   │   ├── jquery.cookie.js

│   │   ├── jquery.js

│   │   └── jquery.treeview.js

│   ├── pat_json.txt

│   ├── pmt_json.txt

│   └── sdt_json.txt

├── json_spirit

│   ├── CMakeFiles

│   │   ├── CMakeDirectoryInformation.cmake

│   │   ├── json_spirit.dir

│   │   │   ├── CXX.includecache

│   │   │   ├── DependInfo.cmake

│   │   │   ├── build.make

│   │   │   ├── cmake_clean.cmake

│   │   │   ├── cmake_clean_target.cmake

│   │   │   ├── depend.internal

│   │   │   ├── depend.make

│   │   │   ├── flags.make

│   │   │   ├── json_spirit_reader.cpp.o

│   │   │   ├── json_spirit_value.cpp.o

│   │   │   ├── json_spirit_writer.cpp.o

│   │   │   ├── link.txt

│   │   │   └── progress.make

│   │   └── progress.marks

│   ├── CMakeLists.txt

│   ├── Makefile

│   ├── cmake_install.cmake

│   ├── json_spirit.h

│   ├── json_spirit.vcproj

│   ├── json_spirit_error_position.h

│   ├── json_spirit_reader.cpp

│   ├── json_spirit_reader.h

│   ├── json_spirit_reader_template.h

│   ├── json_spirit_stream_reader.h

│   ├── json_spirit_utils.h

│   ├── json_spirit_value.cpp

│   ├── json_spirit_value.h

│   ├── json_spirit_writer.cpp

│   ├── json_spirit_writer.h

│   ├── json_spirit_writer_options.h

│   ├── json_spirit_writer_template.h

│   └── libjson_spirit.a

├── pat.cpp

├── pat.h

├── pmt.cpp

├── pmt.h

├── psi_glob.h

├── remove.sh

├── sdt.cpp

├── sdt.h

├── section.cpp

├── section.h

├── test.cpp

└── types.h


2. 헤더 파일

너무 많아서 github link 내의 소스 참조


3. 클래스 본체

너무 많아서 github link 내의 소스 참조.


4. 테스트 코드

실제 TS 파일을 사용자로부터 받아서 처리해야 하는데, 귀찮으니까 그냥 SGP.ts로 고정.

차후 IP Multicast Stream 받을 수 있도록 붙이면 고려해 볼 생각.


처음에는 Message Queue로 Section에서는 던지고 Parser쪽에서는 받아서 처리하려고 했는데

의미 없어 보여서 생략. Message Queue 동작은 github test folder에 정리했다. 



5. 전체 소스 (github link)


https://github.com/heesoon/mpeg/tree/master/full_version

'Program Lang. > C++' 카테고리의 다른 글

unique_ptr, shared_ptr 읽히기  (0) 2016.12.30
c++ pair 읽히기  (0) 2016.12.30
sdt json version  (0) 2016.07.22
pmt json version  (0) 2016.07.22
pat 정보를 json 파일로 저장 후 webbrowser에서 확인  (0) 2016.07.21
: