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 <p.zabel@pengutronix.de>
This can be used to query codec mode controls,
such as decode mode and start code for h.264.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
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 <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
If the driver reports that it expects H.264 Annex B start codes,
provide them.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This requires modifications in gst-plugins-bad, libva, and
gstreamer-vaapi.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
This requires modifications in gst-plugins-bad, libva, and
gstreamer-vaapi.

Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
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 <p.zabel@pengutronix.de>
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