Hello everyone. This is my first message in the list so I would like to say a big thanks to the people that created this awesome library!

I am developing a video game (Conspiracies 2 : http://www.anima-ppd.com/) in windows/direct3d. My engine needs to have video playback capabilities as the game mostly consists of videos that are played when the player performs specific actions. So far I have implemented a simple video player based on ffmpeg which works perfectly. My code for opening a video file looks like this:

bool Video::OpenVideo(const char *video)
{
#define FAIL_EXIT(x) {Info(x);CloseVideo();return false;}
   av_register_all();

   // Open video file
   if (av_open_input_file(&pFormatCtx, video, NULL, 0, NULL))
       FAIL_EXIT("Failed to open video file");

   if (!InitVideoStream()) FAIL_EXIT("Failed to init video stream\n");
   if (!InitCodec()) FAIL_EXIT("Failed to initialize the codec\n");
   if (!InitVideoFrame()) FAIL_EXIT("Failed to initialize video frames\n");

   return true;
#undef FAIL_EXIT
}


This code works fine with real files in the filesystem, but I really need to set my custom routines for file I/O, because in the retail version of the game the actual video files will be packed in archives.

So far I have read the faq which says I need to implement a URLProtocol. Looking at the MPlayer sources I found out how to do this. Seems as simple as filling a struct with my user I/O routine pointers. But then what? How can I modify my loading code to actually use that protocol?

Thanks in advance

Michael


_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user

Reply via email to