mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
Add A-V info output and compile time option.
This commit is contained in:
parent
a7389111ff
commit
91dbe46786
@ -1,6 +1,7 @@
|
|||||||
User johns
|
User johns
|
||||||
Date:
|
Date:
|
||||||
|
|
||||||
|
Add A-V info output and compile time option.
|
||||||
Fix bug: VA-API intel software decoder broken by aspect commit.
|
Fix bug: VA-API intel software decoder broken by aspect commit.
|
||||||
Add support for 4:3 output modes.
|
Add support for 4:3 output modes.
|
||||||
Quicker auto-crop after channel switch.
|
Quicker auto-crop after channel switch.
|
||||||
|
1
Makefile
1
Makefile
@ -19,6 +19,7 @@ GIT_REV = $(shell git describe --always 2>/dev/null)
|
|||||||
### Configuration (edit this for your needs)
|
### Configuration (edit this for your needs)
|
||||||
|
|
||||||
CONFIG := #-DDEBUG
|
CONFIG := #-DDEBUG
|
||||||
|
CONFIG += -DAV_INFO
|
||||||
#CONFIG += -DHAVE_PTHREAD_NAME
|
#CONFIG += -DHAVE_PTHREAD_NAME
|
||||||
CONFIG += $(shell pkg-config --exists vdpau && echo "-DUSE_VDPAU")
|
CONFIG += $(shell pkg-config --exists vdpau && echo "-DUSE_VDPAU")
|
||||||
CONFIG += $(shell pkg-config --exists libva && echo "-DUSE_VAAPI")
|
CONFIG += $(shell pkg-config --exists libva && echo "-DUSE_VAAPI")
|
||||||
|
1
Todo
1
Todo
@ -51,6 +51,7 @@ libva:
|
|||||||
yaepghd (VaapiSetOutputPosition) support
|
yaepghd (VaapiSetOutputPosition) support
|
||||||
can associate only displayed part of osd
|
can associate only displayed part of osd
|
||||||
grab image for va-api
|
grab image for va-api
|
||||||
|
remove stderr output of libva init
|
||||||
still many: (workaround export NO_MPEG_HW=1)
|
still many: (workaround export NO_MPEG_HW=1)
|
||||||
[drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
|
[drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
|
||||||
[drm:i915_wait_request] *ERROR* i915_wait_request returns -11 ...
|
[drm:i915_wait_request] *ERROR* i915_wait_request returns -11 ...
|
||||||
|
57
video.c
57
video.c
@ -338,6 +338,29 @@ static int64_t VideoDeltaPTS; ///< FIXME: fix pts
|
|||||||
static void VideoThreadLock(void); ///< lock video thread
|
static void VideoThreadLock(void); ///< lock video thread
|
||||||
static void VideoThreadUnlock(void); ///< unlock video thread
|
static void VideoThreadUnlock(void); ///< unlock video thread
|
||||||
|
|
||||||
|
#if defined(DEBUG) || defined(AV_INFO)
|
||||||
|
///
|
||||||
|
/// Nice time-stamp string.
|
||||||
|
///
|
||||||
|
static const char *VideoTimeStampString(int64_t ts)
|
||||||
|
{
|
||||||
|
static char buf[64];
|
||||||
|
int hh;
|
||||||
|
int mm;
|
||||||
|
int ss;
|
||||||
|
int uu;
|
||||||
|
|
||||||
|
ts = ts / 90;
|
||||||
|
uu = ts % 1000;
|
||||||
|
ss = (ts / 1000) % 60;
|
||||||
|
mm = (ts / 60000) % 60;
|
||||||
|
hh = ts / 3600000;
|
||||||
|
snprintf(buf, sizeof(buf), "%2d:%02d:%02d.%03d", hh, mm, ss, uu);
|
||||||
|
|
||||||
|
return buf;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Update video pts.
|
/// Update video pts.
|
||||||
///
|
///
|
||||||
@ -3683,6 +3706,7 @@ static void VaapiAdvanceFrame(void)
|
|||||||
} else if (filled == 1) {
|
} else if (filled == 1) {
|
||||||
++decoder->FramesDuped;
|
++decoder->FramesDuped;
|
||||||
decoder->DropNextFrame = 0;
|
decoder->DropNextFrame = 0;
|
||||||
|
// FIXME: don't warn after stream start
|
||||||
Warning(_
|
Warning(_
|
||||||
("video: display buffer empty, duping frame (%d/%d) %d\n"),
|
("video: display buffer empty, duping frame (%d/%d) %d\n"),
|
||||||
decoder->FramesDuped, decoder->FrameCounter,
|
decoder->FramesDuped, decoder->FrameCounter,
|
||||||
@ -3837,20 +3861,14 @@ static void VaapiSyncDisplayFrame(VaapiDecoder * decoder)
|
|||||||
decoder->DropNextFrame = 1;
|
decoder->DropNextFrame = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) || defined(AV_INFO)
|
||||||
// debug audio/video sync
|
// debug audio/video sync
|
||||||
if (decoder->DupNextFrame || decoder->DropNextFrame
|
if (decoder->DupNextFrame || decoder->DropNextFrame
|
||||||
|| !(decoder->FramesDisplayed % (50 * 10))) {
|
|| !(decoder->FramesDisplayed % (50 * 10))) {
|
||||||
static int64_t last_video_clock;
|
Info("video: %s%+5" PRId64 " %4" PRId64 " %3d/\\ms %3d v-buf\n",
|
||||||
|
VideoTimeStampString(video_clock),
|
||||||
Debug(3,
|
(video_clock - audio_clock) / 90, AudioGetDelay() / 90,
|
||||||
"video: %6" PRId64 " %6" PRId64 " pts %+4d %4" PRId64 " %+4" PRId64
|
(int)VideoDeltaPTS / 90, atomic_read(&VideoPacketsFilled));
|
||||||
" ms %3d bufs\n", video_clock - last_video_clock,
|
|
||||||
audio_clock - video_clock, (int)(audio_clock - video_clock) / 90,
|
|
||||||
AudioGetDelay() / 90, VideoDeltaPTS / 90,
|
|
||||||
atomic_read(&VideoPacketsFilled));
|
|
||||||
|
|
||||||
last_video_clock = video_clock;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -6620,6 +6638,7 @@ static void VdpauAdvanceFrame(void)
|
|||||||
// keep use of last surface
|
// keep use of last surface
|
||||||
++decoder->FramesDuped;
|
++decoder->FramesDuped;
|
||||||
decoder->DropNextFrame = 0;
|
decoder->DropNextFrame = 0;
|
||||||
|
// FIXME: don't warn after stream start
|
||||||
Warning(_
|
Warning(_
|
||||||
("video: display buffer empty, duping frame (%d/%d) %d\n"),
|
("video: display buffer empty, duping frame (%d/%d) %d\n"),
|
||||||
decoder->FramesDuped, decoder->FrameCounter,
|
decoder->FramesDuped, decoder->FrameCounter,
|
||||||
@ -6775,20 +6794,14 @@ static void VdpauSyncDisplayFrame(VdpauDecoder * decoder)
|
|||||||
decoder->DropNextFrame = 1;
|
decoder->DropNextFrame = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#if defined(DEBUG) || defined(AV_INFO)
|
||||||
// debug audio/video sync
|
// debug audio/video sync
|
||||||
if (decoder->DupNextFrame || decoder->DropNextFrame
|
if (decoder->DupNextFrame || decoder->DropNextFrame
|
||||||
|| !(decoder->FramesDisplayed % (50 * 10))) {
|
|| !(decoder->FramesDisplayed % (50 * 10))) {
|
||||||
static int64_t last_video_clock;
|
Info("video: %s%+5" PRId64 " %4" PRId64 " %3d/\\ms %3d v-buf\n",
|
||||||
|
VideoTimeStampString(video_clock),
|
||||||
Debug(3,
|
(video_clock - audio_clock) / 90, AudioGetDelay() / 90,
|
||||||
"video: %6" PRId64 " %6" PRId64 " pts %+4d %4" PRId64 " %+4" PRId64
|
(int)VideoDeltaPTS / 90, atomic_read(&VideoPacketsFilled));
|
||||||
" ms %3d bufs\n", video_clock - last_video_clock,
|
|
||||||
audio_clock - video_clock, (int)(audio_clock - video_clock) / 90,
|
|
||||||
AudioGetDelay() / 90, VideoDeltaPTS / 90,
|
|
||||||
atomic_read(&VideoPacketsFilled));
|
|
||||||
|
|
||||||
last_video_clock = video_clock;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user