Mesa (master): vdpau/decode: Check max width and max height.

Christian König deathsimple at kemper.freedesktop.org
Sun Sep 15 14:19:14 UTC 2013


Module: Mesa
Branch: master
Commit: 6f5229512906f8d545ed88dc2703f3c8ec45dc17
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f5229512906f8d545ed88dc2703f3c8ec45dc17

Author: Rico Schüller <kgbricola at web.de>
Date:   Sat Sep 14 20:27:07 2013 +0200

vdpau/decode: Check max width and max height.

Reviewed-by: Christian König <christian.koenig at amd.com>

---

 src/gallium/state_trackers/vdpau/decode.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/src/gallium/state_trackers/vdpau/decode.c b/src/gallium/state_trackers/vdpau/decode.c
index 47ca229..b144b83 100644
--- a/src/gallium/state_trackers/vdpau/decode.c
+++ b/src/gallium/state_trackers/vdpau/decode.c
@@ -51,6 +51,7 @@ vlVdpDecoderCreate(VdpDevice device,
    vlVdpDecoder *vldecoder;
    VdpStatus ret;
    bool supported;
+   uint32_t maxwidth, maxheight;
 
    if (!decoder)
       return VDP_STATUS_INVALID_POINTER;
@@ -84,6 +85,25 @@ vlVdpDecoderCreate(VdpDevice device,
       return VDP_STATUS_INVALID_DECODER_PROFILE;
    }
 
+   maxwidth = screen->get_video_param
+   (
+      screen,
+      templat.profile,
+      PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
+      PIPE_VIDEO_CAP_MAX_WIDTH
+   );
+   maxheight = screen->get_video_param
+   (
+      screen,
+      templat.profile,
+      PIPE_VIDEO_ENTRYPOINT_BITSTREAM,
+      PIPE_VIDEO_CAP_MAX_HEIGHT
+   );
+   if (width > maxwidth || height > maxheight) {
+      pipe_mutex_unlock(dev->mutex);
+      return VDP_STATUS_INVALID_SIZE;
+   }
+
    vldecoder = CALLOC(1,sizeof(vlVdpDecoder));
    if (!vldecoder) {
       pipe_mutex_unlock(dev->mutex);




More information about the mesa-commit mailing list