vpp: fix output filter count from QueryVideoProcFilters().
authorGwenole Beauchesne <gwenole.beauchesne@intel.com>
Thu, 25 Jul 2013 08:52:31 +0000 (10:52 +0200)
committerXiang, Haihao <haihao.xiang@intel.com>
Mon, 9 Sep 2013 07:04:50 +0000 (15:04 +0800)
When vaQueryVideoProcFilters() returns VA_STATUS_ERROR_MAX_NUM_EXCEEDED,
i.e. when the caller allocated too few entries for the filters argument,
then the num_filters argument shall be adjusted to correct number of
entries that need to be re-allocated.

https://bugs.freedesktop.org/show_bug.cgi?id=67292

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
src/i965_drv_video.c

index ea1f1d0..9a8d709 100755 (executable)
@@ -4561,8 +4561,11 @@ VAStatus i965_QueryVideoProcFilters(
 
     for (i = 0; i < i965->codec_info->num_filters; i++) {
         if (i965_os_has_ring_support(ctx, i965->codec_info->filters[i].ring)) {
-            if (num == *num_filters)
+            if (num == *num_filters) {
+                *num_filters = i965->codec_info->num_filters;
+
                 return VA_STATUS_ERROR_MAX_NUM_EXCEEDED;
+            }
          
             filters[num++] = i965->codec_info->filters[i].type;
         }