-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Openmax AVC Override encode capabilities not supported or not implemented #819
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
Comments
Do you have a simple test app that you can share to illustrate this? Saves us wasting time creating our own test case to investigate this? |
Same issue with MMAL :
Invoke raspivid with Level parameter
You should see something like
Important note using vcdbg shows that custom_max_br_and_cpb is the bad parameter. |
Checking the firmware code, it validates the provided parameters and is checking:
Spot the obvious error in 3, and the nice rounding error in 1 (and then inherently in 2). NB I'll get views from others here, but as it stands max |
Thx for this correction. My prior goal was to reduce MaxBitrate to reduce Codec Picture Buffer. By reducing it (below 2M) doesn't seem to affect CPB and IDR Picture is always around 4 times the average bitrate. I can see Buffer occupancy with debug, but not a chance for now to reduce it.
Bitrate on P picture is constant and excellent, but as soon as there is an I picture there is a high peak. Is there a way to reduce CPB buffer or Window time size for buffer occupancy algorithm ? |
Reading the header of H264 produced, I see :
Some parameters are settable with OpenMax/MMAL :
Thanks by advance @6by9 if you can complete missing and question . |
I'm guessing you're looking at the SEI metadata string as those don't appear to be direct H264 header parameters but values passed in to our encoder (particularly the immutable flag).
Not that I can see exposed quickly out via IL or MMAL. There is a codec API property for VIDEO_ENCODER_IFRAME_QP_WEIGHT which may do what you need - "The weight factor used to reduce QP for I-frames (compared with the previous GOP average)". Leave this open and I'll try to find 15mins to plumb it through. No guarantees it does anything actually useful, although it is used in a function called |
Thx for all this information and details. Love to play with codec API, but let you try what you can do with (Closed firmware..until) . CBR is an interesting request for low delay/transmitting in a constant bitrate channel. Having all H264 parameters to play could be very helpfull. |
kernel: dwc_otg: make periodic scheduling behave properly for FS buses See: raspberrypi/linux#2038 kernel: dwc_otg: fiq_fsm: Make isochronous compatibility checks work properly See: raspberrypi/linux#2049 kernel: Add support for Allo Digione Driver See: raspberrypi/linux#2048 kernel: config: Adding SENSOR_JC42 See: raspberrypi/linux#2046 kernel: BCM270X_DT: Improve i2c-sensor and i2c-rtc overlay kernel: overlays: Fix i2c-rtc order and fragment numbering See: raspberrypi/linux#2059 kernel: BCM270X_DT: Add midi-uart1 overlay See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=183860 firmware: dtoverlay: Short-circuit empty parameter handling See: raspberrypi/linux#2028 firmware: rtos: Protect against null timer callback See: http://forum.kodi.tv/showthread.php?tid=280408 firmware: arm_dt: Add txp node to device tree parsing to mask off transposer interrupt firmware: venc: Correct the validation on custom mb/mbps/br settings See: #819
kernel: dwc_otg: make periodic scheduling behave properly for FS buses See: raspberrypi/linux#2038 kernel: dwc_otg: fiq_fsm: Make isochronous compatibility checks work properly See: raspberrypi/linux#2049 kernel: Add support for Allo Digione Driver See: raspberrypi/linux#2048 kernel: config: Adding SENSOR_JC42 See: raspberrypi/linux#2046 kernel: BCM270X_DT: Improve i2c-sensor and i2c-rtc overlay kernel: overlays: Fix i2c-rtc order and fragment numbering See: raspberrypi/linux#2059 kernel: BCM270X_DT: Add midi-uart1 overlay See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=183860 firmware: dtoverlay: Short-circuit empty parameter handling See: raspberrypi/linux#2028 firmware: rtos: Protect against null timer callback See: http://forum.kodi.tv/showthread.php?tid=280408 firmware: arm_dt: Add txp node to device tree parsing to mask off transposer interrupt firmware: venc: Correct the validation on custom mb/mbps/br settings See: raspberrypi/firmware#819
See: raspberrypi/linux#2066 kernel: dwc_otg: add module parameter int_ep_interval_min See: raspberrypi/linux#2067 firmware: venc: Correct the validation on custom mb/mbps/br settings See: #819 firmware: vc_image: Remove structure definition duplication firmware: vc_image/mmal/il/isp: Add support for 16bit/component YUV420 and YUVUV firmware: vcdbg: Don't use dma when file provided firmware: rtos: Avoid sleeping delay when RTOS is not present firmware: bootcode: Remove reliance on scanf to reduce bootcode.bin size firmware: bootcode: Changes to force to full speed firmware: bootcode: Make sure bootcode drops out firmware: bootcode: Mass storage changes to power off/on USB block firmware: bootcode: Change USB 1.1 to have 64 byte endpoints firmware: bootcode: Set MSD serial number to be the Pi serial number
See: raspberrypi/linux#2066 kernel: dwc_otg: add module parameter int_ep_interval_min See: raspberrypi/linux#2067 firmware: venc: Correct the validation on custom mb/mbps/br settings See: raspberrypi/firmware#819 firmware: vc_image: Remove structure definition duplication firmware: vc_image/mmal/il/isp: Add support for 16bit/component YUV420 and YUVUV firmware: vcdbg: Don't use dma when file provided firmware: rtos: Avoid sleeping delay when RTOS is not present firmware: bootcode: Remove reliance on scanf to reduce bootcode.bin size firmware: bootcode: Changes to force to full speed firmware: bootcode: Make sure bootcode drops out firmware: bootcode: Mass storage changes to power off/on USB block firmware: bootcode: Change USB 1.1 to have 64 byte endpoints firmware: bootcode: Set MSD serial number to be the Pi serial number
This is in latest rpi-update firmware. |
Thx. Confirm that don't hang up as before. Not tested if it modifies behavior of CPB buffer, but could be closed. |
Setting a OMX_IndexConfigEncLevelExtension with H264 profile / Level parameters hang out.
For example , trying to put Levl 4.2 High Profile :
Parameter<OMX_VIDEO_CONFIG_LEVEL_EXTEND> ProfileExtended;
ProfileExtended->nPortIndex=OPORT;
ProfileExtended->nCustomMaxMBPS=522240; //4.2
ProfileExtended->nCustomMaxFS=8704;
ProfileExtended->nCustomMaxBRandCPB=62500;
Setting this return no error , but hang as soon as we inquire OMX_FillThisBuffer.
: 0x80001018 OMX_ErrorIncorrectStateOperation
The text was updated successfully, but these errors were encountered: