Skip to content

Conversation

pH5
Copy link

@pH5 pH5 commented Sep 19, 2019

This should allow to decode H.264 videos on Hantro G1 with the currently merged (experimental) kernel interface for V4L2 stateless H.264 decoders.

WIP because this depends on #25 and intel/libva#332. The kernel interface is not yet stable, and the scaling matrix interface still has a big FIXME.

@pH5
Copy link
Author

pH5 commented Sep 19, 2019

@ndufresne
Copy link

In case that is interesting for you, here's two left over from my previous work:

https://github.com/ndufresne/libva-v4l2-request/commits/rockchip-support

It fixes the mplane detection, and improves performance for DeriveImage calls. DMABuf exportation was not working for me in GStreamer, I concluded best was to port GStreamer to the new surface export API instead of relying on a derived image.

@ndufresne
Copy link

I tried this against linux-media master tree today and it didn't work. The driver still tries to set the format in arbitrary order which cause an EBUSY, a restriction that exist on Hantro driver but not Cedrus. How did you manage to get this to work on Hantro driver ?

pH5 added 15 commits January 23, 2020 16:45
This can be used to reduce number of issued ioctls,
by setting multiple controls at once.

Signed-off-by: Philipp Zabel <[email protected]>
This can be used to query codec mode controls,
such as decode mode and start code for h.264.

Signed-off-by: Philipp Zabel <[email protected]>
Update to the merged stateless h.264 kernel interface, as of commit
c3adb85745ca ("media: uapi: h264: Get rid of the p0/b0/b1 ref-lists").

Signed-off-by: Philipp Zabel <[email protected]>
If the driver reports that it expects H.264 Annex B start codes,
provide them.

Signed-off-by: Philipp Zabel <[email protected]>
Signed-off-by: Philipp Zabel <[email protected]>
Signed-off-by: Philipp Zabel <[email protected]>
This requires modifications in gst-plugins-bad, libva, and
gstreamer-vaapi.

Signed-off-by: Philipp Zabel <[email protected]>
This requires modifications in gst-plugins-bad, libva, and
gstreamer-vaapi.

Signed-off-by: Philipp Zabel <[email protected]>
At this point it is unclear whether to store the Inter Y scaling matrix
at index 1 (h.264 standard) or 3 [1]. Store it at both indices for now.

[1] https://lore.kernel.org/linux-media/HE1PR06MB40118B3C30939861DD91113CACBE0@HE1PR06MB4011.eurprd06.prod.outlook.com/T/#m60af013132990335d525e6e5600c5f5bd692cfbf

Signed-off-by: Philipp Zabel <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants