ビデオの幅と高さを取得する
ここでは、ビデオの幅と高さを取得する方法を説明します。 (注意)ここの例では、サンプルを簡潔にするためにエラー処理を書いていません。
とりあえず、コードを書いてみる
まず、何も考えずに以下のコードを書いてみましょう。 下記サンプルコードは映像の幅と高さを表示して終了します。 このサンプルでは動画の再生は行いません。
#include <stdio.h>
#include <dshow.h>
#define FILENAME L"C:\\DXSDK\\Samples\\Media\\butterfly.mpg"
int
main()
{
IGraphBuilder *pGraphBuilder;
IMediaControl *pMediaControl;
IBasicVideo *pBasicVideo;
CoInitialize(NULL);
CoCreateInstance(CLSID_FilterGraph,
NULL,
CLSCTX_INPROC,
IID_IGraphBuilder,
(LPVOID *)&pGraphBuilder);
pGraphBuilder->QueryInterface(IID_IMediaControl,
(LPVOID *)&pMediaControl);
pMediaControl->RenderFile(FILENAME);
pGraphBuilder->QueryInterface(IID_IBasicVideo,
(LPVOID *)&pBasicVideo);
// 幅と高さを取得します
long height, width;
pBasicVideo->get_VideoHeight(&height);
pBasicVideo->get_VideoWidth(&width);
printf("width=%d, height=%d\n", width, height);
// 資源を解放
pBasicVideo->Release();
pMediaControl->Release();
pGraphBuilder->Release();
CoUninitialize();
return 0;
}