Bug 430873

Summary: H.264 video only plays audio on Raspberry Pi 4b (ARM)
Product: [Applications] digikam Reporter: Razathorn <raz>
Component: Preview-VideoAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: caulier.gilles, metzpinguin
Priority: NOR    
Version: 7.1.0   
Target Milestone: ---   
Platform: Manjaro   
OS: Linux   
Latest Commit: Version Fixed In: 8.2.0
Sentry Crash Report:
Attachments: debug log opening and playing video

Description Razathorn 2020-12-28 02:51:19 UTC
H.264 video downloaded from my galaxy 10e will play only sound (black screen video) on Raspberry Pi 4b.  I have verified this works on x86_64 manjaro, but on Raspberry Pi 4b, it does not work.  The video will play fine in VLC and QTAV.

STEPS TO REPRODUCE
1. See video preview correctly (thumb)
2. Double click to open.
3. Video plays with only audio (black screen)

OBSERVED RESULT
Video plays with black screen and good audio.

EXPECTED RESULT
Video should play actual video frames with audio.

SOFTWARE/OS VERSIONS
Operating System: Manjaro-ARM
KDE Plasma Version: 5.20.4
KDE Frameworks Version: 5.76.0
Qt Version: 5.15.2
Kernel Version: 5.4.81-1-MANJARO-ARM
OS Type: 64-bit
Processors: 4 × 
Memory: 7.6 GiB of RAM
Graphics Processor: V3D 4.2

ADDITIONAL INFORMATION
Raspberry Pi 4b has hardware h264 video decoding.
Comment 1 Maik Qualmann 2020-12-28 06:50:26 UTC
Can you please post the debug output from the terminal (from digiKam start until a video is played), as described here: https://www.digikam.org/contribute/

Maik
Comment 2 Razathorn 2020-12-28 18:59:06 UTC
Created attachment 134373 [details]
debug log opening and playing video
Comment 3 Maik Qualmann 2020-12-28 20:44:30 UTC
The log shows no abnormalities. I think it might have something to do with the video widget we were using. We're using a software rendered one and don't let QtAV choose an accelerated one automatically. We did it for compatibility reasons (AppImage etc). I will change this for testing.

Maik
Comment 4 Maik Qualmann 2021-09-11 13:35:22 UTC
Git commit 450d93baf8a059d9e4e0214539bf3810912e0a72 by Maik Qualmann.
Committed on 11/09/2021 at 13:33.
Pushed by mqualmann into branch 'master'.

Use QtAV video output to use hardware acceleration if supported
and use libAVFIlter to rotate the video
Related: bug 382582, bug 435660, bug 414572

M  +44   -44   core/libs/video/player/mediaplayerview.cpp

https://invent.kde.org/graphics/digikam/commit/450d93baf8a059d9e4e0214539bf3810912e0a72
Comment 5 Maik Qualmann 2021-09-11 14:49:32 UTC
Git commit 701855c5455c495bf68b61298344e80828404311 by Maik Qualmann.
Committed on 11/09/2021 at 14:48.
Pushed by mqualmann into branch 'master'.

Use QtAV video output also for the slideshow
Related: bug 382582, bug 435660, bug 414572

M  +42   -41   core/libs/video/player/slidevideo.cpp
M  +0    -1    core/libs/video/player/slidevideo.h

https://invent.kde.org/graphics/digikam/commit/701855c5455c495bf68b61298344e80828404311
Comment 6 caulier.gilles 2022-05-12 11:25:27 UTC
Git commit 5aae9b7c21ab662d63b49f165163984809c1d585 by Gilles Caulier.
Committed on 12/05/2022 at 11:10.
Pushed by cgilles into branch 'master'.

Move AVPlayer config widgets to core/QtAV to allow to re-use these settings view in a new Video section from digiKam Setup dialog.
the goal is to be able to configure the video decoder, the audio backend, and the video renderer with video preview framework,
to prevent dysfunctions while playing audio and video media if wrong decoder/backend/renderer is selected by default.

Currently none of these settings is possible in digiKam and playing video and audio always depends of default settings done in QtAV
framework which can be badly configured for the available hardwares and modules in client computer.

TODO: add the new video config pannel in digiKam Setup dialog to configure decoder/backend/renderer.
Related: bug 435660, bug 382582, bug 445422, bug 426951, bug 437328, bug 388475, bug 440668, bug 415778, bug 442802, bug 423580

M  +2    -14   core/avplayer/CMakeLists.txt
M  +3    -6    core/avplayer/main/MainWindow.cpp
M  +7    -7    core/avplayer/main/MainWindow.h
R  +2    -0    core/avplayer/utils/ConfigDialog.cpp [from: core/avplayer/config/ConfigDialog.cpp - 099% similarity]
R  +8    -5    core/avplayer/utils/ConfigDialog.h [from: core/avplayer/config/ConfigDialog.h - 090% similarity]
M  +2    -0    core/avplayer/utils/common.cpp
M  +12   -0    core/libs/video/qtav/CMakeLists.txt
R  +2    -2    core/libs/video/qtav/widgets/config/AVFilterConfigPage.cpp [from: core/avplayer/config/AVFilterConfigPage.cpp - 098% similarity]
R  +7    -6    core/libs/video/qtav/widgets/config/AVFilterConfigPage.h [from: core/avplayer/config/AVFilterConfigPage.h - 086% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/AVFormatConfigPage.cpp [from: core/avplayer/config/AVFormatConfigPage.cpp - 098% similarity]
R  +7    -6    core/libs/video/qtav/widgets/config/AVFormatConfigPage.h [from: core/avplayer/config/AVFormatConfigPage.h - 084% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/AVPlayerConfigMngr.cpp [from: core/avplayer/config/AVPlayerConfigMngr.cpp - 099% similarity]
R  +10   -6    core/libs/video/qtav/widgets/config/AVPlayerConfigMngr.h [from: core/avplayer/config/AVPlayerConfigMngr.h - 098% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/CaptureConfigPage.cpp [from: core/avplayer/config/CaptureConfigPage.cpp - 099% similarity]
R  +7    -6    core/libs/video/qtav/widgets/config/CaptureConfigPage.h [from: core/avplayer/config/CaptureConfigPage.h - 086% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/ClickableMenu.cpp [from: core/avplayer/utils/ClickableMenu.cpp - 097% similarity]
R  +10   -6    core/libs/video/qtav/widgets/config/ClickableMenu.h [from: core/avplayer/utils/ClickableMenu.h - 082% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/ConfigPageBase.cpp [from: core/avplayer/config/ConfigPageBase.cpp - 097% similarity]
R  +10   -6    core/libs/video/qtav/widgets/config/ConfigPageBase.h [from: core/avplayer/config/ConfigPageBase.h - 087% similarity]
R  +34   -37   core/libs/video/qtav/widgets/config/DecoderConfigPage.cpp [from: core/avplayer/config/DecoderConfigPage.cpp - 098% similarity]
R  +11   -6    core/libs/video/qtav/widgets/config/DecoderConfigPage.h [from: core/avplayer/config/DecoderConfigPage.h - 082% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/MiscPage.cpp [from: core/avplayer/config/MiscPage.cpp - 099% similarity]
R  +10   -6    core/libs/video/qtav/widgets/config/MiscPage.h [from: core/avplayer/config/MiscPage.h - 086% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/PropertyEditor.cpp [from: core/avplayer/config/PropertyEditor.cpp - 099% similarity]
R  +10   -6    core/libs/video/qtav/widgets/config/PropertyEditor.h [from: core/avplayer/config/PropertyEditor.h - 093% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/ShaderPage.cpp [from: core/avplayer/config/ShaderPage.cpp - 098% similarity]
R  +7    -6    core/libs/video/qtav/widgets/config/ShaderPage.h [from: core/avplayer/config/ShaderPage.h - 085% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/Slider.cpp [from: core/avplayer/utils/Slider.cpp - 099% similarity]
R  +10   -6    core/libs/video/qtav/widgets/config/Slider.h [from: core/avplayer/utils/Slider.h - 088% similarity]
R  +2    -2    core/libs/video/qtav/widgets/config/VideoEQConfigPage.cpp [from: core/avplayer/config/VideoEQConfigPage.cpp - 099% similarity]
R  +10   -6    core/libs/video/qtav/widgets/config/VideoEQConfigPage.h [from: core/avplayer/config/VideoEQConfigPage.h - 088% similarity]

https://invent.kde.org/graphics/digikam/commit/5aae9b7c21ab662d63b49f165163984809c1d585
Comment 7 caulier.gilles 2022-05-12 13:58:57 UTC
Git commit 505bc17cd39702e14446c15d79d44d14d80fe005 by Gilles Caulier.
Committed on 12/05/2022 at 13:56.
Pushed by cgilles into branch 'master'.

Add Setup Video page from digiKam configuration dialog.
This allow to setup few options for media player as the decoder priority to use.
Related: bug 435660, bug 382582, bug 445422, bug 426951, bug 437328, bug 388475, bug 440668, bug 415778, bug 442802, bug 423580

M  +24   -12   core/libs/video/player/mediaplayerview.cpp
M  +1    -0    core/libs/video/player/mediaplayerview.h
M  +22   -10   core/libs/video/player/slidevideo.cpp
M  +4    -0    core/libs/video/player/slidevideo.h
M  +2    -2    core/libs/video/qtav/widgets/config/AVPlayerConfigMngr.cpp
M  +1    -1    core/libs/video/qtav/widgets/config/DecoderConfigPage.cpp
M  +1    -0    core/utilities/setup/CMakeLists.txt
M  +29   -0    core/utilities/setup/setup.cpp
M  +2    -0    core/utilities/setup/setup.h
M  +1    -1    core/utilities/setup/setuptemplate.cpp
A  +69   -0    core/utilities/setup/setupvideo.h     [License: GPL (v2+)]

https://invent.kde.org/graphics/digikam/commit/505bc17cd39702e14446c15d79d44d14d80fe005
Comment 8 caulier.gilles 2022-05-12 15:27:47 UTC
Git commit 0e2bc2695efc7d6d0d2ec52731c3f69095554b7f by Gilles Caulier.
Committed on 12/05/2022 at 15:24.
Pushed by cgilles into branch 'master'.

Hide advanced settings for each decoder as nothing is saved and restored between the sessions. Only the list of decoder and the priority is saved
Related: bug 435660, bug 382582, bug 445422, bug 426951, bug 437328, bug 388475, bug 440668, bug 415778, bug 442802, bug 423580

M  +6    -4    core/libs/video/qtav/widgets/config/DecoderConfigPage.cpp
M  +1    -1    core/libs/video/qtav/widgets/config/DecoderConfigPage.h
M  +1    -1    core/utilities/setup/setupvideo.cpp

https://invent.kde.org/graphics/digikam/commit/0e2bc2695efc7d6d0d2ec52731c3f69095554b7f
Comment 9 caulier.gilles 2023-04-30 07:38:29 UTC
@Razathorn 

digiKam 8.0.0 is out. This entry still valid with this release ?

Best regards

Gilles Caulier
Comment 10 caulier.gilles 2023-05-19 03:37:45 UTC
@Razathorn 

We needs a fresh feedback about this file please...

Best

Gilles Caulier
Comment 11 caulier.gilles 2023-10-11 14:44:00 UTC
@Razathorn 

We needs a feedback about this file using last digiKam 8.1.0...

Best

Gilles Caulier
Comment 12 Razathorn 2023-10-11 14:50:38 UTC
(In reply to caulier.gilles from comment #11)
> @Razathorn 
> 
> We needs a feedback about this file using last digiKam 8.1.0...
> 
> Best
> 
> Gilles Caulier

This was a while back--let me see if my pi still works and I can test.
Comment 13 Razathorn 2023-10-31 23:22:31 UTC
(In reply to caulier.gilles from comment #11)
> @Razathorn 
> 
> We needs a feedback about this file using last digiKam 8.1.0...
> 
> Best
> 
> Gilles Caulier

Confirmed that it is fixed.  I installed and updated manjaro on rpi4 and installed digikam 8.1.0 and the issue is resolved.