sagiadinos / garlic-player Goto Github PK
View Code? Open in Web Editor NEWDigital Signage Player based on SMIL
Home Page: https://garlic-player.com
License: GNU Affero General Public License v3.0
Digital Signage Player based on SMIL
Home Page: https://garlic-player.com
License: GNU Affero General Public License v3.0
Hi, I'm playing around with garlic-player.app (on mac). If I delete the .app file and then download a new one it seems to keep track of the settings. Where are the settings stored for garlic-player.app?
Hi --
I like this project and interested in its extensive use. Curious, is there a way to implement rrule for easy datetime interpretation of repeating of slides, etc?
Thank you!
JF
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:
1.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<smil>
<head>
<meta name="title" content="Simple SMIL for testing images in par and multizone" />
<layout>
<root-layout id="display:0" width="400" height="300" backgroundColor="#00b140"/>
<region regionName="screen" top="0" left="0" width="400" height="300" z-index="1" />
</layout>
</head>
<body>
<img region="screen" xml:id="start" src="http://stefan.konink.de/i/oog.jpg" dur="4s" fit="meetbest" />
<text region="screen" xml:id="text1" src="data:,Willemijn's%2011th%20Birthday%20Party" dur="2s" fit="meetbest" />
<text region="screen" xml:id="text2" src="file:///etc/hosts" dur="2s" fit="meetbest" />
<text region="screen" xml:id="text3" src="/etc/hosts" dur="2s" fit="meetbest" />
</body>
</smil>
Expected behavior
I would expect that a text is rendered "Willemijn's 11th Birthday Party" after two seconds, the /etc/hosts file is shown on screen. Since this does work for images it does not make sense it does not for text. For convience prior to solving #7 the extra tag has been added.
Describe the bug
Missing library libicui18n under Kubuntu 21.04
To Reproduce
Run sh garlic.sh under Kubuntu (probably any Ubuntu).
I would like to try garlic-player with Odroid C4 (arm64, ubuntu OS).
Is there any instruction how to build it?
I've just noticed APK size increased quite a lot, and meanwhile exceeds 80 MB. My repo has a limit of 30 MB per app, so this app no longer fits. Currently, APKs are pulled from https://garlic-player.com/downloads/ci-builds/latest_android_player.apk – which are "fat builds". Are there per-ABI builds available? I've just checked, and removing all native libs except for arm64 would bring the APK size below 30 MB again – which would open the possibility to keep e.g. the arm64 build in my repo.
Describe the bug
I am trying to repeat a sequence of images. I notice that the screen goes black after the last item. What is the garlic-player way of supporting such repeat?
Additional context
<?xml version="1.0"?>
<!DOCTYPE smil PUBLIC "-//W3C//DTD SMIL 2.0//EN" "http://www.w3.org/2001/SMIL20/SMIL20.dtd">
<smil xmlns="http://www.w3.org/2001/SMIL20/Language" xmlns:rn="http://features.real.com/2001/SMIL20/Extensions">
<head>
<layout>
<root-layout width="1920" height="1080" />
<region id="content" top="0" left="0" width="1920" height="1080" />
</layout>
</head>
<body>
<seq repeat="indefinite" fillDefault="remove">
<img src="broadcast/cache/c60cd22ecd898062a2cd61e190f00e93.png" alt="Roosterwijzigingen (1/4)" dur="2s" region="content" fill="remove" erase="whenDone" />
<img src="broadcast/cache/3573ad9a1d39eba9a63da6d5b3bef1aa.png" alt="Roosterwijzigingen (2/4)" dur="2s" region="content" fill="remove" erase="whenDone" />
</seq>
</body>
</smil>
Garlic doesn't support the deprecated repeat, instead repeatCount should be used.
I'm not found document about build project?
Please, help me, how can load a local html page or external html URL. What is the correct sintax if using regions like the sample in my other post?
<layout>
<root-layout width="1024" height="768" />
<region regionName="video" top="0" left="0" width="720" height="480"/>
<region regionName="slideshow" top="481" left="0" width="560" height="400" />
<region regionName="overlay" top="50" left="50" width="100" height="110" />
<region regionName="r" top="481" left="561" width="500" height="300" /> (**HERE**)
</layout>
<par>
<video src="1.mp4" dur="indefinite" region="video" fit="fill" />
<img src="lobos.jpg" dur="indefinite" region="slideshow" fit="fill" />
<img src="logo.jpg" dur="indefinite" region="overlay" />
<ref src="http://www.biblioteca.iberotijuana.edu.mx/movil/index.html" type="text/html" dur="indefinite" region="r" fit="fill"/> (**HERE**)
</par>
Thanks for the editor
I am trying to install garlic-player on Windows 10 home and got error during installation that reads (translated into English):
Error during installation
(com.microsoft.vcredist.x64): Failed to execute (unexpected termination code: 1638): "C:\Program Files (x86)\garlic-player/vcredist_x64.exe /quiet /norestart"
Garlic Player support layout background image? Any help about it?
Saludos .
If you try to run garlic player without network connectivity and if there is no cached smil index, you will end up with white screen forever.
There should be some kind of retry mechanism so it will eventually download the index once the connectivity is available.
It is of course possible to first somehow wait for network and after that start the player, but this should not be needed, as there can already exist cached content so we can display content event the network is not yet available.
Also somehow connected to this is refresh after load - garlic player supports http-equiv="Refresh"
and that is great, but if you by accident distribute smil index without this directive, the player will never try to load any content again and is stuck with the current cache until restarted. Maybe there can be some parameter for the player to periodically reload index file even without http-equiv="Refresh"
directive present?
I´am very happy with garlic-player. Are you planned a Raspberry Pi version?
Many libraries here in Mexico have no money to buy a digital signage solution and expensive equipment to implement this kind of technology.
Gracias !!
Iadea SMIL supports network triggers. We can create a SMIL file and then start one or anther seq via http-requests.
what is usually needed:
Would it be possible to do or to add something like this to garlic-player?
" Creating or writing to a non-default top level directory is not allowed!".
Error when running the application on Android 11+ while creating folder for cache & logs when using "QStandardPaths::GenericDataLocation". When changed to "QStandardPaths::AppLocalDataLocation" it seems to work properly, but then the folder location is not accessible.
The stable apk which we can download, somehow works properly. But when creating a new build using QT 5.15.2 it is not working without the above said change.
Smartphone (please complete the following information):
Additional context
The stable apk works properly on versions 9, 10, 11 & 12. App folder is getting created in Android/Data directory.
Hi -- wondering if it's possible to include iCalendar timing/repeat support? Especially RRULE implementation..
I've tried to find out what can be done using config.xml - unfortunately to no avail.
Am I missing something or is this undocumented so far?
Thank you!
Specifying invalid seq tag causes player to hang:
example is using this:
<seq begin="wallclock(R/2022-03-29T07:00:00/P0H)" end="wallclock(R/2022-03-29T22:00:00/P0H)">
The expected behavior, I would think, would be to display nothing and continue to poll for smil as usual.
Also something should be logged to event_log.xml saying there's an error loading smil with a meaningful message.
In general, the player should never hang but continue to poll. I can imagine a nighmare scenario if a bug in creating SMIL comes about it could freeze all players.
Attempted to build on Chromebook without success.
Project ERROR: Unknown module(s) in QT: xmlpatterns
make: *** [Makefile:136: sub-garlic-lib-make_first-ordered] Error 3
Could not install
sudo apt install qt5-default
...
E: Package 'qt5-default' has no installation candidate
Installed instead but not sure it is good enough
sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
Any idea?
@sagiadinos how to build this for raspberry pi?
Originally posted by @kangfend in #1 (comment)
Describe the bug
Launched player
Control+S
Saw SMIL index url
Pressed Enter
No response
Desktop (please complete the following information):
Terminal showing upon exit
Segmentation fault: 11
Describe the bug
Garlic-Launcher is compiled as a universal APK, and I was expecting an x86 or x86_64 version of Garlic-Player to be available for download, but it was not.
So I went to the source, and found out why...
Following the instructions from the build scripts lead to many missing assets required by the build scripts, like the src/player-c2qml/android/AndroidManifest.xml for example.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
directions we can follow or some kind of feedback from the scripts.
Question
To make rest api push to the player is both rest client and player should be in the same network ?
Describe the bug
The player does not play streaming audio content
To Reproduce
Add an audio stream to the playlist:
This is link to server icecast with codec MPEG Audio layer 1/2 (mpga)
The player skips the task
In event_log.xml I see an entry:
error2023-03-02T17:18:19+07:00ContentManagerFETCH_FAILED
This link plays in vlc player and in any browser
Additional context
An additional question concerns the playback of a video stream. Can garlic-player play a video stream, and if so, which one?
My APK scanner got a few additional checks implemented in January, and on today's release of Garlic reported:
! repo/com.sagiadinos.garlic.player_687.apk declares sensitive permission(s):
android.permission.CAMERA android.permission.RECORD_AUDIO android.permission.ACCESS_FINE_LOCATION
android.permission.READ_EXTERNAL_STORAGE*
Could you please clarify what they are needed for? I must admit I still do not fully understand what exactly the app is doing, so that might be the reason I cannot answer this question myself 🙈
PS: READ_EXTERNAL_STORAGE*
– here the trailing *
indicates Android granted it implicitly because WRITE_EXTERNAL_STORAGE
was granted.
Thanks in advance!
Hi -- I'm seeing these errors when trying to play videos from AWS S3, why would that be? (s3 address below has been redacted):
has an unknown content-type or file type: binary/octet-stream extension: mp4
Example of an error:
<event><eventType>error</eventType><eventTime>2021-12-23T08:59:17-05:00</eventTime><eventSource>ContentManager</eventSource><eventName>FETCH_FAILED</eventName><metadata><meta name="resourceURI" content="https://xxxx.s3.amazonaws.com/xxxx/sample_1920x1080.mp4"/><meta name="errorMessage" content="has an unknown content-type or file type: binary/octet-stream extension: mp4"/><meta name="lastCachedLength" content="0"/><meta name="lastCachedModifiedTime" content=""/></metadata></event>
Using this smil with prefetch from examples (URLs redacted). (btw, also wondering if there's a way to put an image or text on the screen if there was an error like above)
<?xml version="1.0" encoding="UTF-8"?>
<smil>
<head>
<meta http-equiv="Refresh" content="30"/>
<layout>
<root-layout width="3840" height="2160"/>
<region xml:id="fullScreen" width="3840px" height="2160px" left="0px" top="0px" z-index="0" backgroundColor="#000" />
</layout>
</head>
<body systemComponent="http://www.w3.org/1999/xhtml">
<par>
<seq end="__prefetchEnd.endEvent">
<seq repeatCount="indefinite">
<!-- Play waiting prompt or media files that are already in the cache -->
<img src="https://xxxx.s3.amazonaws.com/xxxx/splash.jpg" />
</seq>
</seq>
<seq>
<!-- Load files while first loop plays -->
<prefetch src="https://xxxx.s3.amazonaws.com/xxxx/sample_1920x1080.mp4" type="video/mp4" />
<!-- Special item that sends out the __prefetchEnd.endEvent event when it ends -->
<seq id="__prefetchEnd" dur="1s"/>
</seq>
<seq begin="__prefetchEnd.endEvent" repeatCount="indefinite">
<!-- Play loaded files -->
<video src="https://xxxx.s3.amazonaws.com/xxxx/sample_1920x1080.mp4" type="video/mp4" />
</seq>
</par>
</body>
</smil>
Describe the bug
When trying to fetch information remotely for a text field, this information will only get loaded if another element runs before it.
To Reproduce
Steps to reproduce the behavior:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<smil>
<head>
<meta name="title" content="Simple SMIL for testing images in par and multizone" />
<layout>
<root-layout id="display:0" width="400" height="300" backgroundColor="#00b140"/>
<region regionName="screen" top="0" left="0" width="400" height="300" z-index="1" />
</layout>
</head>
<body>
<!-- <img region="screen" xml:id="start" src="http://stefan.konink.de/i/oog.jpg" dur="4s" fit="meetbest" /> -->
<text region="screen" xml:id="text" src="http://stefan.konink.de/test.html" dur="100s" fit="meetbest" />
</body>
</smil>
Expected behavior
I would expect to have the text region loaded, this only occurs if an element is in before it.
I'm seeing this when trying to open the .deb file in rasbian. I don't know how to install.
Describe the bug
Segmentation fault in head_multizone.smil
To Reproduce
Steps to reproduce the behavior:
Additional context
(gdb) bt
#0 0x00007ffff7aaa50f in QLayout::addChildWidget(QWidget*) () at /usr/lib64/libQt5Widgets.so.5
#1 0x00007ffff7aa4296 in QStackedLayout::insertWidget(int, QWidget*) () at /usr/lib64/libQt5Widgets.so.5
#2 0x000000000041e0e1 in TRegion::startShowMedia(BaseMedia*) (this=0x7cdc40, media=0x9fbbd0) at region.cpp:51
#3 0x000000000041c346 in MainWindow::startShowMedia(BaseMedia*) (this=0x7fffffffdb40, media=0x9fbbd0) at mainwindow.cpp:251
#4 0x00000000004208f8 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x7fffffffdb40, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffffffc9b0) at moc_mainwindow.cpp:82
#5 0x00007fffee3eb970 in () at /usr/lib64/libQt5Core.so.5
#6 0x00007ffff7db8f32 in LibFacade::startShowMedia(BaseMedia*) (this=0x7ccae0, _t1=0x9fbbd0) at moc_lib_facade.cpp:242
#7 0x00007ffff7d99c58 in LibFacade::emitStartShowMedia(BaseMedia*) (this=0x7ccae0, media=0x9fbbd0) at lib_facade.cpp:178
#8 0x00007ffff7db8a11 in LibFacade::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x7ccae0, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0x7fffffffcbd0) at moc_lib_facade.cpp:122
#9 0x00007fffee3eb970 in () at /usr/lib64/libQt5Core.so.5
#10 0x00007ffff7db08f6 in BodyParser::startShowMedia(BaseMedia*) (this=0x92e9f0, _t1=0x9fbbd0) at moc_body_parser.cpp:263
#11 0x00007ffff7d76f90 in BodyParser::emitStartShowMedia(BaseMedia*) (this=0x92e9f0, media=0x9fbbd0) at smilparser/body_parser.cpp:276
#12 0x00007ffff7d7620b in BodyParser::startElement(TContainer*, BaseTimings*) (this=0x92e9f0, parent_container=0x9f9c50, element=0x9fbbd0) at smilparser/body_parser.cpp:117
#13 0x00007ffff7db035a in BodyParser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x92e9f0, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fffffffcde0) at moc_body_parser.cpp:121
#14 0x00007fffee3eb970 in () at /usr/lib64/libQt5Core.so.5
#15 0x00007ffff7db2c62 in BaseMedia::startedMedia(TContainer*, BaseTimings*) (this=0x9fbbd0, _t1=0x9f9c50, _t2=0x9fbbd0) at moc_base_media.cpp:197
#16 0x00007ffff7d877a5 in TImage::setDurationTimerBeforePlay() (this=0x9fbbd0) at smilparser/media/image.cpp:37
#17 0x00007ffff7d769aa in BodyParser::determineElements(TContainer*, QDomElement) (this=0x92e9f0, parent_container=0x9f9c50, dom_element=...) at smilparser/body_parser.cpp:215
#18 0x00007ffff7d75f7e in BodyParser::foundElement(TContainer*, QDomElement) (this=0x92e9f0, parent_container=0x9f9c50, dom_element=...) at smilparser/body_parser.cpp:77
#19 0x00007ffff7db02d2 in BodyParser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x92e9f0, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fffffffd080) at moc_body_parser.cpp:119
#20 0x00007fffee3eb970 in () at /usr/lib64/libQt5Core.so.5
#21 0x00007ffff7db51d0 in TContainer::foundElement(TContainer*, QDomElement) (this=0x9f9c50, _t1=0x9f9c50, _t2=...) at moc_container.cpp:215
#22 0x00007ffff7d8db5b in TContainer::emitFoundElement() (this=0x9f9c50) at smilparser/container/container.cpp:92
#23 0x00007ffff7d91b19 in TPar::play() (this=0x9f9c50) at smilparser/container/par.cpp:110
#24 0x00007ffff7d761a8 in BodyParser::startElement(TContainer*, BaseTimings*) (this=0x92e9f0, parent_container=0x9fc010, element=0x9f9c50) at smilparser/body_parser.cpp:115
#25 0x00007ffff7db035a in BodyParser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x92e9f0, _c=QMetaObject::InvokeMetaMethod, _id=4, _a=0x7fffffffd2e0) at moc_body_parser.cpp:121
#26 0x00007fffee3eb970 in () at /usr/lib64/libQt5Core.so.5
#27 0x00007ffff7db5262 in TContainer::startedContainer(TContainer*, BaseTimings*) (this=0x9f9c50, _t1=0x9fc010, _t2=0x9f9c50) at moc_container.cpp:222
#28 0x00007ffff7d9186f in TPar::setDurationTimerBeforePlay() (this=0x9f9c50) at smilparser/container/par.cpp:58
#29 0x00007ffff7d769aa in BodyParser::determineElements(TContainer*, QDomElement) (this=0x92e9f0, parent_container=0x9fc010, dom_element=...) at smilparser/body_parser.cpp:215
#30 0x00007ffff7d75f7e in BodyParser::foundElement(TContainer*, QDomElement) (this=0x92e9f0, parent_container=0x9fc010, dom_element=...) at smilparser/body_parser.cpp:77
#31 0x00007ffff7db02d2 in BodyParser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x92e9f0, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fffffffd580) at moc_body_parser.cpp:119
#32 0x00007fffee3eb970 in () at /usr/lib64/libQt5Core.so.5
#33 0x00007ffff7db51d0 in TContainer::foundElement(TContainer*, QDomElement) (this=0x9fc010, _t1=0x9fc010, _t2=...) at moc_container.cpp:215
#34 0x00007ffff7d8db5b in TContainer::emitFoundElement() (this=0x9fc010) at smilparser/container/container.cpp:92
#35 0x00007ffff7d8cd04 in TBody::setDurationTimerBeforePlay() (this=0x9fc010) at smilparser/container/body.cpp:76
#36 0x00007ffff7d8ccbf in TBody::prepareTimingsBeforePlaying() (this=0x9fc010) at smilparser/container/body.cpp:65
#37 0x00007ffff7d763ea in BodyParser::finishedPreload() (this=0x92e9f0) at smilparser/body_parser.cpp:144
#38 0x00007ffff7db039b in BodyParser::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x92e9f0, _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7fffffffd740) at moc_body_parser.cpp:123
#39 0x00007fffee3eb970 in () at /usr/lib64/libQt5Core.so.5
#40 0x00007ffff7db45ef in TBody::finishPreload() (this=0x9fc010) at moc_body.cpp:139
#41 0x00007ffff7d8cc83 in TBody::preload() (this=0x9fc010) at smilparser/container/body.cpp:60
#42 0x00007ffff7d75e92 in BodyParser::beginSmilParsing(QDomElement) (this=0x92e9f0, body=...) at smilparser/body_parser.cpp:57
#43 0x00007ffff7d9904a in LibFacade::beginSmilBodyParsing() (this=0x7ccae0) at lib_facade.cpp:83
#44 0x000000000041c2a4 in MainWindow::prepareParsing() (this=0x7fffffffdb40) at mainwindow.cpp:242
#45 0x00000000004208d6 in MainWindow::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0x7fffffffdb40, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fffffffd980) at moc_mainwindow.cpp:81
#46 0x00007fffee3eb970 in () at /usr/lib64/libQt5Core.so.5
#47 0x00007ffff7db8fe9 in LibFacade::newIndexLoaded() (this=0x7ccae0) at moc_lib_facade.cpp:255
#48 0x00007ffff7d9941a in LibFacade::loadIndex() (this=0x7ccae0) at lib_facade.cpp:130
#49 0x00007ffff7d98cca in LibFacade::initParser() (this=0x7ccae0) at lib_facade.cpp:49
#50 0x000000000041aba7 in main(int, char**) (argc=2, argv=0x7fffffffdcb8) at main.cpp:83
Hi -- would it be possible to update and/or create the build instructions (when starting from scratch) for Ubuntu and MacOS?
Thanks
J
I'am testing and learning. The Android version support bigscreen (when multi monitor) parameter with HDMI hub and 2 or more screens like Windows 10?
X96 Android TV Box
Android 5 or 7
Gracias !!!
Hi -- just curious if mediaAlign was implemented as its not working for me? Or stated another way, how would I be able to align content according to smil spec here: https://www.w3.org/TR/SMIL2/layout.html#adef-mediaAlign
Use case: I have an image (or a video) that I want to align to the right middle of the screen. How would I be able to accomplish that?
If it's implemented, would it be possible to provide a working example?
Thanks so much!
JF
Hi -- would it be possible to update chromium? Sites are complaining it's outdated. Example: bloomberg.com. Looks like garlic player is using 69.0.3497.128 which is from Oct 2018
Thank you!
Given a seq that looks like this:
<seq repeatCount="indefinite" begin="wallclock(R/2022-03-29T17:16:00/P1D)" end="wallclock(R/2022-03-29T18:00:00/P1D)">
if refreshing index.smil after 17:16:00 (but before 18:00:00) it does not start to play/loop (as the trigger time has passed, I guess?)
Expected behavior is that it starts to play/loop right away as it's within the begin to end period.
I created the following SMIL file:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<smil>
<head />
<body>
<seq repeatCount="indefinite">
<video src="vid.mp4" />
</seq>
</body>
</smil>
It works. If I change vid.mp4 => vid1.mp4 and video file is not found then player crashes.
v.0.3.0412
Describe the bug
When I run freshly compiled master it crashes with Segmentation fault at Enter keypress
To Reproduce
Steps to reproduce the behavior:
Followed instructions on the how to build garlic on wiki.
Everything compiled.
I ran the following bash script (without any params), I specified a random URL for testing (see below in config).
After the white screen came up (which I thought would be black) I pressed any key and get the segmentation fault:
xxx@ubuntu:~/.config/SmilControl$ ~/garlic-player/build/bin/garlic.sh
/home/xxx/garlic-player/build/bin/garlic.sh: line 4: 125622 Segmentation fault (core dumped) /home/xxx/garlic-player/build/bin/garlic-player $1 $2
#!/bin/bash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/garlic-player/build/lib
/home/xxx/garlic-player/build/bin/garlic-player $1 $2
#comment out for more debug informations
export QT_LOGGING_RULES="*.debug=false"
exit 0;
Expected behavior
Black screen, no actions
config/log files:
garlic-player.ini:
[General]
cleanupInterval=60000
index_uri=http://someone.something.com
last_played_index_path=/home/xxx/.cache/garlic-player/index.smil
maxMultiPartSize=10000000
maxRequestSize=16000
maxThreads=4
minThreads=1
player_name=momma
port=8080
readTimeout=60000
uuid=74319e09-7683-49f2-b389-a2c6c549422f
debug.log:
2022-06-22 12:54:55,388 informational default (0)"garlic-player: v0.5.0.567" Operating System: "linux"
2022-06-22 12:54:55,388 informational Screen (0)Monitor: "" "Virtual-1" Geometry: QRect(72,27 1728x919)
2022-06-22 12:54:55,388 informational Screen (0) DisplayGeometrie x: 72 y: 27 width: 1728 height: 919
event_log.xml:
2022-06-22 12:54:55,388 informational default (0)"garlic-player: v0.5.0.567" Operating System: "linux"
2022-06-22 12:54:55,388 informational Screen (0)Monitor: "" "Virtual-1" Geometry: QRect(72,27 1728x919)
2022-06-22 12:54:55,388 informational Screen (0) DisplayGeometrie x: 72 y: 27 width: 1728 height: 919
How can I start Garlic-Player in a screen 2 or 3 ?
This is the desktop shortcut. The " -m fullscreen " work fine but if add " -s2 " to launch the player in screen 2 it has no effect.
Windows 10 64
"C:\Program Files (x86)\garlic-player\start_garlic.bat" -m fullscreen -s 2
Also, Garlic-Player support Atom processor?
Gracias.
Hi, testing Garlic player parameters. -s 0 or 1 or 2 works fine but if combined with another like "-m fullscreen" only works the first:
"C:\Program Files (x86)\garlic-player\start_garlic.bat" -s 1 -m fullscreen
Launch the player in screen 1 as indicated but not fullscreen.
If change order:
"C:\Program Files (x86)\garlic-player\start_garlic.bat" -m fullscreen -s 1
Launch the player in the whole screen but not in the desired monitor. The launcher shows in default screen.
This is the version:
| garlic-player-win64-v0.3.0.422.exe | 2020-03-02 02:00 | 87M |
Is there a away to keep retrying to connect every 5 seconds when there's no internet? Unless I'm not right, currently when garlic-player starts up it attempts once (with the white screen). The only way to re-try is to press control+s and hit ok.
At the white screen can we put a message in the center of the screen saying "connecting to index server" and a nice circle spinner below?
Thank you!
Describe the bug
Compilation fails while trying to link to -lzlib
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Linked binary.
Desktop (please complete the following information):
Additional context
/usr/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lzlib
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:600: ../lib/libgarlic.so.1.0.0] Error 1
make[1]: Leaving directory '/mnt/storage/home/skinkie/Sources/garlic-player/src/garlic-lib'
The complete.pro compilation works without issues.
Does Garlic Player support transitions?
I've tried putting a <transition id="xfade" type="fade" subtype="crossfade" dur="1s" />
in my <head>
and then adding fill="transition" transIn="xfade"
to my <img>
definitions but I'm still getting hard cuts.
Describe the bug
A SVG file can be displayed in a IMG tag. This seems to work gracefully. A quality issue appears when using meetbest. This stretches (and keeps the aspect ratio) as would expected from image.cpp:63, but is not what should happen.
To Reproduce
Steps to reproduce the behavior:
1.
<par><img region="logo1" xml:id="l1" src="/path/to/logo.svg" dur="100s" fit="meetbest" /><img region="logo2" xml:id="l2" src="/path/to/logo.svg" dur="100s" /></par>
Expected behavior
I would expect the SVG to be rendered at the w, h of the element.
I notice this is not a new question, more people are figthing with it.
https://forum.qt.io/topic/76343/render-svg-to-qpixmap-with-unknow-target-size-and-without-loss-of-quality
https://falsinsoft.blogspot.com/2016/04/qt-snippet-render-svg-to-qpixmap-for.html
https://stackoverflow.com/questions/10079011/qpixmap-and-svg
If I insert a link to the video stream, it is glued to the path along which the smil playlist is located
The playlist is located at the URL:
http://smil.test.local/smil/data/smil/body/simple.smil
The video stream is located at:
rtsp://172.29.30.131:554/
I insert the playback of the stream:
<video src="rtsp://172.29.30.131:554/" dur="30s" />
In event_log.xml I see the line:
<event><eventType>error</eventType><eventTime>2023-03-03T10:15:34+07:00</eventTime><eventSource>ContentManager</eventSource><eventName>FETCH_FAILED</eventName><metadata><meta name="resourceURI" content="http://smil.test.local/smil/data/smil/body/**rtsp://172.29.30.131:554/**"/><meta name="errorMessage" content="Error transferring http://smil.test.local/smil/data/smil/body/rtsp://172.29.30.131:554/ - server replied: Not Found"/><meta name="transferLength" content="0"/></metadata></event>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.