Repository navigation
feat(analyzer): full H.265 slice segment header details - #60
Merged
Merged
Conversation
Parse the remaining HEVC slice header fields guarded by SPS/PPS flags: output/colour plane, short-term RPS reference or inline set, long-term references, temporal MVP and collocated picture, SAO flags, reference index overrides, mvd_l1_zero, cabac_init, merge candidates, QP and chroma offsets, deblocking overrides, loop-filter-across-slices and entry points. The details panel reports the header/data split (header_bits from RbspBitReader) and dumps the slice data bytes after the header. Keyframe NAL types now go through the same slice detail path. Fixes #59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #59: the NAL details panel now shows the full H.265 slice segment header instead of the basic summary added in #58.
Parsed fields
pic_output_flag,colour_plane_idshort_term_ref_pic_set_sps_flag+ index, or the inline RPS (reusesparseShortTermRefPicSet)num_long_term_sps/pics, lt index / POC LSB / MSB cycle)slice_temporal_mvp_enabled_flag,collocated_from_l0_flag,collocated_ref_idxmvd_l1_zero_flag,cabac_init_flag,five_minus_max_num_merge_candslice_qp_delta, chroma QP offsetsnum_entry_point_offsets+ offsets, header extensionRbspBitReader::BitsRead(), hex dump from the slice data startKeyframe NAL types (19/20/21) previously bypassed the details switch and now use the same slice path.
Also fixes three HEVC parsing details: long-term MSB condition, weighted-prediction flag order (all luma flags before chroma), and deblocking override semantics.
Verification
ctest: 68/68 pass (newH265ParamsTest.BuildsSliceDetailsText)../test/tools/tidy.sh core/h265types.cpp core/h265types.h core/nalanalyzer.cpp core/expgolomb.cpp test/test_h265_params.cpp: 0 issues.Fixes #59