media: Address some leftover comments from CL:3942434.

This CL addresses leftover work from [1]. Specifically:

- In v4l2_video_decoder_delegate_av1.cc::SetupFrameParams(), the block
  that fills out v4l2_frame_params.order_hints needs to be guarded by
  !libgav1::IsIntraFrame(frame_header->frame_type) instead of
  frame_header.frame_type != libgav1::kFrameKey. The reasons are that a)
  the OrderHints variable in the spec is only filled out for non-intra
  frames (not just for non-key frames); and b) if the frame is
  intra-only or key, frame_header.reference_frame_index may be
  uninitialized [2] so it's unsafe to use it.

- The static_assert that checks the size of the
  v4l2_frame_params.order_hints array is moved closer to the loop and is
  made to compare against libgav1::kNumInterReferenceFrameTypes + 1
  instead of libgav1::kNumReferenceFrameTypes to make it clearer that
  the static_assert is there to document/check that the indices accessed
  by the subsequent loop are safe to access (the loop uses
  libgav1::kNumInterReferenceFrameTypes).

We also make corresponding changes in the standalone
v4l2_stateless_decoder.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/3942434/comment/70e35d4c_e7698200/
[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/libgav1/src/src/utils/types.h;l=497-499;drc=c55bc9dd7f26ec3b1de0673caa1510bfa3094b3f

Bug: b:248602457
Test: tast run ${IP} video.*av1* on a cherry device
Change-Id: I41b56576f2dfe2c9e7dcf0affa9ae2dc43e544e2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4112326
Auto-Submit: Andres Calderon Jaramillo <andrescj@chromium.org>
Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org>
Commit-Queue: Steve Cho <stevecho@chromium.org>
Reviewed-by: Steve Cho <stevecho@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1084090}
2 files changed
tree: 285622d93f2e67fe2dd6d4321cba9280ee276b52
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. codelabs/
  13. components/
  14. content/
  15. courgette/
  16. crypto/
  17. dbus/
  18. device/
  19. docs/
  20. extensions/
  21. fuchsia_web/
  22. gin/
  23. google_apis/
  24. google_update/
  25. gpu/
  26. headless/
  27. infra/
  28. ios/
  29. ipc/
  30. media/
  31. mojo/
  32. native_client_sdk/
  33. net/
  34. pdf/
  35. ppapi/
  36. printing/
  37. remoting/
  38. rlz/
  39. sandbox/
  40. services/
  41. skia/
  42. sql/
  43. storage/
  44. styleguide/
  45. testing/
  46. third_party/
  47. tools/
  48. ui/
  49. url/
  50. weblayer/
  51. .clang-format
  52. .clang-tidy
  53. .eslintrc.js
  54. .git-blame-ignore-revs
  55. .gitattributes
  56. .gitignore
  57. .gn
  58. .mailmap
  59. .rustfmt.toml
  60. .vpython3
  61. .yapfignore
  62. ATL_OWNERS
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. DEPS
  68. DIR_METADATA
  69. LICENSE
  70. LICENSE.chromium_os
  71. OWNERS
  72. PRESUBMIT.py
  73. PRESUBMIT_test.py
  74. PRESUBMIT_test_mocks.py
  75. README.md
  76. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.

If you found a bug, please file it at https://crbug.com/new.