Skip to content
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

Omxplayer hangs on RPi 4 #749

Closed
jordiblanchcarles opened this issue Oct 27, 2019 · 17 comments
Closed

Omxplayer hangs on RPi 4 #749

jordiblanchcarles opened this issue Oct 27, 2019 · 17 comments

Comments

@jordiblanchcarles
Copy link

I've been trying to play a list of files one after each other using omxplayer with the new RPi 4, but I've found that after 1 hour or 2 hours of playing the files continously omxplayer hangs and it is not possible to run it again because it does nothing. I've tried with 2 of the latest Raspbian Buster images I have (2019-09-26, 2019-07-10) both with and without updating to the lastest packages versions, and also both with Legacy and Fake KMS desktop driver, and omxplayer is always hanging after 1 or 2 hours of repeatedly playing 1 or several videos.

I've also tried the same with a RPi 3B+ and omxplayer seems to play correctly for at least much longer (3 or 4 days continously right now...) than with the RPi 4, so it looks like the problem is only with RPi 4.

When omxplayer hangs, all I get using the -g option is a log file with this output:

19:13:36 T:18446744073481586412   DEBUG: DllBcm: Using omx system library
19:13:36 T:18446744073481587492   DEBUG: DllOMX: Using omx system library
19:13:36 T:18446744073481588100   DEBUG: DllAvFormat: Using libavformat system library
19:13:36 T:18446744073481589439   DEBUG: DBus connection succeeded
19:13:36 T:18446744073481590184   DEBUG: Keyboard: DBus connection succeeded
19:13:36 T:18446744073481590344   DEBUG: OMXThread::Create - Thread with id -1387290944 started
19:13:36 T:18446744073481590446   DEBUG: DllAvUtilBase: Using libavutil system library
19:13:36 T:18446744073481590467   DEBUG: DllAvCodec: Using libavcodec system library
19:13:36 T:18446744073481590482   DEBUG: DllAvFormat: Using libavformat system library
19:13:37 T:18446744073481870283   DEBUG: COMXCoreComponent::Initialize OMX.broadcom.clock input port 80 output port 81 m_handle 0x16515d0
19:13:37 T:18446744073481870515   DEBUG: OMXClock::OMXStop
19:13:37 T:18446744073481870607   DEBUG: OMXClock::OMXSetSpeed(0.00) pause_resume:1
19:13:37 T:18446744073481870769   DEBUG: DllAvUtilBase: Using libavutil system library
19:13:37 T:18446744073481870790   DEBUG: DllAvCodec: Using libavcodec system library
19:13:37 T:18446744073481870806   DEBUG: DllAvFormat: Using libavformat system library
19:13:37 T:18446744073481871903   DEBUG: COMXCoreComponent::Initialize OMX.broadcom.video_decode input port 130 output port 131 m_handle 0x16514e0
19:13:37 T:18446744073481872600   DEBUG: COMXCoreComponent::AllocInputBuffers component(OMX.broadcom.video_decode) - port(130), nBufferCountMin(1), nBufferCountActual(60), nBufferSize(81920), nBufferAlignmen(16)

Also, I can see in dmesg there are some repeating messages every 120 seconds:

[10811.525813] INFO: task kworker/1:0:13008 blocked for more than 120 seconds.
[10811.525821]       Tainted: G         C        4.19.75-v7l+ #1270
[10811.525825] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[10811.525830] kworker/1:0     D    0 13008      2 0x00000000
[10811.525851] Workqueue: events dbs_work_handler
[10811.525869] [<c0997424>] (__schedule) from [<c0997a94>] (schedule+0x50/0xa8)
[10811.525877] [<c0997a94>] (schedule) from [<c0997ef0>] (schedule_preempt_disabled+0x18/0x1c)
[10811.525886] [<c0997ef0>] (schedule_preempt_disabled) from [<c0998fa0>] (__mutex_lock.constprop.5+0x1a8/0x590)
[10811.525894] [<c0998fa0>] (__mutex_lock.constprop.5) from [<c09994a4>] (__mutex_lock_slowpath+0x1c/0x20)
[10811.525902] [<c09994a4>] (__mutex_lock_slowpath) from [<c0999504>] (mutex_lock+0x5c/0x60)
[10811.525910] [<c0999504>] (mutex_lock) from [<c08109d0>] (rpi_firmware_transaction+0x54/0xd0)
[10811.525919] [<c08109d0>] (rpi_firmware_transaction) from [<c0810b8c>] (rpi_firmware_property_list+0x140/0x2b0)
[10811.525926] [<c0810b8c>] (rpi_firmware_property_list) from [<c0810d78>] (rpi_firmware_property+0x7c/0xfc)
[10811.525934] [<c0810d78>] (rpi_firmware_property) from [<c07e7e74>] (bcm2835_cpufreq_clock_property.constprop.1+0x58/0x80)
[10811.525943] [<c07e7e74>] (bcm2835_cpufreq_clock_property.constprop.1) from [<c07e7ef8>] (bcm2835_cpufreq_driver_target_index+0x5c/0xe4)
[10811.525951] [<c07e7ef8>] (bcm2835_cpufreq_driver_target_index) from [<c07e2b54>] (__cpufreq_driver_target+0x2d8/0x5a8)
[10811.525958] [<c07e2b54>] (__cpufreq_driver_target) from [<c07e65a0>] (od_dbs_update+0xec/0x174)
[10811.525966] [<c07e65a0>] (od_dbs_update) from [<c07e71bc>] (dbs_work_handler+0x3c/0x68)
[10811.525975] [<c07e71bc>] (dbs_work_handler) from [<c023db40>] (process_one_work+0x170/0x458)
[10811.525984] [<c023db40>] (process_one_work) from [<c023de84>] (worker_thread+0x5c/0x5a4)
[10811.525990] [<c023de84>] (worker_thread) from [<c0244170>] (kthread+0x138/0x168)
[10811.525997] [<c0244170>] (kthread) from [<c02010ac>] (ret_from_fork+0x14/0x28)
[10811.526002] Exception stack(0xd4e1ffb0 to 0xd4e1fff8)
[10811.526007] ffa0:                                     00000000 00000000 00000000 00000000
[10811.526012] ffc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[10811.526017] ffe0: 00000000 00000000 00000000 00000000 00000013 00000000
[10811.526023] INFO: task kworker/1:1:14776 blocked for more than 120 seconds.
[10811.526027]       Tainted: G         C        4.19.75-v7l+ #1270
[10811.526031] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[10811.526035] kworker/1:1     D    0 14776      2 0x00000000
[10811.526053] Workqueue: events get_values_poll [raspberrypi_hwmon]
[10811.526065] [<c0997424>] (__schedule) from [<c0997a94>] (schedule+0x50/0xa8)
[10811.526072] [<c0997a94>] (schedule) from [<c099ba7c>] (schedule_timeout+0x200/0x428)
[10811.526080] [<c099ba7c>] (schedule_timeout) from [<c0998704>] (wait_for_common+0xd4/0x1b0)
[10811.526088] [<c0998704>] (wait_for_common) from [<c0998800>] (wait_for_completion+0x20/0x24)
[10811.526095] [<c0998800>] (wait_for_completion) from [<c08109f4>] (rpi_firmware_transaction+0x78/0xd0)
[10811.526102] [<c08109f4>] (rpi_firmware_transaction) from [<c0810b8c>] (rpi_firmware_property_list+0x140/0x2b0)
[10811.526109] [<c0810b8c>] (rpi_firmware_property_list) from [<c0810d78>] (rpi_firmware_property+0x7c/0xfc)
[10811.526117] [<c0810d78>] (rpi_firmware_property) from [<bf2aa0c0>] (get_values_poll+0x4c/0x15c [raspberrypi_hwmon])
[10811.526134] [<bf2aa0c0>] (get_values_poll [raspberrypi_hwmon]) from [<c023db40>] (process_one_work+0x170/0x458)
[10811.526141] [<c023db40>] (process_one_work) from [<c023de84>] (worker_thread+0x5c/0x5a4)
[10811.526147] [<c023de84>] (worker_thread) from [<c0244170>] (kthread+0x138/0x168)
[10811.526153] [<c0244170>] (kthread) from [<c02010ac>] (ret_from_fork+0x14/0x28)
[10811.526158] Exception stack(0xd1e59fb0 to 0xd1e59ff8)
[10811.526162] 9fa0:                                     00000000 00000000 00000000 00000000
[10811.526167] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[10811.526172] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000

Testing the issue is "as easy as" running this command:

while omxplayer -g video.mp4; do :; done

where video.mp4 is the testing video. After some time omxplayer hangs. Killing the omxplayer.bin process results in a defunct process, and trying to run any other omxplayer instance results in another hanged player that doesn't play any video. Rebooting is the only solution to make everything work again.

I've tried with a 256M and 128M video memory split, but nothing seems to improve the behaviour.

Does anybody have any clue on which could be the problem and how to solve it?

Thank you!

@popcornmix
Copy link
Owner

Does it matter what video.mp4 is? Does it fail more quickly if the video is very short (so starts/stops more often).
The dmesg log shows kernel hanging when requesting an arm frequency (cpufreq driver) change.
Not clear if that is the cause or a side effect of the issue.
Try disabling cpufreq driver. You can force it to always be low frequency with:

echo powersave | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

or to force always high frequency with:

echo performance | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Do either of those affect the reliability? (entered before running your while script).

@jordiblanchcarles
Copy link
Author

Hello, sorry for my delay answering, but I've been testing your suggestion of forcing the governor. The result has been that omxplayer test has lasted longer (about 10 hours with performance governor), but it has finally hanged for both governors (performance and powersave) the same way as with all my other tests...

I've tested with several videos, all of them of about 10 seconds length (for example this one) and omxplayer is always hanging.

Now I've started a new test with a longer video and I'll reply again if it also fails.

Do you have any other clue on what else to test? Is there any other way to get more information on where is omxplayer hanging?

Thank you!

@popcornmix
Copy link
Owner

popcornmix commented Oct 30, 2019

I think I have found the issue. Can you test updated firmware:
https://drive.google.com/uc?id=1KDPcrIUhlv7peINnl0sJ_MS3ZgXlL1zb&export=download

and let me know if it helps?

@jordiblanchcarles
Copy link
Author

Hello, started testing again right now with one of the "problematic" 10 seconds videos after updating the firmware files you attached. I'll give you feedback tomorrow.

For your information, using the 30 seconds video I've not been able to detect any problem, and the repeating script has been working without hanging for 24 hours (until I stopped it to test again with new firmware). I don't know if this makes sense to you (that the problem has only arised starting and stopping short videos repeatedly).

Thank you for your effort! I'll reply tomorrow with my results.

Best regards!

@popcornmix
Copy link
Owner

The video you linked was hevc (according to filename), so not supported by omxplayer.
The bug occurred at start/stop of video, so was more likely to be caught by a short repeating video.

After catching the issue I was able to make the conflicting thread in firmware trigger 100x more frequently, which meant I would see a hang after minutes rather than hours. With the fix in place it has survived overnight on a couple of boards, so I believe the fix is good.

popcornmix added a commit to raspberrypi/firmware that referenced this issue Nov 1, 2019
kernel: rpi-poe-fan: fix def_pwm1 writes
See: raspberrypi/linux#3315

firmware: Update display_power gencmd with optional display id

firmware: sysman: Fix unsafe check for h264 being enabled
See: popcornmix/omxplayer#749

firmware: platform: Reduce absolute microvolts threshold to 500000
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Nov 1, 2019
kernel: rpi-poe-fan: fix def_pwm1 writes
See: raspberrypi/linux#3315

firmware: Update display_power gencmd with optional display id

firmware: sysman: Fix unsafe check for h264 being enabled
See: popcornmix/omxplayer#749

firmware: platform: Reduce absolute microvolts threshold to 500000
@jordiblanchcarles
Copy link
Author

Hello, yesterday I couldn't reply, but my last test has now been running for 2 days without problem, so I'll close this issue because it seems to be solved. Thank you very much for your effort!!

PD: Yes, the video file name shows "hvec", but it is a H264 video, so it played well with omxplayer.

@popcornmix
Copy link
Owner

Cool. The fix in the test firmware is now available in rpi-update firmware (and will be in the next stable apt firmware)

@colloqi
Copy link

colloqi commented Nov 5, 2019

👍

@jordiblanchcarles
Copy link
Author

Hello again, I'm sorry, but I'm afraid the problem is not totally solved.

This time I've been trying to play several videos one after the other repeatedly and omxplayer is hanging after some time, it looks like the problem is similar to the first one that you solved in this issue.

Once again, these are short (10 seconds) FullHD H264 videos, and after some time playing repeatedly (one after the other) then omxplayer seems to hang.

To reveal the issue, I run an endless loop script with 2 videos:

while true; do
	omxplayer -g video1.mp4
	omxplayer -g video2.mp4
done

I've tried both: manually updating the .dat and .elf files you supplied in this issue, and using rpi-udate to update the firmware, and in both cases after some time omxplayer is "hanging".

When omxplayer is called with -g parameter, then I can see that the log file is constantly growing when the omxplayer has already "hanged" with lines like this ones:

16:42:51 T:1530609455   DEBUG: Normal M:2576927146 (A:10154667 V:10080000) P:0 A:-2566.77 V:-2566.85/T:0.20 (1,1,0,0) A:0% V:0% (-2567.01,6.07)
16:42:51 T:1530629743   DEBUG: Normal M:2576947435 (A:10154667 V:10080000) P:0 A:-2566.79 V:-2566.87/T:0.20 (1,1,0,0) A:0% V:0% (-2567.03,6.07)
16:42:51 T:1530650032   DEBUG: Normal M:2576967723 (A:10154667 V:10080000) P:0 A:-2566.81 V:-2566.89/T:0.20 (1,1,0,0) A:0% V:0% (-2567.05,6.07)
16:42:51 T:1530670607   DEBUG: Normal M:2576988015 (A:10154667 V:10080000) P:0 A:-2566.83 V:-2566.91/T:0.20 (1,1,0,0) A:0% V:0% (-2567.07,6.07)
16:42:52 T:1530690965   DEBUG: Normal M:2577008653 (A:10154667 V:10080000) P:0 A:-2566.85 V:-2566.93/T:0.20 (1,1,0,0) A:0% V:0% (-2567.09,6.07)
16:42:52 T:1530711265   DEBUG: Normal M:2577028953 (A:10154667 V:10080000) P:0 A:-2566.87 V:-2566.95/T:0.20 (1,1,0,0) A:0% V:0% (-2567.11,6.07)
16:42:52 T:1530731560   DEBUG: Normal M:2577049247 (A:10154667 V:10080000) P:0 A:-2566.89 V:-2566.97/T:0.20 (1,1,0,0) A:0% V:0% (-2567.13,6.07)
16:42:52 T:1530751853   DEBUG: Normal M:2577069540 (A:10154667 V:10080000) P:0 A:-2566.91 V:-2566.99/T:0.20 (1,1,0,0) A:0% V:0% (-2567.15,6.07)
16:42:52 T:1530772427   DEBUG: Normal M:2577089836 (A:10154667 V:10080000) P:0 A:-2566.94 V:-2567.01/T:0.20 (1,1,0,0) A:0% V:0% (-2567.17,6.07)
16:42:52 T:1530792727   DEBUG: Normal M:2577110415 (A:10154667 V:10080000) P:0 A:-2566.96 V:-2567.03/T:0.20 (1,1,0,0) A:0% V:0% (-2567.19,6.07)
16:42:52 T:1530813029   DEBUG: Normal M:2577130718 (A:10154667 V:10080000) P:0 A:-2566.98 V:-2567.05/T:0.20 (1,1,0,0) A:0% V:0% (-2567.21,6.07)
16:42:52 T:1530833318   DEBUG: Normal M:2577151007 (A:10154667 V:10080000) P:0 A:-2567.00 V:-2567.07/T:0.20 (1,1,0,0) A:0% V:0% (-2567.23,6.07)

After killing omxplayer and trying to start another omxplayer instance, the new omxplayer log file starts to grow indefinitely with recurring outputs like:

16:50:00 T:1959111831   DEBUG: Normal M:244606745 (A:0 V:4233333) P:0 A:-244.61 V:-240.37/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959132127   DEBUG: Normal M:244627040 (A:0 V:4233333) P:0 A:-244.63 V:-240.39/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959152426   DEBUG: Normal M:244647340 (A:0 V:4233333) P:0 A:-244.65 V:-240.41/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959172710   DEBUG: Normal M:244667624 (A:0 V:4233333) P:0 A:-244.67 V:-240.43/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959193202   DEBUG: Normal M:244687926 (A:0 V:4233333) P:0 A:-244.69 V:-240.45/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959213501   DEBUG: Normal M:244708424 (A:0 V:4233333) P:0 A:-244.71 V:-240.48/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959233793   DEBUG: Normal M:244728717 (A:0 V:4233333) P:0 A:-244.73 V:-240.50/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959254086   DEBUG: Normal M:244749009 (A:0 V:4233333) P:0 A:-244.75 V:-240.52/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959274375   DEBUG: Normal M:244769298 (A:0 V:4233333) P:0 A:-244.77 V:-240.54/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959294848   DEBUG: Normal M:244789583 (A:0 V:4233333) P:0 A:-244.79 V:-240.56/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959315144   DEBUG: Normal M:244810070 (A:0 V:4233333) P:0 A:-244.81 V:-240.58/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959335435   DEBUG: Normal M:244830361 (A:0 V:4233333) P:0 A:-244.83 V:-240.60/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959355729   DEBUG: Normal M:244850655 (A:0 V:4233333) P:0 A:-244.85 V:-240.62/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959376014   DEBUG: Normal M:244870939 (A:0 V:4233333) P:0 A:-244.87 V:-240.64/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)
16:50:00 T:1959396510   DEBUG: Normal M:244891239 (A:0 V:4233333) P:0 A:-244.89 V:-240.66/T:0.20 (0,1,1,0) A:0% V:99% (0.00,0.00)

and nothing but rebooting seems to make everything work again.

As it happened last time, using a RPi 3B+ board everything works perfectly, so it seems a RPi 4B related problem.

Could you please take another look at this issue? Thank you!

@popcornmix
Copy link
Owner

Does it matter what the contents of the two videos are?
I assume if they are copies of the same video (e.g. the 10s big buck bunny) then it doesn't fail?

Download links for 2 suitable videos would be useful (unless it can be made to fail with the original test video).

@jordiblanchcarles
Copy link
Author

These are the videos I've used:
video1.mp4
video2.mp4

I've started again to test but now with 2 exact copies of the same video (video1.mp4 == video3.mp4), I'll give feedback as soon as it fails... or not...

Now I have another RPi 4B at hand, so I'll also try with 2 different videos later (or any other test you would like me to try...).

@jordiblanchcarles
Copy link
Author

Ok, last test with 2 identical videos but with different names has already failed in less than 1 hour... I've used video1.mp4 and a second copy of the same file with a different name (video1c.mp4 in this case), so repeating video1.mp4 - video1c.mp4 - video1.mp4 - video1c.mp4 - video1.mp4 - video1c.mp4 ... and so on is failing... I don't understand why this would be different from repeating a single video file, but that's what I get...

Now I'm using a brand new RPi 4B also with a recently installed Raspbian, fully updated and with new .dat and .elf files you posted in this issue. This new RPi 4B is repeating the same test again, 2 identical files (video1.mp4 and it's copy).
The "old" RPi 4B is using 2 different files that I've never used before: video3.mp4 and video4.mp4 and is also looping through them to see if the test fails.

I'll post my results as soon as I get them.

@jordiblanchcarles
Copy link
Author

Hello again,

I think I'm having a hardware failure in my old RPi 4B because the same tests with my new RPi 4B are always working properly (no matter which videos are looping), and the old RPi 4B is always failing sooner or later. I've reinstalled Raspbian to a new SD card, upgraded it and copied your new firmware files and the old RPi 4B board is always failing, but my new RPi 4B with exactly the same configuration board is not failing.

So my conclusion is that there must be some kind of hardware failure in my "old" RPi 4B board that is causing these issues while playing videos with omxplayer.

I'll close again the issue.

@samshum2
Copy link

I think I have found the issue. Can you test updated firmware:
https://drive.google.com/uc?id=1KDPcrIUhlv7peINnl0sJ_MS3ZgXlL1zb&export=download

and let me know if it helps?

Sorry , colud you show the upgurad step?

@jordiblanchcarles
Copy link
Author

Hello @samshum2,

these firmware upgrades were already included some time ago in Raspbian stable release, so upgrading your Raspbian to latest should solve any problem related to this issue.

Regards.

mkreisl added a commit to xbianonpi/xbian-package-firmware that referenced this issue Jan 12, 2021
- firmware: Unicam: Request frequency of 250MHz when running camera use cases

- firmware: arm_loader: Fix UART unmapping

- firmware: uart1: Revert to the old core-frequency-locking method
  See: #1267

- firmware: arm_loader: Provide a sensible device_tree_end default
  See: #1259

- firmware: mmal_ril: Fix size reported on ENOSPC error
  See: #1269

- firmware: hvs: Trigger the EOLn timer at the field rate when interlaced
  See: #1227

- firmware: bootloader_state: Add support for a custom TFTP prefix parameter

- firmware: arm_loader: GIC stub => 2711 stu
- See: #1255

- firmware: arm_loader: Add os_prefix option
  See: raspberrypi/linux#3237

- firmware: Add support for arbitrary memory specification

- firmware: arm_loader: Fix explicit kernel name handling
  See: #1277

- firmware: Added a new display power mailbox call

- firmware: Update display_power gencmd with optional display id
  See: raspberrypi/linux#3050

- firmware: Remove legacy pkgconfig to avoid Mesa conflicts
  See: raspberrypi/userland#585

- firmware: Update display_power gencmd with optional display id

- firmware: sysman: Fix unsafe check for h264 being enabled
  See: popcornmix/omxplayer#749

- firmware: platform: Reduce absolute microvolts threshold to 500000

- firmware: tv_server: Also initialise ts queue on composite
  See: https://forum.kodi.tv/showthread.php?tid=348205

- firmware: Loop to init hotplug

- firmware: hdmi: Change HDMI state machine and BVB clocks as turbo clocks

- firmware: hdmi: Add EOF timeout to unjam failed mode changes

- firmware: platform: Differentiate between boostable and turbo clocks

- firmware: arm_dt: Set WL_ON and BT_ON from .dtb

- firmware: Fixup chosing of bit depth in legacy graphics
  See: raspberrypi/linux#3331

- firmware: vec: Setup WideScreen Signalling outside of copy protection
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=256489

- firmware: Add global reset mailbox

- firmware: 2711: De-couple start.elf clock setup from the bootloader

- firmware: scaler: Correct defines for SCALER_POS0_START_Y_[MASK|SHIFT] (HVS4)

- firmware: platform: Fix missing HDMI PHY power down bit

- firmware: Reduce voltage as part of DVFS

- firmware: arm-loader: Inherit 2711 mac-address from the bootloader
  See: http://git/vc4/vc4/merge_requests/687

- firmware: arm_loader: Respect all required frequencies when throttling

- firmware: Fixup vcgencmd display_power return values

- firmware: platform: Allow fixed voltage with avs_disable=1

- firmware: EMMC: Use PLLD for EMMC for 250MHz host-clock
  See: #1289

- firmware: platform: Round down effective frequencies when they exceed max
  See: #1290

- firmware: arm_loader: Pass video mode via kernel command for composite
  See: #1285

- firmware: Fix lens shading table generation buglet
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=190586&start=75#p1534672

- firmware: hdmi: Use RB2 timing for 2560x1440@60 if pixel clock is 241.5 MHz

- firmware: arm_dt: Look for ethernet0 before ethernet

- firmware: arm_dt: Set PCIe dma-ranges from memory size

- firmware: hdmi: HDMI SM clock must not run slower than audio MAI clock
  See: #1295

- firmware: arm_loader: Pass video mode via kernel command for composite (master)
  See: #1285

- firmware: power: Use Pi4 PMIC values on Pi3+

- firmware: Fix filtered handling of array variables
  See: #1296

- firmware: Update libfdt to v1.5.1+
  See: raspberrypi/userland#582

- firmware: dtoverlay: Extend DT parameter syntax

- firmware: memorymap: Include FW revision in start.elf

- firmware: Fixup for vcgencmd display_power
  See: #1224

- firmware: Add hdmi_wifi_pixel_freq_adj config option

- firmware: Revert mmal: Support 64 bit clients
  See: raspberrypi/userland#586

- firmware: arm_dt/dtoverlay fixes for ARM side camera driver power control

- firmware: arm_ldconfig: Support multiple initramfs files
  See: #1318

- firmware: Add support for backlight enable

- firmware: master: arm_ldconfig: Support multiple initramfs files
  See: #1318

- firmware: power: Make pmicrd/pmicwr available to all

- firmware: platform: Only throttle down from arm_freq

- firmware: platform: Bump desired ring osc to 3.7 on Pi3/CM3

- firmware: arm_loader: Add 2ms delay before resetting SD_IO

- firmware: isp/tuner: Resetting to a lamp mode cancels manual_gains_used_

- firmware: board_info: Fix uninitialised phy_addr handling in network boot

- firmware: IL video_decode: Default to H264 as MPEG4 isn't supported

- firmware: IL egl_render: Fail the create on Pi4

- firmware: arm_dispmanx: Column pitch for YUV10COL is in lines not bytes

- firmware: platform: 2711: Also add chicken bits to dvfs voltage

- firmware: MMAL / video_render: Allow column stride to be set on column formats

- firmware: vc_image/video_decode: Move +16 lines for di_adv from vc_image to decoder

- firmware: platform: 2711: Support overclocking gpu frequencies
  See: #1290

- firmware: gencmd: Fix measure_clock name for CLOCK_OUTPUT_108

- firmware: mmal isp: Remote alignment requirements for RGB24 formats

- firmware: Add missing flags for VC_IMAGE_PROP_YUVUV_4K_CHROMA_ALIGN

- firmware: platform: Compromise on gpu overclock settings
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=262649&start=100#p1610362

- firmware: Add the ability to export labels from overlays

- firmware: loader: 4-byte align initramfs blocks
  See: #1318

- firmware: vd3/video_decode: Do not add 16 lines of context when video is 1920 tall
  See: #1334

- firmware: Allow use of 24 bit framebuffers
  See: #1338

- firmware: arm_loader: Add non-os_prefix cmdline.txt fallback

- firmware: board_info: Set board-info memory size according to SDRAM mode registers

- firmware: arm_loader: Treat min frequencies as optional
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=264786

- firmware: arm_loader: Add overvoltage_delta for manufacture tests

- firmware: Support Isp stats and params

- firmware: arm_loader: Make EMMC2 dma-ranges patch more tolerant

- firmware: bootromfs: Delete unwanted assert

- firmware: usb_eth: Increase timeouts for TFTP requests and retransmit ACK

- firmware: isp component: rtos_common_mem: Fix handle acquire usage with wrap handles

- firmware: il: video_render: Require 4k chroma alignment on YUVUV transpose
  See: #1334

- firmware: vc_image: Don't align the YUVUV pitch to SDRAM pages if not aligning to 4k
  See: raspberrypi/linux#3492

- firmware: isp component: rtos_common_mem: Fix smallalloc test in mem_handle_acquire_if_valid

- firmware: platform: 2711: Make chicken-bit pip size vary with pmic quantum

- firmware: USB device boot for CM4

- firmware: arm_loader: Add SET_LAUNCH_VPU1 mailbox message

- firmware: il: camera: Add config.txt param awb_auto_is_greyworld for NoIR camera
  See: #1167

- firmware: arm_loader: Provisional support for high peris

- firmware: arm_loader: Only add margins to cmdline if non-zero

- firmware: clock: Support clock_measure_pll on pi0-3

- firmware: platform: Back to CLOCK_PLL_CHAN_CPER for emmc on pi0-3

-  firmware: gpu_server: Fixup after LAUNCH_VPU1 commit

- firmware: power: Add a notch to compensate for trim on 2835

- firmware: isp/tuner: Resetting to a lamp mode cancels manual_gains_used_ (master)

- firmware: armstubs: Rebuild with latest source

- firmware: arm_loader: Avoid resetting the GPIO expander

- firmware: vcos_genversion: Fix up legacy variant names

- firmware: dtoverlay: Add overlay_map functionality
  See: raspberrypi/linux#3520

-  firmware: isp_tuner: Add in the slave AWB tuner handling

- firmware: arm_dt: Apply os_prefix to device_tree= files

- firmware: clock_2711: Fix PLL analog setup

- firmware: board_info: Also include CM3+ for pmic trait
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=267576&start=25#p1643032

- firmware: Switch to building from common firmware branch

- firmware: isp: make AGC metering respect the (digital zoom) crop region

- firmware: Avoid linking in khronos on Pi4

- firmware: clock: Reset PLLC after switching VPU to OSC

- firmware: arm_loader: Make 4GB available if arm_peri_high

- firmware: arm_loader: Complete arm_peri_high support
  See: #1374

- firmware: board_info: Split Model B into rev1 and rev2
  See: raspberrypi/linux#3537

- firmware: power: Clamp voltage to platform limits for all power supplies

- firmware: isp: Ensure lens shading (LS) is enabled when a valid LS table is received

- firmware: otp: Fix advanced boot row definition

- firmware: bootcode: Fix issue booting with webcams

- firmware: isp: fix ISP component to return non-zero focus FoMs

- firmware: Fix for IMX477 focal length, f_number and aperture

- firmware: Update firmware for USB MSD boot

- firmware: platform: Fix overflow on high arm overclocks

- firmware: video_encode: Add option to include header bytes with frame

- firmware: DSI display: Close I2C handle if the display doesn't probe

- firmware: mmal/vc: Add mapping for OMX_IndexConfigBufferStall / MMAL_PARAMETER_VIDEO_STALL_THRESHOLD
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=70&t=273123&p=1655481

- firmware: hdmi: Request an I2C interrupt for EDID reading

- firmware: i2c: Move using_interrupt flag into periph_setup

- firmware: camera: Latency reduction for captures

- firmware: IL camera fixes for reduced startup time

- firmware: mmal_ril: Correct a use of portdef.video to portdef.image

- firmware: vc_image: SDRAM page alignment is optional for YUV10_COL
  See: https://forum.libreelec.tv/thread/21985-noise-artefacts-when-playing-back-4k-hevc-video-on-rpi4-le-9-2-1-no-problems-on/

- firmware: imx477: Correct the logic for extending hblank on long exposures

- firmware: il: isp: Ensure HR output is active and ISP is open before starting a frame

- firmware: isp_ctrl: Fail in start_[raw|yuv]_frame if ISP is not idle
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=275489

- firmware: vcfw: Fix PMIC max voltage
  See: https://forum.libreelec.tv/thread/22097-libreelec-leia-9-2-3

- firmware: ISP raw14 and mono input, 16bpc YUV output. Camera subsystem not messing with GPIO0

- firmware: isp: fix assert from initial setting of ISP denoise parameters

- firmware: arm_ldconfig: Don't pad initramfs files
  See: #1395

- firmware: board_info: Add and use BT_FLOWCONTROL trait

- firmware: logging: Add missing checks for uart_output_enabled

- firmware: host_applications: Install debug_sym.h

- firmware: logging: Inherit uart_2ndstage config from the bootloader

- firmware: Fix Pi4 regression in previous build

- firmware: platform: Resolve BT flow control contention
  See: Hexxeh/rpi-firmware#227

- firmware: hdmi: Limit the valid CEA modes to those defined in the table
  See: https://forum.libreelec.tv/thread/22135-regression-raspberry-pi-3-hdmi-output-broken-after-upgrade-to-9-2-x

- firmware: imx477: Add switch to allow switching of on-sensor DPC

- firmware: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET
  See: https://forum.kodi.tv/showthread.php?tid=354589

- firmware: arm_ldconfig: Honour the kernel8 text offset
  See: #1415

- firmware: jpeghw: Skip repeated 0xFF padding bytes between markers
  See: RPi-Distro/vlc#8

- firmware: arm_loader: Allow interlaced HDMI modes from FKMS
  See: raspberrypi/linux#3698

- firmware: arm_loader: Limit rather than reject boosts with disable_auto_turbo

- firmware: i2c: Clearing the TA bit may time out
  See: #1422

- firmware: arm_loader: Add an accelerated memmove

- firmware: arm_loader: memmove kernel to preferred text_offset
  See: #1421

- firmware: filesystem: Fix GPT regression on USB after SD fix
  See: #1420

- firmware: arm_loader: Don't enable the ARM USB IRQ
  See: raspberrypi/linux#3703

- firmware: hdmi: Remove M2MC/BVB min turbo clock request

- firmware: IL: camera: Fix stereoscopic pool allocations

- firmware: arm_loader: Add support for double clock/pixel_rep for FKMS
  See: raspberrypi/linux#3725

- firmware: scalerlib: Set the default chroma location for YUV10 to match 8bit

- firmware: scalerlib: Set chroma_vrep correctly for YUV10COL

- firmware: isp: check the hi-res resize filter mode when the input crop changes

- firmware: arm_loader: Knock 1.7 seconds off boot time
  See: #1375

- firmware: Imx477 external sync signals

- firmware: bootloader: Some tweaks for LED, UART, USB timeouts

- firmware: platform: Avoid vco issue with low arm_freq_min on Pi0-3
  See: #1431

- firmware: arm_loader: Don't try to load to 0 a.k.a. NULL
  See: #1445

- firmware: armstub7: Configure the top 32 STB interrupts

- firmware: dispmanx: Remove elements cleanly that are totally offscreen negatively
  See: raspberrypi/linux#3735

- firmware: hdmi: Set the altered mode, not the caller's mode
  See: #1446

- firmware: dt-blob: Declare CM4 GPIO expander pins

- firmware: clocks: Make frequency_t 64-bit

- firmware: Revert frequency_t: Make 64-bit

- firmware: ISP/tuner: Increase max exposure time for fixed ISO modes on IMX219 and 477
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=281603

- firmware: sdhost_arasan: Ignore DCRC after CMD12
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=282928

- firmware: firmware: frequency_t: Make 64-bit

- firmware: pi4: allow pllb changes while running
  See: #1431

- firmware: board_info: Give the CUSTOM boards the PMIC_NCP6343 trait

- firmware: dispmanx/displays: Allow both DPI and DSI displays simultaneously

- firmware: imx477: Release the I2C semaphore once finished, not before

- firmware: clock: Allow overclocking pllb
  See: raspberrypi/linux#3823

- firmware: hdmi/edid: Reduce the bias to all but the first detailed timing

- firmware: hdmi/edid: Add option to ignore any odd horizontal timings on Pi4

- firmware: sdcard: Hybrid MBR - only select GPT if it is the first primary partition
  See: #1465

- firmware: audioplus: Avoid broken audio when requesting hdmi audio device when using composite display
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=28&t=283639

- firmware: platform: Add support for SCB clock and set to 250MHz

- firmware: Revert arm_loader: Move first call to set_turbo after arm->start

- firmware: arm_ldconfig: GZIP-compressed ARMv8 kernel support

- firmware: arm_ldconfig: Restore the fallback load address
  See: #1467

- firmware: ilcamera: Disable timeouts on trigger sink devices

- firmware: genet: Flush RBUF/TBUF and clear mac-address on stop
  See: raspberrypi/linux#3850

- firmware: dmalib: Add support for 40-bit 2d memcpy

- firmware: sdcard: Reduce SD read overhead

- firmware: sdhost_arasan: Increase time threshold before suspend

- firmware: video_decode: Only shutdown codec on both ports being disabled

- firmware: vc_image_helper: Avoid misaligned exception due to uninitialised pointer

- firmware: arm_loader: Make arm clock accesses only see their own boosts
  See: #1469

- firmware: arm_loader: enable simple_fb iff there is a display
  See: raspberrypi/linux#3878

- firmware: arm_loader: Mark V3D early boost as for the ARM
  See: #1469

- firmware: arm_loader: Update armstubs with those from PR 117
  See: raspberrypi/tools#117

- firmware: Revert sdcard: Reduce SD read overhead

- firmware: arm_loader: Add GET/SET_VPU_VECTOR mailbox calls

- firmware: arm_ldconfig: Don't invalidate the dcache for most of memory
  See: #1445

- firmware: arm_loader: Allow arm to see force_turbo and uart boosts

- firmware: hdmi: Timeout HDMI EDID reads

- firmware: pwm_sdm: move modulator to VPU0
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=195178&p=1723639

- firmware: Add tryboot mechanism to provide a fallback if an OS upgrade fails

- firmware: camplus: stills_denoise: Release the VRF between iterations

- firmware: vc_image: Further fixup of fix_alignment
  See: #1334

- firmware: arm_loader: Support large PCIe window with <8GB RAM
  See: https://www.raspberrypi.org/forums/viewtopic.php?p=1759627#p1759627

- firmware: filesys: Close the brfs from filesys_power(..., 0)

- firmware: platform: Avoid vco issue with low arm_freq_min on Pi0-3
  See: #1431

- firmware: video_encode: Allow level 5.0 and 5.1
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=291447

- firmware: xhci: Don't reset BCM2711 XHCI from filesys in start.elf

- firmware: bootcode.bin: Add support for tryboot

- firmware: Switch DA9121 PMIC to PWM mode when ARM > 600 MHz

- firmware: arm_dt: Handle parent interrupt controllers when masking

- firmware: config: Add cm4 and pi400 config section filters

- firmware: MMAL/IL/ISP component: Set the ISP boost frequency once on open

- firmware: sdcard: Remove legacy NOOBS support to support booting from primary partition 4

- firmware: arm_loader: Move 2711 RAM to PCIe address 16GB

- firmware: video_decode: Add parameter to disable timestamp validation

- firmware: Imx477 camera tuning fixes
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=291032#p1770287
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=291032&start=25#p1771066

- firmware: Use DMA40 for PWM audio

- firmware: imx477: Replace existing 720p120 mode with a new 1332x990 120fps mode

- firmware: arm_loader: Allow max_framebuffers=0 to disable framebuffers
  See: #1507

- firmware: dmalib: Allow sdcard to borrow channel 6
  See: #1511
  See: Hexxeh/rpi-firmware#251
  See: https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=294932

- firmware: DSI interrupt fixes, and HDMI SM clock for deep colour

- firmware: dmalib: Keep 40-bit DMA clear of L2 alias

- firmware: audioplus: Fix hang when switching destination
  See: #1516

- firmware: HAT/I2C updates

- firmware: MMAL/IL: Add support for the 16bpp Bayer/Grey raw 10/12/14 formats

- firmware: Revert firmware: HAT/I2C updates

- firmware: firmware: MMAL/IL: Add support for the 16bpp Bayer/Grey raw 10/12/14 formats

- Firmware: undo previous reverts
@Norc89
Copy link

Norc89 commented Jan 25, 2022

Hi,
I'm using latest version of Buster. And video hangs after 20-24h. Whats weird is that always freeze on the same frame.

Video is 23s in loop. If i stop player and start playing again video is playing. Only in background stay freezed image for some time.

Is there still anybody that is working on this project ?

@popcornmix
Copy link
Owner

Is there still anybody that is working on this project ?

This repo is no longer active and omxplayer isn't part of latest bullseye images.
In theory someone could fork this repo and continue to update it, but I've not heard of anyone interested.

VLC is the recommended alternative.

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

No branches or pull requests

5 participants