-
Notifications
You must be signed in to change notification settings - Fork 346
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
AVC LP Multi-Slice Encode corrupted #389
Comments
@uartie Could you please clarify it. GST is OK and FFMPEG fails? Or both fails. And what platform do you use? KBL or SKL? |
It fails with both FFMPEG and GST (i.e. all commands above under "Reproduce Steps"). I am using KBL locally, but our CI shows same issue exists on KBL, CFL and WHL. |
I have not tested it on SKL since the intel-media-driver docs don't include AVC E2 (LP) support. |
@uartie Thanks for your clarifying. I will check it. |
@wangyan42164 @uartie SKL failed too |
@uartie @mypopydev I am debugging #361. It will cause GPU hang when encoding the first frame. I am not sure whether this issue is similar with it. I will check it. |
@wangyan42164 please help to check the slice structure , for Low power mode, iHD just support equal_rows slice structure. |
@XinfengZhang @uartie @mypopydev |
How is the middle-ware aware of the driver's limitation? Your patch (https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/merge_requests/15) doesn't make sense to me |
it makes sense first_mb_in_slice is 0 for the first slice, but for other slices, first_mb_in_slice shouldn't be 0. |
@xhaihao @XinfengZhang Could we add one query API into libva for super slice usage? We may need more discussion. |
Is there an easy, temporary fix/wa at the driver level that we can apply without needing new VA API? |
any update? |
This seems to be fixed in gst-msdk and ffmpeg-qsv, but gst-vaapi and ffmpeg-vaapi still has this issue. I'm not sure when or what fixed this in gst-msdk/ffmpeg-qsv. My current stack is:
Can someone confirm and/or point to commit that fixed it in above 2 cases? |
@dvrogozh are you aware of any specific fix/commit in the msdk component that would have fixed/workaround this issue in gst-msdk and ffmpeg-qsv (see my last comment). |
how about driver handle it, such as decode the slice parameter from the packed header then pack it again inside driver? |
@XinfengZhang Yes. I also think so. I am working on this. |
AVC VDENC when multi-slice encoding need force first_mb_in_slice to 0. Fixes intel#389. Signed-off-by: Yan Wang <[email protected]>
@uartie I have submitted #697 to fix it on media driver side. Now ffmpeg/gst-vaapi can work fine for the case. BTW, I find that MSDK also set first_mb_in_slice to 0 in his implementation. So ffmpeg/gst use MSDK has not this issue. Now I tried your decoding command to decode the output H264 stream. It displays rightly. Currently AVC VDENC will adjust slice layout dynamically if ffmpeg/gst-vaapi set multi-slice but cannot meted. Yan Wang |
@wangyan42164 I can update vaapi-fits once your patch is merged. |
some avc cbr vdenc still failed on my ICL: message: |
AVC VDENC when multi-slice encoding need force first_mb_in_slice to 0. Fixes #389. Signed-off-by: Yan Wang <[email protected]>
AVC VDENC when multi-slice encoding need force first_mb_in_slice to 0. Fixes intel#389. Signed-off-by: Yan Wang <[email protected]>
AVC VDENC when multi-slice encoding need force first_mb_in_slice to 0. Fixes #389. Signed-off-by: Yan Wang <[email protected]>
Encoding h264 low-power with multi-slice produces corrupted output.
Reproduce Steps:
In gst-msdk:
In gst-vaapi:
In ffmpeg-vaapi:
Playback test.h264:
See more details in https://trac.ffmpeg.org/ticket/7523
Software Stack:
The text was updated successfully, but these errors were encountered: