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

WebRTC: fix h264 FU-A only one package #4243

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

Conversation

chai51
Copy link

@chai51 chai51 commented Nov 25, 2024

Regarding issue #4139, the web can parse it normally. It also conforms to the RFC documentation standards.


TRANS_BY_GPT4

@suzp1984
Copy link
Contributor

suzp1984 commented Mar 6, 2025

A fragmented NAL unit MUST NOT be transmitted in one FU; that is, the
Start bit and End bit MUST NOT both be set to one in the same FU header.

This comments is come from the rfc6184#section-5.8, appeared in the middle of page 32.
Same comments also appears in the rfc3984#section-5.8, in the middle of page 30.

So, both rfc6184#section-5.8 and rfc3984#section-5.8 said the S and E bit indicators can not both to true in FU header, then I would like to question #4139 , is that true? This PR is based on and to resolve the #4139.

The top comments are reasonable, there are multi NAL unit types, check https://datatracker.ietf.org/doc/html/rfc6184#section-5.2, if S and E bits are both true, which means this NAL unit need not to be fragmented, the single NAL unit type or aggregation packet types are more suitable here.

Then Let's return to #4139 , Let assume it really happens in some RTC implementation, I would suggest provide more details Step to Step reproduction guides to reproduce this case.

@chai51
Copy link
Author

chai51 commented Mar 6, 2025

Thank you very much for your patient explanation. At that time, I didn't find any document indicating that the S and E flags cannot be 1 simultaneously. When I was implementing it, I found that h5 could unpack it normally, while srs would report an error and discard it. That's why I finally discovered this phenomenon. If the documents all describe it in this way, then indeed my implementation does not conform to the specification. Thank you again.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
TransByAI Translated by AI/GPT.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants