mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
Add function SetClosing to the video output module.
This commit is contained in:
parent
d8e96c7871
commit
11121b5bdd
@ -1,6 +1,7 @@
|
||||
User johns
|
||||
Date:
|
||||
|
||||
Add function SetClosing to the video output module.
|
||||
Generalize GetVaapiContext to GetHwAccelContext.
|
||||
Add compile time configurable trickspeed packets dump.
|
||||
Fix bug #1410: wrong spelled AC-3 and E-AC-3.
|
||||
|
43
video.c
43
video.c
@ -263,6 +263,7 @@ typedef struct _video_module_
|
||||
void *(*const GetHwAccelContext)(VideoHwDecoder *);
|
||||
void (*const SetClock) (VideoHwDecoder *, int64_t);
|
||||
int64_t(*const GetClock) (const VideoHwDecoder *);
|
||||
void (*const SetClosing) (const VideoHwDecoder *);
|
||||
void (*const SetTrickSpeed) (const VideoHwDecoder *, int);
|
||||
uint8_t *(*const GrabOutput)(int *, int *, int *);
|
||||
void (*const SetBackground) (uint32_t);
|
||||
@ -4583,7 +4584,7 @@ static void VaapiRenderFrame(VaapiDecoder * decoder,
|
||||
///
|
||||
static void *VaapiGetHwAccelContext(VaapiDecoder * decoder)
|
||||
{
|
||||
return decoder->Vaapi.VaapiContext;
|
||||
return decoder->VaapiContext;
|
||||
}
|
||||
|
||||
///
|
||||
@ -4806,6 +4807,16 @@ static int64_t VaapiGetClock(const VaapiDecoder * decoder)
|
||||
2);
|
||||
}
|
||||
|
||||
///
|
||||
/// Set VA-API decoder closing stream flag.
|
||||
///
|
||||
/// @param decoder VA-API decoder
|
||||
///
|
||||
static void VaapiSetClosing(VaapiDecoder * decoder)
|
||||
{
|
||||
decoder->Closing = 1;
|
||||
}
|
||||
|
||||
///
|
||||
/// Set trick play speed.
|
||||
///
|
||||
@ -5378,6 +5389,7 @@ static const VideoModule VaapiModule = {
|
||||
VaapiGetHwAccelContext,
|
||||
.SetClock = (void (*const) (VideoHwDecoder *, int64_t))VaapiSetClock,
|
||||
.GetClock = (int64_t(*const) (const VideoHwDecoder *))VaapiGetClock,
|
||||
.SetClosing = (void (*const) (const VideoHwDecoder *))VaapiSetClosing,
|
||||
.SetTrickSpeed =
|
||||
(void (*const) (const VideoHwDecoder *, int))VaapiSetTrickSpeed,
|
||||
.GrabOutput = NULL,
|
||||
@ -5416,6 +5428,7 @@ static const VideoModule VaapiGlxModule = {
|
||||
VaapiGetHwAccelContext,
|
||||
.SetClock = (void (*const) (VideoHwDecoder *, int64_t))VaapiSetClock,
|
||||
.GetClock = (int64_t(*const) (const VideoHwDecoder *))VaapiGetClock,
|
||||
.SetClosing = (void (*const) (const VideoHwDecoder *))VaapiSetClosing,
|
||||
.SetTrickSpeed =
|
||||
(void (*const) (const VideoHwDecoder *, int))VaapiSetTrickSpeed,
|
||||
.GrabOutput = NULL,
|
||||
@ -8380,11 +8393,21 @@ static int64_t VdpauGetClock(const VdpauDecoder * decoder)
|
||||
2);
|
||||
}
|
||||
|
||||
///
|
||||
/// Set VDPAU decoder closing stream flag.
|
||||
///
|
||||
/// @param decoder VDPAU decoder
|
||||
///
|
||||
static void VdpauSetClosing(VdpauDecoder * decoder)
|
||||
{
|
||||
decoder->Closing = 1;
|
||||
}
|
||||
|
||||
///
|
||||
/// Set trick play speed.
|
||||
///
|
||||
/// @param decoder VDPAU decoder
|
||||
/// @param speed trick speed (0 = normal)
|
||||
/// @param decoder VDPAU decoder
|
||||
/// @param speed trick speed (0 = normal)
|
||||
///
|
||||
static void VdpauSetTrickSpeed(VdpauDecoder * decoder, int speed)
|
||||
{
|
||||
@ -9097,6 +9120,7 @@ static const VideoModule VdpauModule = {
|
||||
VdpauGetHwAccelContext,
|
||||
.SetClock = (void (*const) (VideoHwDecoder *, int64_t))VdpauSetClock,
|
||||
.GetClock = (int64_t(*const) (const VideoHwDecoder *))VdpauGetClock,
|
||||
.SetClosing = (void (*const) (const VideoHwDecoder *))VdpauSetClosing,
|
||||
.SetTrickSpeed =
|
||||
(void (*const) (const VideoHwDecoder *, int))VdpauSetTrickSpeed,
|
||||
.GrabOutput = VdpauGrabOutputSurface,
|
||||
@ -9254,6 +9278,7 @@ static const VideoModule NoopModule = {
|
||||
DummyGetHwAccelContext,
|
||||
.SetClock = (void (*const) (VideoHwDecoder *, int64_t))NoopSetClock,
|
||||
.GetClock = (int64_t(*const) (const VideoHwDecoder *))NoopGetClock,
|
||||
.SetClosing = (void (*const) (const VideoHwDecoder *))NoopSetClosing,
|
||||
.SetTrickSpeed =
|
||||
(void (*const) (const VideoHwDecoder *, int))NoopSetTrickSpeed,
|
||||
.GrabOutput = NoopGrabOutputSurface,
|
||||
@ -9961,17 +9986,7 @@ int64_t VideoGetClock(const VideoHwDecoder * hw_decoder)
|
||||
void VideoSetClosing(VideoHwDecoder * hw_decoder)
|
||||
{
|
||||
Debug(3, "video: set closing\n");
|
||||
// FIXME: test to check if working, than make module function
|
||||
#ifdef USE_VDPAU
|
||||
if (VideoUsedModule == &VdpauModule) {
|
||||
hw_decoder->Vdpau.Closing = 1;
|
||||
}
|
||||
#endif
|
||||
#ifdef USE_VAAPI
|
||||
if (VideoUsedModule == &VaapiModule) {
|
||||
hw_decoder->Vaapi.Closing = 1;
|
||||
}
|
||||
#endif
|
||||
VideoUsedModule->SetClosing(hw_decoder);
|
||||
// clear clock to avoid further sync
|
||||
VideoSetClock(hw_decoder, AV_NOPTS_VALUE);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user