Source

Target

Commits (1)
Showing with 19 additions and 1 deletion
......@@ -68,6 +68,13 @@ MS2_PUBLIC void ms_media_player_free(MSMediaPlayer *obj);
*/
MS2_PUBLIC void * ms_media_player_get_window_id(const MSMediaPlayer *obj);
/**
* Create a window ID
* @param obj The player
* @return window_id the window ID
*/
MS2_PUBLIC void * ms_media_player_create_window_id(MSMediaPlayer *obj);
/**
* Set the window ID
* @param obj The player
......
......@@ -279,11 +279,14 @@ MKVTrackReader *MKVReader::getTrackReader(int track_num) noexcept {
const auto &trackElt = mTracksElt.at(i);
auto file_stream = Stream_Duplicate(mFile.get(), SFLAG_RDONLY);
if(!file_stream) return nullptr;
auto track_reader = new MKVTrackReader{};
track_reader->mRoot = this;
track_reader->mTrackNum = track_num;
track_reader->mTrackElt = trackElt.get();
track_reader->mFile.reset(Stream_Duplicate(mFile.get(), SFLAG_RDONLY));
track_reader->mFile.reset(file_stream);
track_reader->mParser.Context = &MATROSKA_ContextSegment;
track_reader->mParser.EndPosition = mLastClusterEnd;
track_reader->mParser.UpContext = NULL;
......
......@@ -150,6 +150,14 @@ void * ms_media_player_get_window_id(const MSMediaPlayer *obj) {
return obj->window_id;
}
void * ms_media_player_create_window_id(MSMediaPlayer *obj) {
void *id = NULL;
if (obj->video_sink) {
ms_filter_call_method(obj->video_sink, MS_VIDEO_DISPLAY_CREATE_NATIVE_WINDOW_ID, &id);
}
return id;
}
void ms_media_player_set_window_id(MSMediaPlayer *obj, void *window_id) {
#ifdef ANDROID
if (obj->window_id) {
......