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

[Bug]: Skipping invalid undecodable NALU: 1 #530

Open
markg85 opened this issue Jan 31, 2025 · 1 comment
Open

[Bug]: Skipping invalid undecodable NALU: 1 #530

markg85 opened this issue Jan 31, 2025 · 1 comment
Labels

Comments

@markg85
Copy link

markg85 commented Jan 31, 2025

Describe the bug
Skipping invalid undecodable NALU: 1
No clue what it is just that it gives me errors.

To Reproduce
./ffmpeg
-f x11grab -framerate 60 -max_delay 0 -max_probe_packets 1 -thread_queue_size 1024 -video_size 2560x1440 -r 60 -i :0.0+0,0
-c:v hevc_amf
-log_to_dbg 1
-loglevel debug
-usage lowlatency
-rc vbr_peak
-minrate 2M
-maxrate 15M
-quality quality
-preset quality
-vbaq 0 -enforce_hrd 0 -aud 0 -latency 1 -filler_data 0
-profile:v main10
-profile_tier high
-b:v 8M
-pix_fmt bgr0
-f nut -muxdelay 0 udp://10.0.3.55:5555

Note that i supply -aud 0!

Setup (please complete the following information):

  • OS: ArchLinux
  • Driver Version 1.4.35 + latest header changes from this repo
  • GPU 7900 XT

Debug Log (please upload or paste):

[ffmpeg/video] hevc: PPS id out of range: 0
[ffmpeg/video] hevc: Skipping invalid undecodable NALU: 1
[ffmpeg/video] hevc: PPS id out of range: 0
[ffmpeg/video] hevc: Skipping invalid undecodable NALU: 1
[ffmpeg/video] hevc: PPS id out of range: 0
[ffmpeg/video] hevc: Skipping invalid undecodable NALU: 1
[ffmpeg/video] hevc: PPS id out of range: 0
[ffmpeg/video] hevc: Skipping invalid undecodable NALU: 1
[ffmpeg/video] hevc: PPS id out of range: 0
[ffmpeg/video] hevc: Skipping invalid undecodable NALU: 1
[ffmpeg/video] hevc: PPS id out of range: 0
[ffmpeg/video] hevc: Skipping invalid undecodable NALU: 1
[ffmpeg/video] hevc: PPS id out of range: 0
[ffmpeg/video] hevc: Skipping invalid undecodable NALU: 1
[ffmpeg/video] hevc: PPS id out of range: 0
[ffmpeg/video] hevc: Skipping invalid undecodable NALU: 1

Probably safe to ignore that PPS one, focus on the NAL one.

Expected behavior
Nothing appears to be breaking but the logging does show something being wrong. Probably nice to fix it?

Additional context
This PR from years ago in an entirely different project triggered me to report this here. I have no clue what AUD or NAL is, just that the two are apparently somehow related.

It looks like AMD puts an AUD value where a VPS value is expected.

This logging, while ffmpeg shows it too, comes from mpv.

I'm steering a bit blind in this issue, not knowing exactly what i'm reporting. Just letting you folks know about it :)
If there's something i can do to make debugging easier, feel free to ask.

@markg85 markg85 added the bug label Jan 31, 2025
@markg85
Copy link
Author

markg85 commented Jan 31, 2025

Perhaps PPS hints at a problem in the same header too.

Image

HEVC bitstream is an ordered sequence of the syntax elements. Each syntax element is placed into a logical packet called a NAL (network abstraction layer) Unit. There are 64 different NAL Unit types. They can be grouped into 10 classes:

VPS - Video parameter set
SPS - Sequence parameter set
PPS - Picture parameter set
Slice (different types)
AUD - Access unit delimiter
EOS - End of sequence
EOB - End of bitstream
FD - Filler data
SEI - Supplemental enhancement information
Reserved and unspecified
VPS, SPS and PPS contain general video parameters. They provide a robust mechanism for conveying data that are essential to the decoding process. They can be either a part of bitstream or can be stored separately.

Slice NAL unit contains data from encoded video frame. It can contain full frame or its part. Each slice can be decoded independently, that is, without using information from any other slice. Thereby, slices can be used as a tool to support parallel encoding/decoding.
There are following slice types:

I-slice - slice with only intra prediction
P-slice - slice with inter prediction from one I or P slices
B-slice - slice with inter prediction from two I or P slices
There is one special slice type called IDR-slice. There are no references from slices after IDR-slice to slices before it.

AUD can be used for signaling about start of video frame.

FD can be used for bitrate smoothing.

SEI provides support for different types of metadata. It includes picture timing, color space information, etc.

Source: https://www.codeproject.com/Tips/896030/The-Structure-of-HEVC-Video

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant