Fix bug: devision by zero in ...UpdateOutput,

This commit is contained in:
Johns 2012-01-13 10:04:26 +01:00
parent 788636ee6b
commit d3b98b90f4
1 changed files with 13 additions and 1 deletions

14
video.c
View File

@ -1540,6 +1540,12 @@ static void VaapiUpdateOutput(VaapiDecoder * decoder)
decoder->InputWidth * input_aspect_ratio.num,
decoder->InputHeight * input_aspect_ratio.den, 1024 * 1024);
// InputWidth/Height can be zero = uninitialized
if (!display_aspect_ratio.num || !display_aspect_ratio.den) {
display_aspect_ratio.num = 1;
display_aspect_ratio.den = 1;
}
Debug(3, "video: aspect %d:%d\n", display_aspect_ratio.num,
display_aspect_ratio.den);
@ -3991,7 +3997,7 @@ static void VdpauExitOutputQueue(void)
Debug(4, "video/vdpau: destroy output surface with id 0x%08x\n",
VdpauSurfacesRb[i]);
if ( VdpauSurfacesRb[i] != VDP_INVALID_HANDLE ) {
if (VdpauSurfacesRb[i] != VDP_INVALID_HANDLE) {
status = VdpauOutputSurfaceDestroy(VdpauSurfacesRb[i]);
if (status != VDP_STATUS_OK) {
Error(_("video/vdpau: can't destroy output surface: %s\n"),
@ -4450,6 +4456,12 @@ static void VdpauUpdateOutput(VdpauDecoder * decoder)
decoder->InputWidth * input_aspect_ratio.num,
decoder->InputHeight * input_aspect_ratio.den, 1024 * 1024);
// InputWidth/Height can be zero = uninitialized
if (!display_aspect_ratio.num || !display_aspect_ratio.den) {
display_aspect_ratio.num = 1;
display_aspect_ratio.den = 1;
}
Debug(3, "video: aspect %d:%d\n", display_aspect_ratio.num,
display_aspect_ratio.den);