1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-17 10:52:46 +00:00

Merge pull request #458 from Mystler/webm

WebM Movie Player (VP9/Opus)
This commit is contained in:
2014-12-26 14:46:31 -05:00
25 changed files with 10364 additions and 40 deletions

View File

@ -12,6 +12,11 @@ include_directories(${OPENSSL_INCLUDE_DIR})
include_directories(${PYTHON_INCLUDE_DIR})
include_directories(${CURL_INCLUDE_DIR})
if(MOVIE_AVAILABLE)
include_directories(${VPX_INCLUDE_DIR})
include_directories(${Opus_INCLUDE_DIR})
endif()
# Test for Python Interpreter, which will be used for extra build scripts if available
find_package(PythonInterp)
if(PYTHONINTERP_FOUND)
@ -167,6 +172,11 @@ if(USE_VLD)
target_link_libraries(plClient ${VLD_LIBRARY})
endif()
if(MOVIE_AVAILABLE)
target_link_libraries(plClient ${VPX_LIBRARY})
target_link_libraries(plClient ${Opus_LIBRARIES})
endif()
if (WIN32)
target_link_libraries(plClient rpcrt4)
target_link_libraries(plClient version)

View File

@ -825,18 +825,18 @@ bool plClient::IHandleMovieMsg(plMovieMsg* mov)
if (mov->GetFileName().IsEmpty())
return true;
int i = fMovies.GetCount();
size_t i = fMovies.size();
if (!(mov->GetCmd() & plMovieMsg::kMake))
{
for (i = 0; i < fMovies.GetCount(); i++)
for (i = 0; i < fMovies.size(); i++)
{
if (mov->GetFileName().CompareI(fMovies[i]->GetFileName().AsString()) == 0)
break;
}
}
if (i == fMovies.GetCount())
if (i == fMovies.size())
{
fMovies.Append(new plMoviePlayer);
fMovies.push_back(new plMoviePlayer());
fMovies[i]->SetFileName(mov->GetFileName());
}
@ -892,7 +892,8 @@ bool plClient::IHandleMovieMsg(plMovieMsg* mov)
if (!fMovies[i]->GetFileName().IsValid())
{
delete fMovies[i];
fMovies.Remove(i);
fMovies[i] = fMovies.back();
fMovies.pop_back();
}
return true;
}
@ -1436,10 +1437,6 @@ bool plClient::StartInit()
plgAudioSys::Activate(true);
IPlayIntroMovie("avi/CyanWorlds.avi", 0.f, 0.f, 0.f, 1.f, 1.f, 0.75);
if( GetDone() ) return false;
plgDispatch::Dispatch()->RegisterForExactType(plMovieMsg::Index(), GetKey());
//
// Init Net before loading things
//
@ -1453,7 +1450,7 @@ bool plClient::StartInit()
pModMsg2->SetCmd(plCmdIfaceModMsg::kAdd);
plgDispatch::MsgSend(pModMsg2);
// create new the virtual camera
// create new virtual camera
fNewCamera = new plVirtualCam1;
fNewCamera->RegisterAs( kVirtualCamera1_KEY );
fNewCamera->Init();
@ -1464,6 +1461,10 @@ bool plClient::StartInit()
plMouseDevice::Instance()->SetDisplayResolution((float)fPipeline->Width(), (float)fPipeline->Height());
plInputManager::SetRecenterMouse(false);
IPlayIntroMovie("avi/CyanWorlds.webm", 0.f, 0.f, 0.f, 1.f, 1.f, 0.75);
if(GetDone()) return false;
plgDispatch::Dispatch()->RegisterForExactType(plMovieMsg::Index(), GetKey());
// create the listener for the audio system:
plListener* pLMod = new plListener;
pLMod->RegisterAs(kListenerMod_KEY );
@ -1827,13 +1828,13 @@ bool plClient::IDraw()
void plClient::IServiceMovies()
{
int i;
for (i = 0; i < fMovies.GetCount(); i++)
for (size_t i = 0; i < fMovies.size(); i++)
{
if (!fMovies[i]->NextFrame())
{
delete fMovies[i];
fMovies.Remove(i);
fMovies[i] = fMovies.back();
fMovies.pop_back();
i--;
}
}
@ -1841,9 +1842,9 @@ void plClient::IServiceMovies()
void plClient::IKillMovies()
{
for (int i = 0; i < fMovies.GetCount(); i++)
for (size_t i = 0; i < fMovies.size(); i++)
delete fMovies[i];
fMovies.Reset();
fMovies.clear();
}
bool plClient::IPlayIntroMovie(const char* movieName, float endDelay, float posX, float posY, float scaleX, float scaleY, float volume /* = 1.0 */)

View File

@ -147,7 +147,7 @@ protected:
int fQuality;
bool fQuitIntro;
hsTArray<plMoviePlayer*> fMovies;
std::vector<plMoviePlayer*> fMovies;
plMessagePumpProc fMessagePumpProc;