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>
This commit is contained in:
@@ -45,6 +45,8 @@ parser.add_argument('--files_directory', type=str, default='',
|
||||
help='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')
|
||||
parser.add_argument('--results_directory', type=str, default='',
|
||||
help='The path to a dirctory to store results - optional')
|
||||
parser.add_argument('--use_ffmpeg_demuxer', type=int, default=1,
|
||||
help='Indicator to use FFMPEG demuxer - optional (default:1). If set to 0, built-in bitstream reader is used.')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
@@ -53,6 +55,12 @@ gpuDeviceID = args.gpu_device_id
|
||||
filesDir = args.files_directory
|
||||
videoDecodeEXE = args.videodecode_exe
|
||||
resultsDir = args.results_directory
|
||||
useFFDemuxer = args.use_ffmpeg_demuxer
|
||||
|
||||
if useFFDemuxer == 1:
|
||||
bsReaderOption = ''
|
||||
else:
|
||||
bsReaderOption = '-no_ffmpeg_demux'
|
||||
|
||||
print("\nrunrocDecodeTests V"+__version__+"\n")
|
||||
|
||||
@@ -108,7 +116,7 @@ if streamListSize != md5ListSize:
|
||||
for i in range(streamListSize):
|
||||
streamFilePath = streamFileDir + streamFileList[i]
|
||||
md5FilePath = md5FileDir + md5FileList[i]
|
||||
os.system(run_rocDecode_app +' -i ' + streamFilePath + ' -md5_check ' + md5FilePath + ' -d ' + str(gpuDeviceID) + ' | tee -a ' + resultsPath + '/rocDecode_output.log')
|
||||
os.system(run_rocDecode_app +' -i ' + streamFilePath + ' ' + bsReaderOption + ' -md5_check ' + md5FilePath + ' -d ' + str(gpuDeviceID) + ' | tee -a ' + resultsPath + '/rocDecode_output.log')
|
||||
print("======================================================================================\n")
|
||||
|
||||
fileString = 'Input file'
|
||||
|
||||
Reference in New Issue
Block a user