aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--video/video_decoder.cpp17
-rw-r--r--video/video_decoder.h5
2 files changed, 22 insertions, 0 deletions
diff --git a/video/video_decoder.cpp b/video/video_decoder.cpp
index 05b6e7ce2a..e4016d8de8 100644
--- a/video/video_decoder.cpp
+++ b/video/video_decoder.cpp
@@ -910,4 +910,21 @@ bool VideoDecoder::hasAudio() const {
return false;
}
+void VideoDecoder::eraseTrack(Track *track) {
+ for (uint idx = 0; idx < _externalTracks.size(); ++idx) {
+ if (_externalTracks[idx] == track)
+ _externalTracks.remove_at(idx);
+ }
+
+ for (uint idx = 0; idx < _internalTracks.size(); ++idx) {
+ if (_internalTracks[idx] == track)
+ _internalTracks.remove_at(idx);
+ }
+
+ for (uint idx = 0; idx < _tracks.size(); ++idx) {
+ if (_tracks[idx] == track)
+ _tracks.remove_at(idx);
+ }
+}
+
} // End of namespace Video
diff --git a/video/video_decoder.h b/video/video_decoder.h
index a415a70724..598a67d3f8 100644
--- a/video/video_decoder.h
+++ b/video/video_decoder.h
@@ -886,6 +886,11 @@ protected:
TrackListIterator getTrackListEnd() { return _internalTracks.end(); }
/**
+ * Removes a specified track
+ */
+ void eraseTrack(Track *track);
+
+ /**
* The internal seek function that does the actual seeking.
*
* @see seek()