2015. 7. 9. 16:21

설정은 따로 여기서 다루지 않는다.


  • 기본 프로그램 파일
  1. Singleton.hpp
  2. Object.hpp
  3. MainGameManager.hpp
  4. Winmain.hpp
  5. MainGameManager.hpp
  6. Winmain.cpp
  7. Winmainpartial.cpp

위의 파일들이 우리가 만들 기본 틀이 될 것이다. 
네임 스페이스는 내 이름을 따서 jm으로 했다

  • Singleton.hpp



  • Object.hpp


  • MainGameManager.hpp



  • Winmain.hpp


  • Winmain.cpp
  • Winmainpartial.cpp

  • MainGameManager.cpp


2015. 7. 9. 15:57
  • 출처 

http://aslike.egloos.com/3082696


  • 컨테이너(Container) : 파일 그 자체  /  ex) 유형(Type) : avi, Quicktime
  • 스트림(Stream) : 데이터 원소(element)의 연속
  • 프레임(Frame)  : 데이터 원소 하나
  • 패킷(Packet)    : 응용프로그램에서 사용 가능할만큼의 raw 프레임으로 디코딩 가능한 데이터의 비트를 포함하는 데이터의 조각
  • 먹싱(Muxing)   : 오디오와 비디오를 하나의 파일로 합침
  • 디먹싱(Demuxing) : 하나의 파일을 오디오와 비디오로 분리

   - 컨테이너라 부르는 이유 : 그 파일 안에 파일 정보, 코덱 정보, 시간, 비트레이트 등 모든 정보를 담고 있는 박스이기 때문
   - 한 패킷은 보통 한 프레임으로 묶임
   - 패킷 : 데이터 전송 상으로 주로 쓰이기 때문에 패킷이라는 용어를 사용

    

  • 스트리밍 기초 흐름도
  1. 동영상 파일로부터 비디오 스트림을 연다
  2. 비디오 스트림으로부터 패킷을 연다
  3. 패킷을 디코딩하여 프레임을 얻는다
  4. 만약 프레임이 완전하지 않으면 다음 프레임을 얻는다
  5. 프레임을 가지고 무엇을 한다
  6. 다음 패킷을 읽어들인다


2015. 7. 9. 13:22
avformat.h

1.

int 

avformat_open_input (AVFormatContext **ps, 

                              const char *filename, 
                              AVInputFormat *fmt

                              AVDictionary **options)



입력 스트림을 열고 헤더를 읽는다.

avformat_close_input( )를 사용하여 꼭 닫아야 한다


  • 파라미터

- ps : avformat_alloc_context( )으로 할당한 AVFormatContext의 포인터

- filename : 열기를 할 스트림의 파일 이름

- fmt : 구체적인 입력 포멧

- options :  AVFormatContext로 채워진 dictionary와 demuxer-private 옵션 


2. 

int 

avformat_find_stream_info (AVFormatContext *ic, 
                                      AVDictionary **options)


avformat_open_input( ) 보다 더 많은 정보를 얻는다
파일을 조금 더 읽어서 구체적인 정보를 AVFormatContext에 저장한다.


3. 

void av_dump_format (AVFormatContext *ic, int index, const char *url, int is_output)


입력, 출력 형식과 같은 상세한 정보를 출력한다. 
 비트레이트, 스트림, 컨테이너, 프로그램, 메타데이타 등등

4.
AVCodec avcodec_find_decoder (enum AVCodecID id)

AVFormatContext에 있는 codec_id를 이용하여 AVCodec을 얻는다.

codecContext를 복사한다


6. 
int avcodec_open2 (AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options)

주어진 AVCodec코덱으로 AVCodecContext를 초기화한다

7. 




2015. 7. 8. 09:52

보기 메뉴 - 속성 관리자(property manager) - 새 프로젝트 속성 시트 추가 메뉴 - 속성 시트 이름 입력 - 추가


아래에서부터 위로 차례대로 적용되어 원하는 곳에 추가하면 된다

2015. 7. 8. 09:39

d3d9.lib

d3dx10d.lib

d3dx9d.lib

dxerr.lib

dxguid.lib

winmm.lib

comctl32.lib