Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
gst-plugins-good
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
George Kiagiadakis
gst-plugins-good
Commits
ea0729ff
Commit
ea0729ff
authored
Jul 24, 2012
by
Mark Nauwelaerts
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
matroskademux: perform proper KEY_UNIT seek also in push mode
Conflicts: gst/matroska/matroska-demux.c
parent
d6f4f1e0
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
12 deletions
+16
-12
gst/matroska/matroska-demux.c
gst/matroska/matroska-demux.c
+16
-12
No files found.
gst/matroska/matroska-demux.c
View file @
ea0729ff
...
...
@@ -2022,18 +2022,8 @@ gst_matroska_demux_handle_seek_event (GstMatroskaDemux * demux,
goto
next
;
}
if
(
demux
->
streaming
)
{
GST_OBJECT_LOCK
(
demux
);
/* now update the real segment info */
GST_DEBUG_OBJECT
(
demux
,
"Committing new seek segment"
);
memcpy
(
&
demux
->
common
.
segment
,
&
seeksegment
,
sizeof
(
GstSegment
));
GST_OBJECT_UNLOCK
(
demux
);
/* need to seek to cluster start to pick up cluster time */
/* upstream takes care of flushing and all that
* ... and segment event handling takes care of the rest */
return
perform_seek_to_offset
(
demux
,
rate
,
entry
->
pos
+
demux
->
common
.
ebml_segment_start
);
}
if
(
demux
->
streaming
)
goto
finish
;
next:
if
(
flush
)
{
...
...
@@ -2075,6 +2065,7 @@ next:
}
}
finish:
if
(
keyunit
)
{
GST_DEBUG_OBJECT
(
demux
,
"seek to key unit, adjusting segment start from %"
GST_TIME_FORMAT
" to %"
GST_TIME_FORMAT
,
...
...
@@ -2084,6 +2075,19 @@ next:
seeksegment
.
time
=
seeksegment
.
start
-
demux
->
stream_start_time
;
}
if
(
demux
->
streaming
)
{
GST_OBJECT_LOCK
(
demux
);
/* now update the real segment info */
GST_DEBUG_OBJECT
(
demux
,
"Committing new seek segment"
);
memcpy
(
&
demux
->
common
.
segment
,
&
seeksegment
,
sizeof
(
GstSegment
));
GST_OBJECT_UNLOCK
(
demux
);
/* need to seek to cluster start to pick up cluster time */
/* upstream takes care of flushing and all that
* ... and newsegment event handling takes care of the rest */
return
perform_seek_to_offset
(
demux
,
rate
,
entry
->
pos
+
demux
->
common
.
ebml_segment_start
);
}
exit:
if
(
flush
)
{
GST_DEBUG_OBJECT
(
demux
,
"Stopping flush"
);
...
...
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