Skip to content
This repository has been archived by the owner on May 17, 2023. It is now read-only.

VP8 decode failure due to alignment issue #360

Closed
sreerenjb opened this issue Jun 29, 2018 · 9 comments
Closed

VP8 decode failure due to alignment issue #360

sreerenjb opened this issue Jun 29, 2018 · 9 comments
Assignees

Comments

@sreerenjb
Copy link

Take a video sample of size 36x36 .
set,
mfxFrameInfo.Width = 64; // 32 bit alingment
mfxFrameInfo.Width = 64; // 32 bit alingment
mfxFrameInfo.CropW = 36;
mfxFrameInfo.CropH = 36;

Then MFXVideoDECODE_DecodeFrameAsync() is failing with MFX_ERR_INVALID_VIDEO_PARAM error code. But if I use 16bit alignment (Width=48, Height=48),it works fine.
Other codecs like h264 and vp9 have no issue like this.

Is there any hard restriction in vp8 decoder such that "width must be aligned to immediate next 16 bit rounded value "??

@dmitryermilov
Copy link
Contributor

@lakulako , can you please take a look?

@lakulako
Copy link
Contributor

lakulako commented Oct 11, 2018

Need to check the spec.

@lakulako
Copy link
Contributor

@sreerenjb , there are no such restrictions. Thank you for catching. Could you please provide info how to reproduce the case. Where and when do you set size and crops?

@chivakker
Copy link

chivakker commented Mar 12, 2019

@lakulako you can use any 720p, 480p clip.

with gst-msdk you can do this:

gst-launch-1.0 filesrc location=sintel_vp8_720p_2.5Mbps_60fps.webm ! matroskademux ! msdkvp8dec ! msdkvpp ! glimagesink

or

gst-launch-1.0 filesrc location=sintel_vp8_720p_2.5Mbps_60fps.webm ! matroskademux ! msdkvp8dec ! glimagesink

This is with Intel MediaSDK stack last release and gstreamer 1.15.2

It seems it is easier to see on wayland, I'm using this compositor github.com/intel/ias, but also it happens on GNome-Shell.

@dmitryermilov
Copy link
Contributor

@chivakker , can you please provide a reproducer via sample_decode?

@chivakker
Copy link

@dmitryermilov I think we saw it also with sample_decode and a ivf stream. I'll share the command line later today.

@dmitryermilov
Copy link
Contributor

Thanks!

@Alexandr-Konovalov
Copy link
Contributor

In what related to msdkvpp, one is used for conversion from NV12 that is output of msdkvp8dec (and other plugins like msdkmjpegdec) to RGB4 that is expected as input by glimagesink. I.e., you can run

gst-launch-1.0 -v filesrc location=FOO.webm ! matroskademux ! msdkvp8dec ! filesink location=test.nv12

and get decoded NV12 stream in the file. Alternatively, negotiation may be done via

gstreamer-1.0 filesrc location=FOO.webm ! matroskademux ! msdkvp8dec ! 'video/x-raw,format=NV12' ! glimagesink

@Alexandr-Konovalov
Copy link
Contributor

@chivakker , hope we answered all you questions. Fill free to re-open the issue or file a new one.

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

No branches or pull requests

5 participants