From c8a0a42e62a48053f0f79ff1936e187f13a33bce Mon Sep 17 00:00:00 2001 From: Mathieu Schroeter Date: Fri, 20 Jul 2018 22:43:13 +0200 Subject: [PATCH] Use SDL_RWops for video loading It should fix Android video support. For emscripten it's still not working. --- src/movie.cxx | 7 ++++++- src/movie.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/movie.cxx b/src/movie.cxx index 4f5a5a1..cc9d312 100644 --- a/src/movie.cxx +++ b/src/movie.cxx @@ -79,6 +79,7 @@ CMovie::fileCloseMovie () if (m_movie) { Kit_CloseSource (m_movie); + SDL_RWclose (this->rw_ops); m_movie = nullptr; } } @@ -98,9 +99,13 @@ CMovie::fileOpenMovie (const std::string & pFilename) if (m_fMovieOpen) fileCloseMovie (); + this->rw_ops = SDL_RWFromFile (path.c_str (), "rb"); + if (!this->rw_ops) + return false; + // Open up the sourcefile. // This can be a local file, network url, ... - m_movie = Kit_CreateSourceFromUrl (path.c_str ()); + m_movie = Kit_CreateSourceFromRW (rw_ops); if (m_movie) { // Create the player diff --git a/src/movie.h b/src/movie.h index bd9098f..ca06974 100644 --- a/src/movie.h +++ b/src/movie.h @@ -57,6 +57,7 @@ protected: SDL_Texture * m_videoTex; Sint32 m_ret; SDL_AudioDeviceID m_audioDev; + SDL_RWops * rw_ops; char m_audiobuf[AUDIOBUFFER_SIZE]; bool m_bEnable;