msdk: make sure the found response meets the request
authorHaihao Xiang <haihao.xiang@intel.com>
Fri, 3 Jan 2020 07:27:30 +0000 (15:27 +0800)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 6 Jan 2020 02:16:53 +0000 (02:16 +0000)
Otherwise the re-used msdk response doesn't have enough frames so it is
possible the pipeline will be broken

sys/msdk/gstmsdkcontext.c

index d93b3e2..b2341d3 100644 (file)
@@ -357,7 +357,8 @@ _find_request (gconstpointer resp, gconstpointer req)
 
   /* Confirm if it's under the size of the cached response */
   if (_req->Info.Width <= cached_resp->request.Info.Width &&
-      _req->Info.Height <= cached_resp->request.Info.Height) {
+      _req->Info.Height <= cached_resp->request.Info.Height &&
+      _req->NumFrameSuggested <= cached_resp->request.NumFrameSuggested) {
     return _req->Type & cached_resp->
         request.Type & MFX_MEMTYPE_FROM_DECODE ? 0 : -1;
   }