Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Open sidebar
Steve Lhomme
VLC
Commits
de283d70
Commit
de283d70
authored
Sep 22, 2015
by
François Cartegnie
🤞
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
demux: adaptative: add tracker listeners interface
parent
22d7d975
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
1 deletion
+29
-1
modules/demux/adaptative/SegmentTracker.cpp
modules/demux/adaptative/SegmentTracker.cpp
+12
-0
modules/demux/adaptative/SegmentTracker.hpp
modules/demux/adaptative/SegmentTracker.hpp
+17
-1
No files found.
modules/demux/adaptative/SegmentTracker.cpp
View file @
de283d70
...
...
@@ -166,6 +166,11 @@ mtime_t SegmentTracker::getSegmentStart() const
return
0
;
}
void
SegmentTracker
::
registerListener
(
SegmentTrackerListenerInterface
*
listener
)
{
listeners
.
push_back
(
listener
);
}
void
SegmentTracker
::
pruneFromCurrent
()
{
AbstractPlaylist
*
playlist
=
adaptationSet
->
getPlaylist
();
...
...
@@ -178,3 +183,10 @@ void SegmentTracker::updateSelected()
if
(
prevRepresentation
)
prevRepresentation
->
runLocalUpdates
(
getSegmentStart
(),
count
);
}
void
SegmentTracker
::
notify
(
SegmentTrackerListenerInterface
::
notifications
type
,
ISegment
*
segment
)
{
std
::
list
<
SegmentTrackerListenerInterface
*>::
const_iterator
it
;
for
(
it
=
listeners
.
begin
();
it
!=
listeners
.
end
();
++
it
)
(
*
it
)
->
trackerNotification
(
type
,
segment
);
}
modules/demux/adaptative/SegmentTracker.hpp
View file @
de283d70
...
...
@@ -26,6 +26,7 @@
#include "StreamsType.hpp"
#include <vlc_common.h>
#include <list>
namespace
adaptative
{
...
...
@@ -39,11 +40,22 @@ namespace adaptative
class
BaseAdaptationSet
;
class
BaseRepresentation
;
class
SegmentChunk
;
class
ISegment
;
}
using
namespace
playlist
;
using
namespace
logic
;
class
SegmentTrackerListenerInterface
{
public:
enum
notifications
{
NOTIFICATION_DISCONTINUITY
=
0
};
virtual
void
trackerNotification
(
notifications
,
ISegment
*
)
=
0
;
};
class
SegmentTracker
{
public:
...
...
@@ -53,12 +65,15 @@ namespace adaptative
void
setAdaptationLogic
(
AbstractAdaptationLogic
*
);
void
resetCounter
();
SegmentChunk
*
getNextChunk
(
bool
);
bool
setPosition
(
mtime_t
,
bool
,
bool
);
bool
setPositionByTime
(
mtime_t
,
bool
,
bool
);
void
setPositionByNumber
(
uint64_t
,
bool
);
mtime_t
getSegmentStart
()
const
;
void
registerListener
(
SegmentTrackerListenerInterface
*
);
void
pruneFromCurrent
();
void
updateSelected
();
private:
void
notify
(
SegmentTrackerListenerInterface
::
notifications
,
ISegment
*
);
bool
initializing
;
bool
index_sent
;
bool
init_sent
;
...
...
@@ -67,6 +82,7 @@ namespace adaptative
AbstractAdaptationLogic
*
logic
;
BaseAdaptationSet
*
adaptationSet
;
BaseRepresentation
*
prevRepresentation
;
std
::
list
<
SegmentTrackerListenerInterface
*>
listeners
;
};
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment