Got the solution to my problem quite a while back. Posting it now as I have time. Hope it helps someone else. Like Carl said, it'd be best for a person to build the ffmpeg libraries by themselves. I was using the 32bit dev builds from Zeranoe, and linking to the .lib files caused the compiler to ask for the corresponding DLL files too, but DLL's aren't part of the dev builds, so I had to take the DLL's of the shared build. Using it this way, my ffmpeg code worked, but used to strangely crash at sws_scale.

But using purely the shared build's DLL's everything worked fine. Some example code for the RGB values: //This example is from the updated tutorial 01: https://github.com/mpenkov/ffmpeg-tutorial
#include <Windows.h>
#include <libavformat/avformat.h>
#include <libavcodec/avcodec.h>//just as an example

int main()
{
const char * avfDLLpointer = "F:\\Nav\\VisualStudio\\ffmpegTestProgram\\ffmpegTestProgram\\avformat-54.dll";//you can place this DLL in the same directory as your exe const char * avcDLLpointer = "F:\\Nav\\VisualStudio\\ffmpegTestProgram\\ffmpegTestProgram\\avcodec-54.dll";.//just as an example
   HINSTANCE hinstLib_avformat = LoadLibrary(avfDLLpointer);
HINSTANCE hinstLib_avcodec = LoadLibrary(avcDLLpointer);//just as an example __av_dump_format av_dump_format_proc = (__av_dump_format) GetProcAddress(hinstLib_avformat, "av_dump_format");

...blah blah...
sws_ctx = sws_getContext_proc(pCodecCtx->width, pCodecCtx->height, pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height, PIX_FMT_RGB24, SWS_BILINEAR, NULL, NULL, NULL ); avpicture_fill_proc((AVPicture *)pFrameRGB, buffer, PIX_FMT_RGB24, pCodecCtx->width, pCodecCtx->height);
...blah blah...
sws_scale_proc(sws_ctx, (uint8_t const * const *)pFrame->data, pFrame->linesize, 0, pCodecCtx->height, pFrameRGB->data, pFrameRGB->linesize );
            for(int yy = 0; yy < pCodecCtx->height; ++yy)
            {
                for(int xx = 0; xx < pCodecCtx->width; ++xx)
                {
                    int p = xx * 3 + yy * pFrameRGB->linesize[0];
                    int r = pFrameRGB->data[0][p];
                    int g = pFrameRGB->data[0][p+1];
                    int b = pFrameRGB->data[0][p+2];
                }
            }
...blah blah...
}


Navin

On 11/22/2012 4:32 AM, Carl Eugen Hoyos wrote:
Malik Cissé<mc@...>  writes:

Carl Eugen ... writes:
...compile FFmpeg with msvc.
This sounds interesting. Where can I find msvc sample project?
Please see the MSVC section on the platform page
of the fine documentation to find information on
how to compile FFmpeg with MSVC.

Carl Eugen

_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user


_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to