Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
GSoC
GSoC2018
macOS
vlc
Commits
0771fb4b
Commit
0771fb4b
authored
Jun 07, 2015
by
François Cartegnie
🤞
Browse files
demux: adaptative: compute segment time in segmentlist
parent
2bf7935f
Changes
3
Hide whitespace changes
Inline
Side-by-side
modules/demux/adaptative/playlist/SegmentInformation.cpp
View file @
0771fb4b
...
...
@@ -223,11 +223,10 @@ mtime_t SegmentInformation::getPlaybackTimeBySegmentNumber(uint64_t number) cons
{
SegmentList
*
segList
;
MediaSegmentTemplate
*
mediaTemplate
;
uint64_t
timescale
=
1
;
mtime_t
time
=
0
;
if
(
(
mediaTemplate
=
inheritSegmentTemplate
())
)
{
timescale
=
mediaTemplate
->
inheritTimescale
();
uint64_t
timescale
=
mediaTemplate
->
inheritTimescale
();
if
(
mediaTemplate
->
segmentTimeline
.
Get
())
{
time
=
mediaTemplate
->
segmentTimeline
.
Get
()
->
...
...
@@ -237,16 +236,13 @@ mtime_t SegmentInformation::getPlaybackTimeBySegmentNumber(uint64_t number) cons
{
time
=
number
*
mediaTemplate
->
duration
.
Get
();
}
time
=
CLOCK_FREQ
*
time
/
timescale
;
}
else
if
(
(
segList
=
inheritSegmentList
())
)
{
timescale
=
segList
->
inheritTimescale
();
time
=
number
*
segList
->
duration
.
Get
();
time
=
segList
->
getPlaybackTimeBySegmentNumber
(
number
);
}
if
(
time
)
time
=
CLOCK_FREQ
*
time
/
timescale
;
return
time
;
}
...
...
modules/demux/adaptative/playlist/SegmentList.cpp
View file @
0771fb4b
...
...
@@ -86,6 +86,29 @@ void SegmentList::pruneBySegmentNumber(uint64_t tobelownum)
}
}
mtime_t
SegmentList
::
getPlaybackTimeBySegmentNumber
(
uint64_t
number
)
{
if
(
number
<
pruned
||
segments
.
empty
())
return
0
;
uint64_t
timescale
=
inheritTimescale
();
mtime_t
time
=
segments
.
at
(
0
)
->
startTime
.
Get
();
if
(
segments
.
at
(
0
)
->
duration
.
Get
())
{
number
-=
pruned
;
for
(
size_t
i
=
0
;
i
<
number
&&
i
<
segments
.
size
();
i
++
)
time
+=
segments
.
at
(
i
)
->
duration
.
Get
();
}
else
{
time
=
number
*
duration
.
Get
();
}
return
CLOCK_FREQ
*
time
/
timescale
;
}
std
::
size_t
SegmentList
::
getOffset
()
const
{
return
pruned
;
...
...
modules/demux/adaptative/playlist/SegmentList.h
View file @
0771fb4b
...
...
@@ -49,6 +49,7 @@ namespace adaptative
void
addSegment
(
Segment
*
seg
);
void
mergeWith
(
SegmentList
*
);
void
pruneBySegmentNumber
(
uint64_t
);
mtime_t
getPlaybackTimeBySegmentNumber
(
uint64_t
);
std
::
size_t
getOffset
()
const
;
private:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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