编译及运行应用

  1. 以管理员帐号登录开发环境,并切换到venc_image样例所在的目录。
  2. 编译代码。

    1. 在样例目录下,创建目录用于存放编译文件,例如,本文中,依次创建的目录为“build\intermediates\soc”
    2. 以管理员身份执行cmd窗口,切换到“样例目录\build\intermediates\soc”目录下,执行cmake生成编译文件,在“样例目录\out\Debug”“样例目录\out\release”目录下生成可执行文件main.exe,将Debug或release目录下的main.exe复制到“样例目录\out”目录下,否则会导致运行可执行文件时找不到依赖的文件。

      “../../../src”表示CMakeLists.txt文件所在的目录,请根据实际目录层级修改。

      • Debug模式时的编译命令如下:
        cd 样例目录\build\intermediates\soc
        cmake ../../../src -DCMAKE_SKIP_RPATH=TRUE -G "Visual Studio 15 2017 Win64"
        cmake --build .
      • Release模式下的编译命令如下:
        cd 样例目录\build\intermediates\soc
        cmake ../../../src -DCMAKE_SKIP_RPATH=TRUE -G "Visual Studio 15 2017 Win64" -DCMAKE_CONFIGURATION_TYPES=release
        cmake --build . --config release

      当前样例的编码字符集为ASCII,编译命令默认都是ASCII编码字符集,不支持Unicode编码字符集,如需支持Unicode编码字符集,需用户自行适配代码。

  3. 准备输入图片。

    请从以下链接获取该样例的输入图片,并以运行用户将获取的文件上传至开发环境“venc_image样例目录\data”目录下。如果目录不存在,需自行创建。

    https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dvpp_venc_128x128_nv12.yuv

  4. 运行应用。

    1. 以管理员帐号将开发环境的venc_image样例目录及其子文件上传到运行环境(Host)。
    2. 以管理员帐号登录运行环境(Host)。
    3. 以管理员身份执行cmd窗口,切换到可执行文件main所在的目录,运行可执行文件。

      执行可执行文件成功后,同时会在main.exe文件同级output目录下生成编码结果文件dvpp_venc_128x128.h265,便于后期查看。

      执行可执行文件时,可以增加入参来配置编码的次数,例如“./main 20”,如果不增加入参,则默认编码次数为16次。
      main.exe

      执行成功后,在屏幕上的关键提示信息示例如下。

      [INFO]  ./main param, param is execute venc times(default 16)
      [INFO]  acl init success
      [INFO]  open device 0 success
      [INFO]  create context success
      [INFO]  get run mode success
      [INFO]  create process callback thread successfully, threadId = 139926343980800
      [INFO]  start check result fold:output/
      [INFO]  make directory successfully.
      [INFO]  check result success, fold exist
      [INFO]  process callback thread start
      [INFO]  venc init resource success
      [INFO]  success to callback, stream size:5431
      [INFO]  success to callback, stream size:704
      [INFO]  success to callback, stream size:693
      [INFO]  success to callback, stream size:922
      [INFO]  success to callback, stream size:1153
      [INFO]  success to callback, stream size:689
      [INFO]  success to callback, stream size:857
      [INFO]  success to callback, stream size:1273
      [INFO]  success to callback, stream size:785
      [INFO]  success to callback, stream size:976
      [INFO]  success to callback, stream size:869
      [INFO]  success to callback, stream size:1445
      [INFO]  success to callback, stream size:845
      [INFO]  success to callback, stream size:1003
      [INFO]  success to callback, stream size:922
      [INFO]  success to callback, stream size:905
      [INFO]  venc process success
      [INFO]  execute sample success
      [INFO]  destory process callback thread success
      [INFO]  end to destroy context
      [INFO]  end to reset device is 0
      [INFO]  end to finalize acl