Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
65aaa4aa
Commit
65aaa4aa
authored
Aug 18, 2010
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed a regression in vout when stepping or seeking while paused.
parent
f8bc9409
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
8 additions
and
5 deletions
+8
-5
src/video_output/video_output.c
src/video_output/video_output.c
+8
-5
No files found.
src/video_output/video_output.c
View file @
65aaa4aa
...
...
@@ -567,7 +567,7 @@ static int VoutVideoFilterInteractiveAllocationSetup(filter_t *filter, void *dat
}
/* */
static
int
ThreadDisplayPreparePicture
(
vout_thread_t
*
vout
,
bool
reuse
)
static
int
ThreadDisplayPreparePicture
(
vout_thread_t
*
vout
,
bool
reuse
,
bool
is_late_dropped
)
{
int
lost_count
=
0
;
...
...
@@ -582,7 +582,7 @@ static int ThreadDisplayPreparePicture(vout_thread_t *vout, bool reuse)
decoded
=
picture_Hold
(
vout
->
p
->
displayed
.
decoded
);
}
else
{
decoded
=
picture_fifo_Pop
(
vout
->
p
->
decoder_fifo
);
if
(
vout
->
p
->
is_late_dropped
&&
decoded
&&
!
decoded
->
b_force
)
{
if
(
is_late_dropped
&&
decoded
&&
!
decoded
->
b_force
)
{
const
mtime_t
predicted
=
mdate
()
+
0
;
/* TODO improve */
const
mtime_t
late
=
predicted
-
decoded
->
date
;
if
(
late
>
VOUT_DISPLAY_LATE_THRESHOLD
)
{
...
...
@@ -739,13 +739,15 @@ static int ThreadDisplayRenderPicture(vout_thread_t *vout, bool is_forced)
static
int
ThreadDisplayPicture
(
vout_thread_t
*
vout
,
bool
now
,
mtime_t
*
deadline
)
{
bool
is_late_dropped
=
vout
->
p
->
is_late_dropped
&&
!
vout
->
p
->
pause
.
is_on
&&
!
now
;
bool
first
=
!
vout
->
p
->
displayed
.
current
;
if
(
first
&&
ThreadDisplayPreparePicture
(
vout
,
true
))
/* FIXME not sure it is ok */
if
(
first
&&
ThreadDisplayPreparePicture
(
vout
,
true
,
is_late_dropped
))
/* FIXME not sure it is ok */
return
VLC_EGENERIC
;
if
(
!
vout
->
p
->
pause
.
is_on
||
now
)
{
while
(
!
vout
->
p
->
displayed
.
next
)
{
if
(
ThreadDisplayPreparePicture
(
vout
,
false
))
if
(
ThreadDisplayPreparePicture
(
vout
,
false
,
is_late_dropped
))
{
break
;
}
}
}
...
...
@@ -792,7 +794,8 @@ static int ThreadDisplayPicture(vout_thread_t *vout,
vout
->
p
->
displayed
.
current
=
vout
->
p
->
displayed
.
next
;
vout
->
p
->
displayed
.
next
=
NULL
;
}
assert
(
vout
->
p
->
displayed
.
current
);
if
(
!
vout
->
p
->
displayed
.
current
)
return
VLC_EGENERIC
;
bool
is_forced
=
now
||
(
!
drop
&&
refresh
)
||
vout
->
p
->
displayed
.
current
->
b_force
;
return
ThreadDisplayRenderPicture
(
vout
,
is_forced
);
...
...
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