Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for the Multiview extension of H.265/HEVC #2864

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

matteovn
Copy link

@matteovn matteovn commented Jun 7, 2024

  • A fix for the parsing of the SPS is provided. This is because for NALUs associated with layers whose identifier is greater than 0 the spec requires the decoder to parse sps_ext_or_max_sub_layers_minus1 (see F.7.3.2.2.1). The value of this syntax element is then used to infer the value for sps_max_sub_layers_minus1 as specified in Clause F.7.4.3.2.1. The current design would led to have sps_max_sub_layers_minus1 equal to zero. This is fine for streams captured by devices such as Apple iPhones since the value for sps_ext_or_max_sub_layers_minus1 is set to 7 and the spec in this case mandates that sps_max_sub_layers_minus1 assumes the same value transmitted in the SPS. However, different encoders might be setting sps_ext_or_max_sub_layers_minus1 to a different value, thus also sps_max_sub_layers_minus1 will be different from the value parsed in the VPS. The fix proposed in av_parser.c::gf_hevc_read_sps_bs_internal addresses some discrepancy between the implementation and the spec.
  • Support is added to parse and embed in a .mov file the three dimension reference displays info SEI message from Clause G.14.2.3.3. Such a supplemental information is required to play Multiview content on devices such as the Apple Vision Pro. Having MP4box embedding such information would allow users to wrap Annex B HEVC streams into .mov containers.

- A fix for the parsing of the SPS is provided. This is because for
  NALUs associated with layers whose identifier is greater than 0 the
  spec requires the decoder to parse sps_ext_or_max_sub_layers_minus1
  (see F.7.3.2.2.1). The value of this syntax element is then used to
  infer the value for sps_max_sub_layers_minus1 as specified in Clause
  F.7.4.3.2.1. The current design would led to have
  sps_max_sub_layers_minus1 equal to zero. This is fine for streams
  captured by devices such as Apple iPhones since the value for
  sps_ext_or_max_sub_layers_minus1 is set to 7 and the spec in this case
  mandates that sps_max_sub_layers_minus1 assumes the same value
  transmitted in the SPS. However, different encoders might be setting
  sps_ext_or_max_sub_layers_minus1 to a different value, thus also
  sps_max_sub_layers_minus1 will be different from the value parsed in
  the VPS. The fix proposed in av_parser.c::gf_hevc_read_sps_bs_internal
  addresses some discrepancy between the implementation and the spec.
- Support is added to parse and embed in a .mov file the three
  dimension reference displays info SEI message from Clause G.14.2.3.3.
  Such a supplemental information is required to play Multiview content
  on devices such as the Apple Vision Pro. Having MP4box embedding such
  information would allow users to wrap Annex B HEVC streams into .mov
  containers.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant