mirror of
https://github.com/jojo61/vdr-plugin-softhdcuvid.git
synced 2023-10-10 13:37:41 +02:00
fixed fullscreen ratio
This commit is contained in:
parent
b06bd8e3ec
commit
dc092d9d00
40
video.c
40
video.c
@ -446,6 +446,22 @@ static char DPMSDisabled; ///< flag we have disabled dpms
|
|||||||
static char EnableDPMSatBlackScreen; ///< flag we should enable dpms at black screen
|
static char EnableDPMSatBlackScreen; ///< flag we should enable dpms at black screen
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static int GlxEnabled; ///< use GLX
|
||||||
|
static int GlxVSyncEnabled = 1; ///< enable/disable v-sync
|
||||||
|
static GLXContext GlxSharedContext; ///< shared gl context
|
||||||
|
static GLXContext GlxContext; ///< our gl context
|
||||||
|
|
||||||
|
#ifdef USE_VIDEO_THREAD
|
||||||
|
static GLXContext GlxThreadContext; ///< our gl context for the thread
|
||||||
|
#endif
|
||||||
|
|
||||||
|
static XVisualInfo *GlxVisualInfo; ///< our gl visual
|
||||||
|
|
||||||
|
static GLuint OsdGlTextures[2]; ///< gl texture for OSD
|
||||||
|
static int OsdIndex; ///< index into OsdGlTextures
|
||||||
|
static void GlxSetupWindow(xcb_window_t window, int width, int height, GLXContext context);
|
||||||
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
// Common Functions
|
// Common Functions
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
@ -618,8 +634,8 @@ static void VideoUpdateOutput(AVRational input_aspect_ratio, int input_width,
|
|||||||
*output_width = (video_height * display_aspect_ratio.num + display_aspect_ratio.den ) / display_aspect_ratio.den;
|
*output_width = (video_height * display_aspect_ratio.num + display_aspect_ratio.den ) / display_aspect_ratio.den;
|
||||||
*output_height = (video_width * display_aspect_ratio.den + display_aspect_ratio.num ) / display_aspect_ratio.num;
|
*output_height = (video_width * display_aspect_ratio.den + display_aspect_ratio.num ) / display_aspect_ratio.num;
|
||||||
// JOJO hier stimmt was nicht
|
// JOJO hier stimmt was nicht
|
||||||
*output_width = video_width;
|
// *output_width = video_width;
|
||||||
*output_height = video_height;
|
// *output_height = video_height;
|
||||||
|
|
||||||
if (*output_width > video_width) {
|
if (*output_width > video_width) {
|
||||||
*output_width = video_width;
|
*output_width = video_width;
|
||||||
@ -628,6 +644,7 @@ static void VideoUpdateOutput(AVRational input_aspect_ratio, int input_width,
|
|||||||
*output_height = video_height;
|
*output_height = video_height;
|
||||||
*output_x += (video_width - *output_width) / 2;
|
*output_x += (video_width - *output_width) / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
Debug(3, "video: normal aspect output %dx%d%+d%+d Video %dx%d\n", *output_width, *output_height, *output_x, *output_y,video_width,video_height);
|
Debug(3, "video: normal aspect output %dx%d%+d%+d Video %dx%d\n", *output_width, *output_height, *output_x, *output_y,video_width,video_height);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -694,19 +711,7 @@ static void VideoUpdateOutput(AVRational input_aspect_ratio, int input_width,
|
|||||||
|
|
||||||
#ifdef USE_GLX
|
#ifdef USE_GLX
|
||||||
|
|
||||||
static int GlxEnabled; ///< use GLX
|
|
||||||
static int GlxVSyncEnabled = 1; ///< enable/disable v-sync
|
|
||||||
static GLXContext GlxSharedContext; ///< shared gl context
|
|
||||||
static GLXContext GlxContext; ///< our gl context
|
|
||||||
|
|
||||||
#ifdef USE_VIDEO_THREAD
|
|
||||||
static GLXContext GlxThreadContext; ///< our gl context for the thread
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static XVisualInfo *GlxVisualInfo; ///< our gl visual
|
|
||||||
|
|
||||||
static GLuint OsdGlTextures[2]; ///< gl texture for OSD
|
|
||||||
static int OsdIndex; ///< index into OsdGlTextures
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// GLX extension functions
|
/// GLX extension functions
|
||||||
@ -3072,7 +3077,8 @@ static void CuvidDisplayFrame(void)
|
|||||||
static uint64_t last_time;
|
static uint64_t last_time;
|
||||||
int i;
|
int i;
|
||||||
static unsigned int Count;
|
static unsigned int Count;
|
||||||
|
int filled;
|
||||||
|
CuvidDecoder *decoder;
|
||||||
#if 0
|
#if 0
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -3113,8 +3119,6 @@ static void CuvidDisplayFrame(void)
|
|||||||
///
|
///
|
||||||
|
|
||||||
for (i = 0; i < CuvidDecoderN; ++i) {
|
for (i = 0; i < CuvidDecoderN; ++i) {
|
||||||
int filled;
|
|
||||||
CuvidDecoder *decoder;
|
|
||||||
|
|
||||||
decoder = CuvidDecoders[i];
|
decoder = CuvidDecoders[i];
|
||||||
decoder->FramesDisplayed++;
|
decoder->FramesDisplayed++;
|
||||||
@ -3137,7 +3141,7 @@ static void CuvidDisplayFrame(void)
|
|||||||
//
|
//
|
||||||
if (OsdShown) {
|
if (OsdShown) {
|
||||||
glXMakeCurrent(XlibDisplay, VideoWindow, GlxThreadContext);
|
glXMakeCurrent(XlibDisplay, VideoWindow, GlxThreadContext);
|
||||||
GlxRenderTexture(OsdGlTextures[OsdIndex], 0, 0, VideoWindowWidth, VideoWindowHeight);
|
GlxRenderTexture(OsdGlTextures[OsdIndex], decoder->OutputX, decoder->OutputY, decoder->OutputWidth, decoder->OutputHeight);
|
||||||
glXMakeCurrent(XlibDisplay, VideoWindow, GlxSharedContext);
|
glXMakeCurrent(XlibDisplay, VideoWindow, GlxSharedContext);
|
||||||
// FIXME: toggle osd
|
// FIXME: toggle osd
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user