mirror of
https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
synced 2023-10-10 19:16:51 +02:00
Fix alternative OSD support with VDPAU bitmap surfaces.
This commit is contained in:
parent
978fc59aba
commit
501d46793f
@ -1,6 +1,7 @@
|
|||||||
User johns
|
User johns
|
||||||
Date:
|
Date:
|
||||||
|
|
||||||
|
Fix alternative OSD support with VDPAU bitmap surfaces.
|
||||||
Add support for umlauts in input fields.
|
Add support for umlauts in input fields.
|
||||||
Fix compile error with VDR 2.1.3.
|
Fix compile error with VDR 2.1.3.
|
||||||
Fix bug: memory leak.
|
Fix bug: memory leak.
|
||||||
|
1
Makefile
1
Makefile
@ -37,6 +37,7 @@ CONFIG += -DUSE_PIP # PIP support
|
|||||||
#CONFIG += -DUSE_MPEG_COMPLETE # support only complete mpeg packets
|
#CONFIG += -DUSE_MPEG_COMPLETE # support only complete mpeg packets
|
||||||
#CONFIG += -DH264_EOS_TRICKSPEED # insert seq end packets for trickspeed
|
#CONFIG += -DH264_EOS_TRICKSPEED # insert seq end packets for trickspeed
|
||||||
#CONDIF += -DDUMP_TRICKSPEED # dump trickspeed packets
|
#CONDIF += -DDUMP_TRICKSPEED # dump trickspeed packets
|
||||||
|
CONFIG += -DUSE_BITMAP # VDPAU, use bitmap surface for OSD
|
||||||
CONFIG += -DUSE_VDR_SPU # use VDR SPU decoder.
|
CONFIG += -DUSE_VDR_SPU # use VDR SPU decoder.
|
||||||
#CONFIG += -DUSE_SOFTLIMIT # (tobe removed) limit the buffer fill
|
#CONFIG += -DUSE_SOFTLIMIT # (tobe removed) limit the buffer fill
|
||||||
|
|
||||||
|
22
video.c
22
video.c
@ -46,7 +46,7 @@
|
|||||||
#define USE_DOUBLEBUFFER ///< use GLX double buffers
|
#define USE_DOUBLEBUFFER ///< use GLX double buffers
|
||||||
//#define USE_VAAPI ///< enable vaapi support
|
//#define USE_VAAPI ///< enable vaapi support
|
||||||
//#define USE_VDPAU ///< enable vdpau support
|
//#define USE_VDPAU ///< enable vdpau support
|
||||||
#define noUSE_BITMAP ///< use vdpau bitmap surface
|
//#define USE_BITMAP ///< use vdpau bitmap surface
|
||||||
//#define AV_INFO ///< log a/v sync informations
|
//#define AV_INFO ///< log a/v sync informations
|
||||||
#ifndef AV_INFO_TIME
|
#ifndef AV_INFO_TIME
|
||||||
#define AV_INFO_TIME (50 * 60) ///< a/v info every minute
|
#define AV_INFO_TIME (50 * 60) ///< a/v info every minute
|
||||||
@ -8024,7 +8024,7 @@ static void VdpauMixOsd(void)
|
|||||||
status =
|
status =
|
||||||
VdpauOutputSurfaceRenderBitmapSurface(VdpauSurfacesRb
|
VdpauOutputSurfaceRenderBitmapSurface(VdpauSurfacesRb
|
||||||
[VdpauSurfaceIndex], &output_double_rect,
|
[VdpauSurfaceIndex], &output_double_rect,
|
||||||
VdpauOsdOutputSurface[!VdpauOsdSurfaceIndex], &source_rect, NULL,
|
VdpauOsdBitmapSurface[!VdpauOsdSurfaceIndex], &source_rect, NULL,
|
||||||
VideoTransparentOsd ? &blend_state : NULL,
|
VideoTransparentOsd ? &blend_state : NULL,
|
||||||
VDP_OUTPUT_SURFACE_RENDER_ROTATE_0);
|
VDP_OUTPUT_SURFACE_RENDER_ROTATE_0);
|
||||||
if (status != VDP_STATUS_OK) {
|
if (status != VDP_STATUS_OK) {
|
||||||
@ -8253,15 +8253,29 @@ static void VdpauBlackSurface(VdpauDecoder * decoder)
|
|||||||
output_rect.y1 = decoder->VideoHeight;
|
output_rect.y1 = decoder->VideoHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: double buffered osd disabled
|
||||||
|
// VdpauOsdSurfaceIndex always 0 and only 0 valid
|
||||||
|
#ifdef USE_BITMAP
|
||||||
status =
|
status =
|
||||||
VdpauOutputSurfaceRenderOutputSurface(VdpauSurfacesRb
|
VdpauOutputSurfaceRenderBitmapSurface(VdpauSurfacesRb
|
||||||
[VdpauSurfaceIndex], &output_rect,
|
[VdpauSurfaceIndex], &output_rect,
|
||||||
VdpauOsdOutputSurface[!VdpauOsdSurfaceIndex], &source_rect, NULL, NULL,
|
VdpauOsdBitmapSurface[VdpauOsdSurfaceIndex], &source_rect, NULL, NULL,
|
||||||
VDP_OUTPUT_SURFACE_RENDER_ROTATE_0);
|
VDP_OUTPUT_SURFACE_RENDER_ROTATE_0);
|
||||||
if (status != VDP_STATUS_OK) {
|
if (status != VDP_STATUS_OK) {
|
||||||
Error(_("video/vdpau: can't render output surface: %s\n"),
|
Error(_("video/vdpau: can't render output surface: %s\n"),
|
||||||
VdpauGetErrorString(status));
|
VdpauGetErrorString(status));
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
status =
|
||||||
|
VdpauOutputSurfaceRenderOutputSurface(VdpauSurfacesRb
|
||||||
|
[VdpauSurfaceIndex], &output_rect,
|
||||||
|
VdpauOsdOutputSurface[VdpauOsdSurfaceIndex], &source_rect, NULL, NULL,
|
||||||
|
VDP_OUTPUT_SURFACE_RENDER_ROTATE_0);
|
||||||
|
if (status != VDP_STATUS_OK) {
|
||||||
|
Error(_("video/vdpau: can't render output surface: %s\n"),
|
||||||
|
VdpauGetErrorString(status));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user