Skip to content

Commit

Permalink
Speedup queuing output surface, when decoder buffers are full.
Browse files Browse the repository at this point in the history
  • Loading branch information
Johns-Q committed Sep 30, 2015
1 parent 9398103 commit f47ee3a
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 7 deletions.
1 change: 1 addition & 0 deletions ChangeLog
@@ -1,6 +1,7 @@
User johns
Date:

Speedup queuing output surface, when decoder buffers are full.
Fix bug: info shows wrong decoded video surfaces.
Calculate queued output surfaces and show them in info message.
Add support for new API of vdr 2.3.1.
Expand Down
21 changes: 14 additions & 7 deletions video.c
Expand Up @@ -9153,10 +9153,12 @@ static void VdpauDisplayHandlerThread(void)
{
int i;
int err;
int allfull;
int decoded;
struct timespec nowtime;
VdpauDecoder *decoder;

allfull = 1;
decoded = 0;
pthread_mutex_lock(&VideoLockMutex);
for (i = 0; i < VdpauDecoderN; ++i) {
Expand All @@ -9171,6 +9173,7 @@ static void VdpauDisplayHandlerThread(void)
if (filled < VIDEO_SURFACES_MAX) {
// FIXME: hot polling
// fetch+decode or reopen
allfull = 0;
err = VideoDecodeInput(decoder->Stream);
} else {
err = VideoPollInput(decoder->Stream);
Expand All @@ -9193,14 +9196,18 @@ static void VdpauDisplayHandlerThread(void)

if (!decoded) { // nothing decoded, sleep
// FIXME: sleep on wakeup
usleep(5 * 1000);
usleep(1 * 1000);
}

clock_gettime(CLOCK_MONOTONIC, &nowtime);
// time for one frame over?
if ((nowtime.tv_sec - VdpauFrameTime.tv_sec) * 1000 * 1000 * 1000 +
(nowtime.tv_nsec - VdpauFrameTime.tv_nsec) < 15 * 1000 * 1000) {
return;
// all decoder buffers are full
// and display is not preempted
// speed up filling display queue, wait on display queue empty
if (!allfull || VdpauPreemption) {
clock_gettime(CLOCK_MONOTONIC, &nowtime);
// time for one frame over?
if ((nowtime.tv_sec - VdpauFrameTime.tv_sec) * 1000 * 1000 * 1000 +
(nowtime.tv_nsec - VdpauFrameTime.tv_nsec) < 15 * 1000 * 1000) {
return;
}
}

if (VdpauPreemption) { // display preempted
Expand Down

0 comments on commit f47ee3a

Please sign in to comment.