#pragma once

namespace FDK
{
	public ref class C音声ストリーム抽出
	{
	public:
		// 動画ファイル fileName から最初のオーディオストリームをデコードして MemoryStream に格納して返す。
		static void tWAVイメージ抽出( String^ fileName, [ Out ] MemoryStream^% msWaveImage );

	private:
		static void ConfigureAudioStream( IMFSourceReader *pReader, [Out] IMFMediaType** ppAudioType );
		static void WriteWaveHeader( BinaryWriter^ bwFile, IMFMediaType *pAudioType, [Out] DWORD *pcbWritten );
		static void WriteWaveData( BinaryWriter^ bwFile, IMFSourceReader *pReader, [Out] DWORD *pcbDataWritten );
		static void FixUpChunkSizes( BinaryWriter^ bwFile, UInt32 cbHeader, DWORD cbAudioData );
	};
}