Search code examples
visual-c++audiodirectshow

to capture the buffer of a microphone


I am creating a program that will record microphone audio and convert it into mp3 using the DirectShow API in Visual C++. There is no built in filter to convert to convert audio into MPEG Layer 3 i.e. MP3 so i want to send the mic buffer to an external library called as LAME , it will convert the data in MP3 and then i can write it to a file using a file writer. But the problem is that i dont know how to access the buffer of the microphone , please help me i am new in directshow programming..

or tell me any other way to do it


Solution

  • If you want to distribute your application then I will suggest to use Sample Grabber instead of Lame DirectShow Encoder filter. This will avoid filter registration but you will need to handle conversion logic.

    Regarding using LAME encoder,

    1. what is the return value of hr = pOutputDevice->FindPin().
    2. you can give a try using GraphEdit and check for pin properties.