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