-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[omx][Regression] Fw versions after 911147a3276beee fail to encode h264 when input buffers are configured before port is enabled #1051
Comments
Ping @6by9 |
Will investigate. |
For info, rpi-update hashes:
|
Thanks for listing those. I can confirm that the same gst-omx tip of tree version works for encoding h264 with |
OK, as expected it's the stride and sliceheight parameters.
which the component is sanity checking and rejecting. The old code always ignored the user supplied nSliceHeight and set it as nFrameHeight aligned up to 16., and set the pitch to the required value if nStride was less than the minimum required. |
2ndstage: Increase eth_open timeout to 5 seconds See: #1041 firmware: video_encode: Use default values on invalid nStride or nSliceHeight See: #1051 firmware: gpioman/FXL6408: Handle open failing sensibly See: #1053 firmware: Delay backlight coming on See: #1052 firmware: LCD driver close fixes 2ndstage: ignore autoboot.txt if boot partition is already set See: raspberrypi/noobs#508
2ndstage: Increase eth_open timeout to 5 seconds See: raspberrypi/firmware#1041 firmware: video_encode: Use default values on invalid nStride or nSliceHeight See: raspberrypi/firmware#1051 firmware: gpioman/FXL6408: Handle open failing sensibly See: raspberrypi/firmware#1053 firmware: Delay backlight coming on See: raspberrypi/firmware#1052 firmware: LCD driver close fixes 2ndstage: ignore autoboot.txt if boot partition is already set See: raspberrypi/noobs#508
Fix should be in latest rpi-update firmware. |
@6by9 thanks for investigating this. We will also check the provided stride on our side as we where expecting to pass a valid default stride (not half the width at least). We even have code to align from port definition requirement. For Tizonia and Xilinx stack, we have a partial OMX 1.2 draft dynamic buffer implemented for buffer management, so code path is totally different. |
No problems @ndufresne. Sorry the issue crept in. It's yet another of those awkward things in IL that the spec says that nStride gets validated on state change, so then you get yet another random reason for a state change failure with no obvious reason. I think I tripped over the same thing when trying something else. IIRC there are two places in the code that called SetParameter for the PortDefinition. One updated nStride and nSliceHeight to sensible values before setting ( We are almost at the position of merging a V4L2 M2M driver for video encode and decode so that may reduce the requirement for gst-omx. It's working fairly nicely with the GStreamer components, and supports optimisations such as dmabufs for zero copy. |
That's is a really good news! |
I can confirm that the original issue is fixed and running a basic pipeline with |
This fixes raspberrypi/firmware#1051 Signed-off-by: Pepijn de Vos <pepijndevos@gmail.com>
This fixes raspberrypi/firmware#1051 Signed-off-by: Pepijn de Vos <pepijndevos@gmail.com>
This fixes raspberrypi/firmware#1051 Signed-off-by: Pepijn de Vos <pepijndevos@gmail.com>
This fixes raspberrypi/firmware#1051 Signed-off-by: Pepijn de Vos <pepijndevos@gmail.com>
This fixes raspberrypi/firmware#1051 Signed-off-by: Pepijn de Vos <pepijndevos@gmail.com>
This fixes raspberrypi/firmware#1051 Signed-off-by: Pepijn de Vos <pepijndevos@gmail.com>
The discussion in gst-omx bug 785967 shows that in firmware versions at least after 911147a3276beee gst-omx fails when input buffers are configured before the OMX encoder port is enabled.
This used to work in older firmware versions, unfortunately, we do not have an exact firmware hash for which it worked.
CC @thiblahute
The text was updated successfully, but these errors were encountered: