Files
rocm-systems/test/testScripts
jeffqjiangNew e62aa3e09b Added the bit stream reader feature. (#433)
* * rocDecode/ES parser: Added elementary stream file parser for HEVC and AVC.

* * rocDecode/ES parser: Added elementary stream file parser for AV1. Also cleaned up the bitstream ring buffer code.

* * rocDecode/ES parser: Added the IVF container file parser for AV1. Also fixed a bug in fill ring buffer function.

* * rocDecode/ES file parder: Added supported stream type detection.
 - The stream type detection checks the unique syntax patterns of the stream type and calculate the likeliheed score. Based on the score, the most likely type is determined.
 - The current supported stream types are: AVC/HEVC/AV1 elementary streams, IVF AV1 streams.

* * rocDecode/ES file parser: Fixed an AVC decode regression due to a copy and paste error.

* * rocDecode/ES file parser: Added bit depth parsing for codec support check; Added stronger AV1 detection for IVF AV1 stream type.

* * rocDecode/ES file parser: Removed debugging logs.

* * rocDecode/ES file parser: Added exmaple code to use the built-in file parser.

* * rocDecode/Bitstream reader: Renamed the elementary parser feature to bitstream reader and re-organized the code.
 - Moved the bitstream reader code to rocDecode core lib from utility.
 - Added bitstream reader interface in parallel with rocDecode parser and decoder interfaces.

* * rocDecode/Bitstream reader: Added sample to use bitstream reader, instead of FFMPEG demuxer, to get picture data. Also reverted the original sample app back to using FFMPEG demuxer only.

* * rocDecode/Bitstream reader: Renamed the new sample app.

* * rocDecode/Bitstream reader: FFMPEG dependency reduction.
 - Moved MD5 functions out of RocVideoDecoder utility class. This removed RocVideoDecoder's dependency on FFMPEG.
 - Added the new MD5 utility, which depends on FFMPEG lib. MD5 message digest generation is now performed in the MD5 utility.
 - Modified decode sampples that uses MD5 generation function.
 - Removed FFMPEG dependency from video decoder basic sample.

* * rocDecode/Bitstream reader: Added option to use bitstream reader to video decode sample and conformance test script. Added the missing destroy bitstream reader call in video decode basic sample.

* * rocDecode/Bitstream reader: Minor format change. No functional changes.

* * rocDecode/Bitstream reader: Added handling of unsupported stream file type by the bitstream reader to decode sample apps.

* * rocDecode/Bitstream reader: Fixed build errors of several samples.

* * rocDecode/Bitstream reader: Added changes based on review comments.

* * rocDecode/Bitstream reader: File name changes based on review comments.

* * rocDecode/Bitstream reader: Moved MD5 code into single header file. Added changes based on review comments.

* * rocDecode/Bitstream reader: Removed redundant path.

* * rocDecode/Bitstream reader: Changed rocDecode version to 0.10.0. Added minor changes based on review comments.

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>
2024-12-05 09:46:24 -05:00
..

rocDecode Test Scripts

Pre-requisites to run python script

  • Install rocDecode

  • FFMPEG

    • On Ubuntu
    sudo apt install ffmpeg libavcodec-dev libavformat-dev libavutil-dev
    
    • On RHEL/SLES - install ffmpeg development packages manually or use rocDecode-setup.py script
  • Python3 and pip packages - pandas, & tabulate

python3 -m pip install pandas tabulate

Scripts

Usage:

  • run_rocDecodeSamples.py
usage: run_rocDecodeSamples.py [--rocDecode_directory ROCDECODE_DIRECTORY] 
                               [--gpu_device_id GPU_DEVICE_ID]
                               [--files_directory FILES_DIRECTORY]
                               [--sample_mode SAMPLE_MODE]
                               [--num_threads NUM_THREADS]

optional arguments:
  -h, --help            show this help message and exit
  --rocDecode_directory ROCDECODE_DIRECTORY
                        The rocDecode Directory - required
  --gpu_device_id GPU_DEVICE_ID
                        The GPU device ID that will be used to run the test on it - optional (default:0 [range:0 - N-1] N = total number of available GPUs on a machine)
  --files_directory FILES_DIRECTORY
                        The path to a dirctory containing one or more supported files for decoding (e.g., mp4, mov, etc.) - required
  --sample_mode SAMPLE_MODE
                        The sample to run - optional (default:0 [range:0-1] 0: videoDecode, 1: videoDecodePerf)
  --num_threads NUM_THREADS
                        The number of threads is only for the videoDecodePerf sample (sample_mode = 1) - optional (default:1)
  --max_num_decoded_frames MAX_NUM_DECODED_FRAMES
                        The max number of decoded frames. Useful for partial decoding of a long stream. - optional (default:0, meaning no limit)
  • run_rocDecode_Conformance.py
usage: run_rocDecode_Conformance.py [--rocDecode_directory ROCDECODE_DIRECTORY] 
                                    [--gpu_device_id GPU_DEVICE_ID]
                                    [--files_directory FILES_DIRECTORY]

optional arguments:
  -h, --help            show this help message and exit
  --rocDecode_directory ROCDECODE_DIRECTORY
                        The rocDecode Directory - required
  --gpu_device_id GPU_DEVICE_ID
                        The GPU device ID that will be used to run the test on it - optional (default:0 [range:0 - N-1] N = total number of available GPUs on a machine)
  --files_directory FILES_DIRECTORY
                        The path to a dirctory containing one or more supported files for decoding (e.g., mp4, mov, etc.) and their corresponding reference MD5 digests - required