메뉴 건너뛰기

프로그래밍


검색어: Codec, Compressor

레지스트리에서 코덱 정보를 얻어오던 기존 방법보다 정석인 듯 합니다.

출처: http://www.codeproject.com/KB/audio-video/CCodecList.aspx 의 덧글^^


codecenum.h


#ifndef __CODECENUM_H__
#define __CODECENUM_H__
#pragma once
#include 
class CCodecEnum 
{
private :
std::vector mName ;
std::vector mFOURCC ;
public :
CCodecEnum () ;
virtual ~CCodecEnum () ;

int Count () ;
CString GetCodecName ( int aPos ) ;
DWORD GetFOURCC ( const CString& aName ) ;	
} ;
#endif 


codecenum.cpp


#include "codecenum.h"
#pragma comment ( lib, "vfw32.lib" ) 

CCodecEnum::CCodecEnum ( ) 
{
ICINFO lInfo ;
for ( int i = 0 ; ICInfo ( ICTYPE_VIDEO, i, &lInfo ) ; i++ ) 
{ 
HIC lIC = ICOpen ( lInfo.fccType, lInfo.fccHandler, ICMODE_QUERY ) ; 
if ( lIC ) 
{ 
// Find out the compressor name. 
ICGetInfo ( lIC, &lInfo, sizeof ( lInfo ) ) ; 
if ( ( lInfo . dwFlags & VIDCF_COMPRESSFRAMES ) != 0 )
{
mName . push_back ( lInfo . szDescription ) ;
mFOURCC . push_back ( lInfo . fccHandler ) ;
}
ICClose ( lIC ) ;
} 
} 
}

CCodecEnum::~CCodecEnum () 
{
}

int CCodecEnum::Count () 
{
return mName . size () ;
}

CString CCodecEnum::GetCodecName ( int aPos ) 
{
if ( aPos >= 0 && aPos < mName . size () )
return mName [ aPos ] ;
return _T("") ;
}

DWORD CCodecEnum::GetFOURCC ( const CString& aName ) 
{
for ( int i = 0 ; i < mName . size () ; i ++ )
{
if ( mName [ i ] == aName )
return mFOURCC [ i ] ;
}
return mmioFOURCC('M','P','G','4') ;
}



번호 제목 글쓴이 날짜 조회 수
공지 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [48] 파이팅건맨 2016.02.20 108620
공지 [TIP] R에서 페이스북 페이지 정보 크롤링 하기 [6] 파이팅건맨 2017.02.11 15769
공지 [TIP] TensorFlow를 윈도우에서 사용하기 (A way to use TensorFlow on Windows) [3] 파이팅건맨 2016.04.16 14700
125 [TIP] 자작 커널을 위한 인터럽트 벡터 수정 (EZ-2410보드 대상) 파이팅건맨 2013.05.04 649
124 위치추적 [1] 우람사랑 2013.04.06 1968
123 [TIP] MySQL - NaviCat 사용시 에러 확인방법 파이팅건맨 2010.02.23 1175
» [TIP] 설치된 코덱 리스트 얻어오기 파이팅건맨 2010.02.18 921
121 [TIP] VFW 에서 영상 압축을 위한 코덱을 코드상에서 선택하여 실시간 저장하는 방법입니다. 파이팅건맨 2010.02.04 1099
120 [TIP] Visual Studio App Wizard 만들기 관련 파이팅건맨 2009.12.17 993
119 [TIP] C# 에서 Win32 DLL 을 사용하기 위한 방법 파이팅건맨 2009.07.16 1149
118 [TIP] WMI 이용, 사용가능한 모뎀 포트 알아내기 파이팅건맨 2009.07.05 911
117 [TIP] Excel Ole 를 사용시 Hidden 열 혹은 행인지 알아내는 방법 파이팅건맨 2009.05.17 705
116 [TIP] Win32 API를 사용하여 응용 프로그램 열거하기 파이팅건맨 2009.01.15 705
115 [TIP] 홈페이지 자동 클릭하기 소스 파이팅건맨 2009.10.25 1853
114 [TIP] (MSDN) VS2005 에서 BHO 만드는 방법 링크 파이팅건맨 2009.01.06 614
113 [TIP] Windows 에서 COM10 이상을 여는 방법 [2] 파이팅건맨 2008.05.26 977
112 [TIP] 인터넷으로 문자메시지 (SMS) 보내기 파이팅건맨 2008.03.23 3042
111 [TIP] 동적 DLL이 가진 Dialog를 Child Window로 띄우기 파이팅건맨 2008.03.16 1011
110 [TIP] 치명적 오류 발생시 오류창 안뜨게 하기? 파이팅건맨 2008.02.25 776
109 [TIP] USB 장치를 열거하는 코드 파이팅건맨 2008.02.03 651
108 [TIP] Windows 에서 장치 연결/제거 관리 코드 파이팅건맨 2007.12.21 712
107 [TIP] Source Insight 용 ARM Assembler 파서 파이팅건맨 2007.12.18 794
106 [펌] precompiled header 설정 관련 파이팅건맨 2007.08.07 650
위로