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

Failure decoding corrupted h266 file with missing reference pictures #226

Open
cfoch opened this issue Jan 8, 2025 · 1 comment
Open
Labels
library Concerns the VVdeC library question Further information is requested

Comments

@cfoch
Copy link
Contributor

cfoch commented Jan 8, 2025

Dear Researchers at Fraunhofer,

The current implementation of WebRTC in GStreamer uses an appsrc with leaky-type=downstream. This means that when buffers arrive to the client, some buffers may have been dropped, as it is the case of the .h266 file we attach. Using vvdecapp, we see a lot of logs like DecLibParser.cpp:1309: missing reference picture poc: 207 and exit code is (245) non-zero (full logs attached). When decoding this same file with FFmpeg or FFmpeg + OpenVVC while the video decodes and renders (about 23 seconds of video). In FFmpeg + OpenVVC, the following logs like [Open VVC decoder @ 0x7d05033ff760] Generating missing reference -89 for picture -73 are printed. So, that makes us to suspect, but it may be something else, that Fraunhofer's vvdec is not implementing the following specification in "ITU-T Rec. H266": 8.3.4.1 General decoding process for generating unavailable reference pictures.

Based on the information shared, we request here to update vvdec in order to play back that attached H.266 video. Please, feel free to request any information from us (Fluendo).

files.zip

Kind regards,
Fluendo (Engineering Team)

@adamjw24
Copy link
Member

adamjw24 commented Jan 8, 2025

Did you try with vvdecapp -eh 1 ... ? Seems to work for me, don't know if this resolves the issues properly and up to your satisfaction, though.

In GStreamer you should set vvdecParams::errHandlingFlags to VVDEC_ERR_HANDLING_TRY_CONTINUE on initalization.

We are a bit afraid of continuing on broken streams because it exposes vvdec to all kinds of attacks. I guess at some we have to make it default.

Keep us posted.

@adamjw24 adamjw24 added question Further information is requested library Concerns the VVdeC library labels Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
library Concerns the VVdeC library question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants