Decode Multiple Video Streams

author-image

By

Introduction

Using Intel® Video Processing Library (Intel® VPL) enables you to access the very fast decoding ability of our GPU media processing accelerators. Often you will want to decode two video streams simultaneously, using a command like:

./hello-decode -i ../test-444-10.h265 & ./hello-decode -i ../test-444-10.h265

On particular platforms running on Ubuntu*, we discovered an issue with the way those platforms handle multistream decoding.

Hang Details

Specifically, the issue is "GPU hang in Intel Gfx stack i915 driver". This issue is experienced when decoding multiple streams simultaneously. In particular, this issue is experienced with 11th generation and some 12th generation Intel® Core™ processors.

Newer 12th generation Intel Core processor drivers implement the dual stream decoding differently so that this hang does not occur. 12th generation Intel® Core™ mobile processors for IoT applications and beyond will not experience this issue.

Workaround

This hang is often triggered when scalability and Microsoft* Management Console (MMC) are enabled. To avoid this hang on 11th generation and 12th generation Intel Core desktop processors, disable scalability and MMC.

To disable scalability and MMC, do the following:

  1. Go to /etc/
  2. Modify igfx_user_feature.txt and igfx_user_feature_next.txt
  3. In the igfx_user_feature.txt file, find [KEY] and add the following:
[KEY]
  0x00000001
  UFKEY_INTERNAL\LibVa
  .......
    [VALUE]
      Enable VP MMC
      4
      0
    [VALUE]
      Enable Codec MMC
      4
      0
    [VALUE]
      Enable Vebox Decompress
      4
      0
    [VALUE]
      Enable Media RenderEngine MMC
      4
      0
    [VALUE]
      Enable HCP Scalability Decode
      4
      0
  1. In the igfx_user_feature_next.txt file, find [config] and add the following:
Enable HCP Scalability Decode=0
Enable VP MMC=0
Enable Codec MMC=0
Enable Media RenderEngine MMC=0
Enable HCP Scalability Decode=0
  1. To ensure the key was set successfully, check [report] in the igfx_user_feature.txt file. The following value should be 0 (zero).
Decode MMC In Use=0x0

If you experience difficulties, let us know in the Intel VPL forum.