Γράφημα Υποβολών

133 Υποβολές

Συγγραφέας SHA1 Μήνυμα Ημερομηνία
jeffqjiangNew a0dd3fc6b3 AVC: Added support for in stream DPB buffer size change. (#553)
* * AVC: Added support for in stream DPB buffer size change.

* * AVC: Updated change log.

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>

[ROCm/rocdecode commit: 3d1a1b638e]
2025-04-09 20:57:52 -04:00
Aryan Salmanpour 20e919c6cf Code Clean up - remove unused API (#552)
* Code Clean up - remove unused API

* clean up

[ROCm/rocdecode commit: d80f807b1a]
2025-04-09 13:49:04 -04:00
jeffqjiangNew 8b5cf557df * AVC: Fixed an issue in video size change cases, where the remaining decoded buffers of the previous video size in DPB are not output. (#550)
- We need to flush DPB before decoder reconfiguration.

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>

[ROCm/rocdecode commit: 9127f2ccba]
2025-04-07 20:34:01 -04:00
jeffqjiangNew 97d503139d AVC error resilience: Added bitstream syntax error handling. (#549)
* * AVC error resilience: Added syntax error detection in SPS, PPS, and slice header parsing.

* * AVC error resilience: Added NAL unit size check before parsing.

* * AVC error resilience: Added parsing error handling.

* * AVC error resilience: Updated change log.

[ROCm/rocdecode commit: 0cb7c4594c]
2025-04-07 16:16:49 -07:00
jeffqjiangNew a7b5c7df8c * HEVC error resilience: Adjusted the range check for the total reference picture number so more errors can be detected. Also fixed a build warning of avc_parser.cpp in debug mode. (#548)
[ROCm/rocdecode commit: d10eacf05f]
2025-03-31 19:04:34 -04:00
jeffqjiangNew 13e8e15d7b * rocDecode/HEVC error resilience: Added dependant slice error handling. (#547)
[ROCm/rocdecode commit: fc01d72aea]
2025-03-28 16:35:03 -04:00
jeffqjiangNew ae7b72631f HEVC Error resilience: Added invalid syntax detection in SPS, PPS, and slice header parsing. (#542)
* * rocDecode/HEVC Error resilience: Added invaid syntax detection in SPS, PPS, and slice header parsing.

* * rocDecode/HEVC error resilience: Minor indent change.

[ROCm/rocdecode commit: 93711b5127]
2025-03-26 08:16:36 -04:00
Lakshmi Kumar 5157e8d7d0 Fix warnings (#536)
* fix warnings

* remove warning

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>

[ROCm/rocdecode commit: 0b1865e8b8]
2025-03-20 09:12:16 -04:00
jeffqjiangNew ede21fffa0 HEVC: Added DPB size change handling through decoder reconfiguration. (#531)
* * rocDecode/HEVC: Added DPB size change handling through decoder reconfiguration.

* * rocDecode/HEVC: Minor fix.

[ROCm/rocdecode commit: 5988eb16b6]
2025-03-18 17:19:01 -04:00
Kiriti Gowda 26a67fb210 CMake config - updates and fixes (#532)
* CMake Config - updates and fixes

* Version - Updates

* Changelog - updates

* Update CHANGELOG.md

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>

---------

Co-authored-by: spolifroni-amd <Sandra.Polifroni@amd.com>

[ROCm/rocdecode commit: 6b026af151]
2025-03-17 12:38:01 -04:00
jeffqjiangNew aacd035b6d HEVC: Added bit depth change support in decoder reconfiguration. (#527)
* * rocDecode/HEVC: Added bit depth change support in decoder reconfiguration.

* * rocDecode/HEVC: Removed a comment line.

* * rocDecode/HEVC: Updated change log.

* * rocDecode/HEVC: Used the reserved space in RocdecReconfigureDecoderInfo structure for bit_depth_minus_8 field to be backward compatible. Added bit depth to the new sequence file name when we dump output in decoder reconfiguration case.

* * rocDecode/HEVC: Added bit depth change support in decoder reconfiguration.

* * rocDecode/HEVC: Removed a comment line.

* * rocDecode/HEVC: Updated change log.

* * rocDecode/HEVC: Used the reserved space in RocdecReconfigureDecoderInfo structure for bit_depth_minus_8 field to be backward compatible. Added bit depth to the new sequence file name when we dump output in decoder reconfiguration case.

* * rocDecode/HEVC: Changes based on review comments.

* * rocDecode: Fixed a bug related to 422 surface format assignment.

* * rocDecode: Fixed build warnings with some sample apps.

[ROCm/rocdecode commit: ab7546930f]
2025-03-13 09:29:25 -04:00
jeffqjiangNew cd98621eb9 * rocDecode/HEVC error resilience: Fixed a vulnerability with active PPS id. We should not assign the current active PPS id to an invalid value. (#529)
[ROCm/rocdecode commit: ac74540c19]
2025-03-12 17:49:52 -04:00
jeffqjiangNew 23309b2e4c Added syntax error handling in VPS parsing. (#526)
* * rocDecode/HEVC: Added error handling in VPS parsing.

* * rocDecode/HEVC: Updated change log.

* * rocDecode/Error resilience: Improved syntax error check logging: add the parameter name.

[ROCm/rocdecode commit: 263b57fde9]
2025-03-10 09:15:12 -04:00
jeffqjiangNew aa1bb2e94f Error resilience: Added HEVC slice syntax error handle for some corrupted streams. (#525)
* * rocDecode/Error resilience: Added HEVC slice syntax error handle for some corrupted streams.
 - Detect out of range total reference numbers.

* * rocDecode/Error resilience: Added additional checks for HEVC reference parameters.

* * rocDecode/Error resilence: Corrected checked range.

[ROCm/rocdecode commit: 27adeb8c47]
2025-03-05 08:44:59 -05:00
jeffqjiangNew 4e8f655fde * rocDecode: Fix a typo in new sequence callback function name. (#520)
[ROCm/rocdecode commit: a78f6730c8]
2025-02-25 20:43:46 -05:00
jeffqjiangNew c8a7b82794 VP9: Added support for video size change (scaling down) on inter frames. (#508)
* * rocDecode/VP9: Added support for video size change (scaling down) on inter frames.
 - A new reconfigure mode is added, where we keep the existing VAAPI surfaces and context, and work on the smaller images and store the images in the surfaces.

* * rocDecode/VP9 resize: Added changes based on review comments.

[ROCm/rocdecode commit: 2af7bbf4e7]
2025-02-12 17:18:09 -05:00
jeffqjiangNew 4ac1c26cfc * rocDecode/HEVC: Added short term RPS parsing error handling. (#495)
[ROCm/rocdecode commit: dec6dacbc9]
2025-01-22 12:47:01 -05:00
jeffqjiangNew 9d96ca1354 * rocDecode/VP9: Increased DPB buffer size to handle streams with the maximum number of the reference frames allowed. (#488)
- DPB buffer size was set to NUM_REF_FRAMES(8) which can not handle streams with 8 reference frames. We increase DPB size from 8 to 10 (same strategy as AV1) to be able to handle these streams.

[ROCm/rocdecode commit: 9c113d5ee9]
2025-01-07 20:43:49 -05:00
jeffqjiangNew 733f676b3b * rocDecode/VP9: Fixed issues with filter parameters. (#487)
- Fixed a condition check in loop filter frame init process.
 - Removed the redundant conversion in interpolation filter assignment in VAAPI. The conversion has been done already when we parse the interpolation filter syntax.

[ROCm/rocdecode commit: 888940f52c]
2025-01-06 12:33:12 -05:00
Aryan Salmanpour c597fb2a4c Update Copyright year to 2025 (#486)
* Update Copyright year to 2025

* update year to 2025

[ROCm/rocdecode commit: 3624040ce7]
2025-01-05 16:25:39 -05:00
jeffqjiangNew 6bcc0a4067 * rocDecode/HEVC: Added in stream DPB buffer size change detection and handling. (#482)
[ROCm/rocdecode commit: 5336913a09]
2024-12-19 17:29:52 -05:00
Aryan Salmanpour dfa22cbbe1 Add support for rocDecode APIs dispatch table (#462)
[ROCm/rocdecode commit: 3dfb669f57]
2024-11-27 16:14:30 -05:00
jeffqjiangNew b7df2fb2b9 VP9: Inter decode is up and running. (#460)
* * rocDecode/VP9: Inter decode is up and running.
 - Added reference list setup for VA-API.
 - Added update reference frame process (8.10).
 - Added set up past independence function.
 - Added DPB and decode pool management.
 - Added display management.
 - Added super frame detection and parsing.
 - Added VA-API parameter logging functions for debugging purposes.

* * rocDecode/VP9: Minor change: removed an extra newline.

* * rocDecode/VP9: Removed todo comments. No functional changes.

* * rocDecode/VP9: Minor changes based on review comments.

* * rocDecode/VP9: Minor changes based on review comment.

[ROCm/rocdecode commit: 3e6f18c636]
2024-11-25 13:51:25 -05:00
jeffqjiangNew f7cffa4db2 HEVC: Cut HEVC parser creation time from about 40 milliseconds to about 50 microseconds. (#458)
* * rocDecode/HEVC: Cut HEVC parser creation time from about 40 milliseconds to about 50 microseconds.

* * rocDecode/HEVC: Added necessary parameter init in parser constructor.

---------

Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>

[ROCm/rocdecode commit: 27e9ed23ed]
2024-11-19 15:10:35 -05:00
jeffqjiangNew dfcad4048d * rocDecode/HEVC: Fixed an issue in RPS decode function. (#455)
- In searching for a short term reference picture in DPB, we need to make sure it is used.

[ROCm/rocdecode commit: 85faa096e5]
2024-11-15 15:41:50 -05:00
jeffqjiangNew 04c28ec306 Added initial code for VP9 support. (#442)
* * rocDecode/VP9: Initial code for VP9.
 - Added structures for VA-API.
 - Added defines for uncompressed header and parsing functions.

* * rocDecode/VP9: Added decode frame call to VA-API.

* * rocDecode/VP9: Added new sequence notification function.

* * rocDecode/VP9: Intra decode started to work.

* * rocDecode/VP9: Minor changes based on review comments.

---------

Co-authored-by: Kiriti Gowda <kiritigowda@gmail.com>

[ROCm/rocdecode commit: 3eb6bc2192]
2024-11-14 10:17:46 -05:00
jeffqjiangNew d30754651f * rocDecode/HEVC: Added empty NAL detection. (#452)
[ROCm/rocdecode commit: b3f8fec41b]
2024-11-13 13:28:29 -05:00
Rajy Rawther 3344bee39d Added bitstream validation code for HEVC parser (#450)
* fix for while loop hang

* fix for while loop hang

* add more data validation code in parser

* minor change

* addressed review comments

* fix conformance failures with new code

* added more checks

[ROCm/rocdecode commit: 69ec7af8bd]
2024-11-11 17:33:17 -05:00
Rajy Rawther c238421b51 fix for while loop hang (#447)
[ROCm/rocdecode commit: 5820f38592]
2024-11-06 14:41:57 -05:00
jeffqjiangNew f3f91675ff * rocDecode/AV1: Fixed an errror in get Q index function during code inspection. (#438)
[ROCm/rocdecode commit: d9b235db5a]
2024-10-24 11:51:22 -04:00
Rajy Rawther 6837a86bf5 Add new API rocDecParserMarkFrameForReuse() for Parser (#430)
* added new API to release video frame for decoder and parser

* removed ReleseFrame() from low level parser classes

* Removed rocDecReleaseFrame() from decoder and added in parser

* address review comments

* revert un-necessary files

* minor fix

* remove unused function

* minor formatting fix

[ROCm/rocdecode commit: 29bfe5e3bd]
2024-10-09 13:29:08 -04:00
jeffqjiangNew 29cfd4a541 Added real decode speed report to set it apart from the current output speed report in sample apps (#409)
* * rocDecode: Added real decode speed report.
 - The current decode speed report is actually output/display speed report.
 - Due to AV1's extensive use of alternate reference frames that are not display, AV1 decoded frame count and output/displayed frame count can be quite different, making the current speed report not an accurate decode speed measurement.
 - We now added the actual decode speed report, besides the existing speed report, now called output/display FPS.

* * rocDecode: Added real decode speed report.
 - The current decode speed report is actually output/display speed report.
 - Due to AV1's extensive use of alternate reference frames that are not display, AV1 decoded frame count and output/displayed frame count can be quite different, making the current speed report not an accurate decode speed measurement.
 - We now added the actual decode speed report, besides the existing speed report, now called output/display FPS.

* * rocDecode/Sample script: Added missing changes for sample_mode 0 case.

[ROCm/rocdecode commit: 6253248188]
2024-08-20 17:43:33 -04:00
jeffqjiangNew b74bd7db16 * rocDecode/AV1: Performance improvement: prevent synchronous decode submissions. (#406)
- Set the display delay to DECODE_BUF_POOL_EXTENSION (2) to avoid immediate output/display of a decoded frame.

[ROCm/rocdecode commit: a863ee26a9]
2024-08-12 10:29:43 -04:00
jeffqjiangNew 3b31e617ea AV1: Fixed an issue with multiple tile group OBUs per picture cases. (#404)
* * rocDecode/AV1: Fixed an issue with multiple tile group OBUs per picture cases.
 - We now use the single base pointer for all tiles in all tile group OBUs and submit them once per picture.

* * rocDecode/AV1: Fixed a typo.

[ROCm/rocdecode commit: 30ee6787b2]
2024-08-07 10:16:17 -04:00
jeffqjiangNew 4fb2028910 * rocDecode/AV1: Fixed a bug in set frame refs process that triggers a conformance error check later. (#400)
[ROCm/rocdecode commit: 6a75dc4dcf]
2024-07-29 17:16:21 -04:00
jeffqjiangNew 93c3e5e9ec * rocDecode/AV1: Fixed a surface size issue in upscaling cases. (#399)
[ROCm/rocdecode commit: d0924490a8]
2024-07-26 12:24:32 -04:00
jeffqjiangNew 273d03c3d0 Added the missing presentation time stamp (pts) to decode return info for displayed pictures. (#398)
* * rocDecode: Added the missing pts to decode return info for decoded pictures.

* * rocDecode: Added the missing pts to decode return info for decoded pictures.

[ROCm/rocdecode commit: 4f8191edc0]
2024-07-25 16:53:20 -04:00
jeffqjiangNew cd308e3fa8 * rocDecode/AV1: Added support for getting frame size from reference frames case. Fixed the data type of several quantization parameters. (#397)
[ROCm/rocdecode commit: 96944030aa]
2024-07-25 14:55:14 -04:00
jeffqjiangNew 1c82e1c680 Enabled AV1 decode by default. (#391)
* * rocDecode/AV1: Enabled AV1 decode by default.

* * rocDecode/AV1: Added changes suggested in code review.
 - Bumped up rocDecode version to 0.7.0.
 - Added AV1 support statement in readme file.

[ROCm/rocdecode commit: 96c65d74a6]
2024-07-22 12:32:12 -04:00
jeffqjiangNew 21461a03fe * rocDecode/AV1: Added support for film grain synthesis and several other fixes. (#389)
- Added film grain parameter saving and loading procedures.
 - Added buffer management for film grain synthesis output.
 - Fixed the corruption issue with 10-bit film grain streams. We need to see surface attibutes based on pixel format when creating VAAPI surfaces.
 - Added missing global motion, loop filter and segmentation parameter loading in load reference frame procedure.
 - Fixed an issue with one tile streams.
 - Fixed an issue with un-initialized frame header structure after frame decode.
 - Fixed a bug with decode buffer status update.

[ROCm/rocdecode commit: ac82d17e9f]
2024-07-19 21:01:36 -04:00
jeffqjiangNew f97829618c AV1: Added a few changes to enable general testing (non-film-grain). (#383)
* * rocDecode/AV1: Added a few changes to enable general testing (non-film-grain).
 - Added show existing frame support.
 - Added load_previous() function.
 - Added more operations to reference frame update process.
 - Added reference frame loading process.
 - Added decode frame wrapup process.
 - Added DPB recycling.
 - Added DPB content logging funcion for debugging purposes.

* * rocDecode/AV1: Removed a line which was added accidentally in the previous commit.

[ROCm/rocdecode commit: a36dd186df]
2024-07-15 10:40:59 -04:00
jeffqjiangNew 3d63690aeb * rocDecode/AV1: Fixed the decoded image surface size issue with 10-bit streams. (#378)
- The root cause is that the bit depth idx parameter setup is missing in VA-API picture parameter setup.

[ROCm/rocdecode commit: a91dcdc72f]
2024-06-28 13:52:36 -04:00
jeffqjiangNew a13ce87a9b * rocDecode/AV1: Basic inter decode is up and running. (#376)
- Added initial support for DPB and decode/display buffer management.
 - Added initial display support.
 - Added reference frame set up.
 - Fixed an issue with cdef_y_sec_strength/cdef_uv_sec_strength parsing. We should leave the conditional increment to VA-API driver or below due to VA-API formatting.

[ROCm/rocdecode commit: 54419dcca3]
2024-06-27 10:26:21 -04:00
jeffqjiangNew 5bdf7f6b8d AV1: Intra decode started to be up and running. (#372)
* * rocDecode/AV1: Added new sequence callback and submit decode calls.

* * rocDecode/AV1: Intra decode started to work.

* * rocDecode/AV1: Do not build PrintVaapiParams() in normal (non-debug) mode.

[ROCm/rocdecode commit: 2be11821fc]
2024-06-26 12:46:11 -04:00
jeffqjiangNew 679bd8ba7e * rocDecode/AV1: Fixed a bug in the calculation of the floor of the base 2 logarithm. (#367)
[ROCm/rocdecode commit: ac272886b1]
2024-06-10 14:02:10 -04:00
jeffqjiangNew 4a888ae0fb AV1: Added OBU parsing and frame data parsing. (#364)
* * rocDecode/AV1: Added OBU parsing at picture level.

* * rocDecode/AV1: Added a few todos and fixed a few issues in frame header parsing.

* * rocDecode/AV1: Minor changes based on code review.

* * rocDecode/AV1: Removed more empty lines.

[ROCm/rocdecode commit: 63d3245176]
2024-06-10 12:07:23 -04:00
jeffqjiangNew 3230cca447 rocDecode: Added decode buffer pool implementation for AVC and HEVC. (#355)
* * rocDecode: Initial check in for decode buffer pool.

* * rocDecode: All 135 streams pass.

* * rocDecode: Fixed a build error in debug mode.

* * rocDecode/HEVC: Removed two workaround in HEVC DPB management, after decode buffer pool implementa
tion.
 - WR 1: Conditional bumping (when max_num_reorder_pics > 0) to avoid synchronous job submission in
C.5.2.3.
 - WR 2: Add two more buffers in DPB to avoid buffer over-writing.

* * rocDecode/HEVC: Added display delay feature.

* * rocDecode/HEVC: Fixed the -z option issue within the context of the new decode buffer pool implementation.

* * rocDecode/HEVC: Removed redundent code.

* * rocDecode/AVC: Added decode buffer pool implementation for AVC.

* * rocDecode: Added a few changes.
 - Added display delay feature to AVC.
 - Removed a workaround for AVC: AVC_MAX_DPB_FRAMES was increased to 18. Now it is back to 16.
 - Removed a workaround for AVC: increased DPB buffer size by 2. Now it is back to normal.
 - Code format changes for HEVC.

* * rocDecode/AVC: Fixed the -z option issue within the context of the new decode buffer pool implementation.

* * rocDecode: Merged OutputDecodedPictures() method to upper class RocVideoParser.

* * rocDecode: Code cleanup. No functional changes.

* * rocDecode: Made decode buffer pool size adaptive.
 - Removed the hard coded decode buffer pool size set in the decoder.
 - Exposed the display delay parameter from RocVideoDecoder class to the user.
 - Now the decoder buffer pool size is determined from the DPB buffer size and display delay parameter.

* * rocDecode: Several changes based on code review.
 - Merged decode and display use status into one parameter.
 - Removed the surface index from DecodeFrameBuffer, which is now implicitly referred by the array index.
 - Changed a function name for better clarity.

* * rocDecode: Added a comment.

[ROCm/rocdecode commit: 61c8661b9c]
2024-05-31 13:14:02 -04:00
jeffqjiangNew 263f924405 * rocDecode/HEVC: Added error handling for the cases where there is no slice data in the decode payload. (#354)
[ROCm/rocdecode commit: 1ac4cf7f52]
2024-05-14 14:07:23 -04:00
jeffqjiangNew 4c64022b72 rocDecode: Added error handling of missing headers in cases where they are not parsed but referred in the frame decode process. One example is when frame seek is performed and the target picture is not a random access point. (#335)
* * rocDecode: Added error handling of missing headers in cases where they are not parsed but referred in the frame decode process. One example is when frame seek is performed and the target picture is not a random access point.

* * rocDecode/HEVC: Added some missing error handlings.

---------

Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>

[ROCm/rocdecode commit: ba36534f1f]
2024-05-03 15:18:08 -04:00
jeffqjiangNew 5faecc9c59 * rocDecode/AVC: Added field picture support in reference list modification and adaptive referecne picture marking. (#332)
- 4 more conformance streams now pass.

Co-authored-by: Aryan Salmanpour <aryan.salmanpour@amd.com>

[ROCm/rocdecode commit: 0f905f527c]
2024-05-02 08:46:47 -04:00