I don't know about URLProtocol, but I achieved the same by implemening my own read and seek routines. What I did I called init_put_byte (providing my own read and seek, nil for write). After that jut used av_open_input_stream instead of av_open_input_file and av_close_input_stream at the very end.
On Tue, Sep 8, 2009 at 10:23 AM, Michael Georgoulopoulos < [email protected]> wrote: > 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 > _______________________________________________ libav-user mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/libav-user
