[okular] [Bug 491780] New: Autoplay does not work for movies in Screen annotations
Armin
bugzilla_noreply at kde.org
Fri Aug 16 09:53:04 BST 2024
https://bugs.kde.org/show_bug.cgi?id=491780
Bug ID: 491780
Summary: Autoplay does not work for movies in Screen
annotations
Classification: Applications
Product: okular
Version: 24.05.2
Platform: Fedora RPMs
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: PDF backend
Assignee: okular-devel at kde.org
Reporter: dkxls23 at gmail.com
Target Milestone: ---
Created attachment 172667
--> https://bugs.kde.org/attachment.cgi?id=172667&action=edit
PDF file with movies embedded as Screen annotations
SUMMARY
Screen annotations have two levels of control over whether media content is
automatically played:
1. The activation of the annotation itself is controlled by the annotation's
action and additional action dictionary, where the action and each entry in the
additional action dictionary contain an own, possibly different, rendition
action. For a movie to autoplay, an appropriate action needs to be defined in
the additional action dictionary, which in most cases corresponds to the page
opening event. The activation of the screen annotation corresponds to the
`autoPlay` property of `Okular::Movie` objects.
2. In addition, media renditions in screen annotations have another parameter
to directly control autoplay in the media player. This corresponds to the
`autoPlay` property of `Poppler::MediaRendition` objects. It is worth to note
that the respective entry in the PDF standard is by default set to true and
rarely changed at all by PDF creators.
Thus, in order to have media content play automatically, both these need to be
true, where the latter, i.e. `autoPlay` in Poppler::MediaRendition, is
correctly handled in `createMovieFromPopplerScreen` already by setting the
`startPaused` property in `Okular::Movie` objects accordingly. The former
however requires checking the additional actions of the Screen annotations,
which is implemented here.
Furthermore, it is worth to note that, in principle, each rendition in the
additional action dictionary could play different media content. However, this
is probably a rather uncommon use case and would increase the complexity of the
implementation considerably.
Okular has only one level of control, as far as I can tell, even though
`Okular::Movie` has the two property (`startPaused` and `autoPlay`), which are
sort of redundant with respect to how Okular handles movies. Thus, one could
even get rid of the `startPaused` property altogether.
I have attached a patch which is completely untested, and is more meant to
demonstrate how the autoplay for movies in Screen annotations could be
implemented. There are most probably better ways to do this, since I have not
really any insight into the Okular code base, but this was the only viable way
I could identify. A drawback of this is that the implementation is spread over
several files, a more clean way might however require a slight restructuring to
handle Screen annotations similar to how RichMedia annotations are handled.
STEPS TO REPRODUCE
1. Open the attached PDF file containing movies embedded as Screen annotations
OBSERVED RESULT
None of the movies autoplay.
EXPECTED RESULT
The movie with autoplay enabled (i.e. actions of the page-opening event
defined) does not play.
SOFTWARE/OS VERSIONS
Windows: n/a
macOS: n/a
Linux/KDE Plasma: Fedora 40
KDE Plasma Version: 6.1.4
KDE Frameworks Version: 6.5.0
Qt Version: 6.7.2
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Okular-devel
mailing list