52 Commits

Author SHA1 Message Date
Rafał Dzięgiel
e5723cd25a 0.5.1 2022-05-29 14:17:25 +02:00
Rafostar
e7808df7cc plugin: paintable: Fix widget size calculations on non-100% display scaling
Unlike legacy sink that used GLArea, GdkPaintable snapshots without pre-multiplying
sizes with scale factor. Remove scaling multiply of our widget dimensions,
so both video and widget width/height will be calculated correctly.

This fixes both image and black borders displaying issues on displays with
non-100% scaling applied.
2022-05-29 10:19:48 +02:00
Rafał Dzięgiel
8f22b36045 0.5.0 2022-05-28 19:19:05 +02:00
Rafał Dzięgiel
dc257846ce New Crowdin updates (#268)
* New translations com.github.rafostar.Clapper.pot (Romanian)

* New translations com.github.rafostar.Clapper.pot (Korean)

* New translations com.github.rafostar.Clapper.pot (Vietnamese)

* New translations com.github.rafostar.Clapper.pot (Chinese Traditional)

* New translations com.github.rafostar.Clapper.pot (Chinese Simplified)

* New translations com.github.rafostar.Clapper.pot (Ukrainian)

* New translations com.github.rafostar.Clapper.pot (Turkish)

* New translations com.github.rafostar.Clapper.pot (Swedish)

* New translations com.github.rafostar.Clapper.pot (Serbian (Cyrillic))

* New translations com.github.rafostar.Clapper.pot (Russian)

* New translations com.github.rafostar.Clapper.pot (Portuguese)

* New translations com.github.rafostar.Clapper.pot (Polish)

* New translations com.github.rafostar.Clapper.pot (Norwegian)

* New translations com.github.rafostar.Clapper.pot (Dutch)

* New translations com.github.rafostar.Clapper.pot (Japanese)

* New translations com.github.rafostar.Clapper.pot (French)

* New translations com.github.rafostar.Clapper.pot (Italian)

* New translations com.github.rafostar.Clapper.pot (Hungarian)

* New translations com.github.rafostar.Clapper.pot (Hebrew)

* New translations com.github.rafostar.Clapper.pot (Finnish)

* New translations com.github.rafostar.Clapper.pot (Basque)

* New translations com.github.rafostar.Clapper.pot (Greek)

* New translations com.github.rafostar.Clapper.pot (German)

* New translations com.github.rafostar.Clapper.pot (Danish)

* New translations com.github.rafostar.Clapper.pot (Czech)

* New translations com.github.rafostar.Clapper.pot (Catalan)

* New translations com.github.rafostar.Clapper.pot (Arabic)

* New translations com.github.rafostar.Clapper.pot (Afrikaans)

* New translations com.github.rafostar.Clapper.pot (Spanish)

* New translations com.github.rafostar.Clapper.pot (Portuguese, Brazilian)

* New translations com.github.rafostar.Clapper.pot (Italian)

* New translations com.github.rafostar.Clapper.pot (German)
2022-05-27 19:48:48 +02:00
Rafał Dzięgiel
af77873205 plugin: paintable: Remove unused value 2022-05-27 19:46:54 +02:00
Rafał Dzięgiel
5289b2f0a4 plugin: Fix scaled subtitles position on anamorph video
GStreamer does not take pixel aspect ratio into account for overlay rectangles.
If we do so, we end up with subtitles that are displayed off-center.
Behave like any other GStreamer sink on this matter.
2022-05-27 19:38:10 +02:00
Rafał Dzięgiel
87b3fbc15a Update POT file 2022-05-26 18:43:34 +02:00
Rafał Dzięgiel
59ff5bc006 Merge pull request #267 from Rafostar/fix-glx
Fix caps negotiation on GLX
2022-05-26 11:51:11 +02:00
Rafał Dzięgiel
91efc4ecdb plugin: gluploader: Use GLUpload provided propose_allocation method
Instead figuring out what kind of pool we should make just use the upstream provided
functionality that comes as part of GLUpload API.

Fixes uploads with GstVideoGLTextureUploadMeta, which legacy VAAPI plugin uses on GLX.
2022-05-26 10:21:11 +02:00
Rafał Dzięgiel
713449b4ab plugin: sink: Only add pool to query if there is one 2022-05-26 10:17:36 +02:00
Rafał Dzięgiel
3f7ba0674f plugin: importers: Support different template and actual caps
Make a template caps during class_init. It will be used for e.g. gst-inspect-1.0, while do and use an actual caps that current HW can handle.
2022-05-25 20:37:18 +02:00
Rafał Dzięgiel
5b89879031 plugin: gluploader: Remove DMABuf caps features on GLX
GLX cannot do DMABufs. Do not advertise its support in caps, so upstream elements will never try using this kind of memory on GLX.
2022-05-25 15:46:04 +02:00
Rafał Dzięgiel
2385af9b94 Merge pull request #265 from Rafostar/devel
Merge devel branch changes
2022-05-25 10:42:35 +02:00
Rafał Dzięgiel
54e4644236 app: Call window_present without timestamp
GTK4 now handles this internally via xdg-activation. To make it work correctly we should stop using custom timestamp so default handlers will be used.
2022-05-24 18:23:15 +02:00
Rafał Dzięgiel
3c248250f3 plugin: Always make sure we have Gdk display
Give up creating GL context in an unlikely situation that there is no default display
2022-05-24 16:48:00 +02:00
Rafał Dzięgiel
51619cbd2a plugin: Temporarily try to avoid direct DMABuf import on desktop
This tries to avoid "scrambled" image on Linux with Intel GPUs that are mostly used
together with x86 CPUs at the expense of using slightly slower non-direct DMABuf import,
by not going with GLES by default on EGL.

The "GST_GL_API" env can still be used to force one or another context type.

We need for GStreamer to be aware of currently used DRM modifier first. On the other
hand forcing GL everywhere would break most embedded systems that only work with GLES,
so do it for x86 processors only... and pray for it to work.

See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1236
2022-05-24 16:36:43 +02:00
Rafał Dzięgiel
f9e84ac99b plugin: Improve GL context realization code
We only want GLES on EGL display, so check for it one by one instead of always trying to realize GLES with everything that is not a macOS
2022-05-24 16:36:32 +02:00
Rafał Dzięgiel
1bd371dabd app: Always activate before opening files
Make sure app window was created and bring it on top when started with file(s) as args
2022-05-23 15:32:32 +02:00
Rafał Dzięgiel
5f6c0922c0 plugin: Clear paintable importer in dispose
Remove our ref on importer a little earlier, with a lock taken
2022-05-23 15:02:25 +02:00
Rafał Dzięgiel
041deb559c headerbar: Merge code into single subclass
We no longer ship the web app that was reusing parts of this code.
Combine it into single file without additional subclass.
2022-05-23 14:19:37 +02:00
Rafał Dzięgiel
fce8ec59b8 app: Merge code into single subclass
We no longer ship the web app that was reusing parts of this code.
Combine it into single file without additional subclass.

Also put window creation inside first activate code instead of startup
in order to fix running app as a gapplication service.
2022-05-23 14:18:00 +02:00
Rafał Dzięgiel
306505dc4d data: Add missing desktop file options
Mark as DBusActivatable and enable StartupNotify
2022-05-23 11:55:15 +02:00
Rafał Dzięgiel
60234419c2 data: Add DBus service file 2022-05-23 11:54:50 +02:00
Rafał Dzięgiel
c395c6b9be Merge pull request #262 from Rafostar/reloaded
plugin: Make modules management separate per instance
2022-05-20 11:28:27 +02:00
Rafał Dzięgiel
8301cded2f plugin: Make modules management separate per instance
There were various problems with importer loader code. One defect was that
it kept managing a single global list of available importers and marking
which one is currently used on it. This made it not work correctly for
multiple sink instances in single process and was not thread safe.

This commit changes importer loader code into a GstObject subclass, which
keeps its own list of importers per instance and unlike before makes it
possible to free this data from memory when destroyed.

Now only open modules are kept always in memory until process finishes
since we cannot unload them once loaded anyway.
2022-05-20 10:13:14 +02:00
Rafał Dzięgiel
34386bc96c plugin: Use different lock for importer within paintable
This way we can avoid an additional importer ref + unref for every frame draw
2022-05-18 19:25:00 +02:00
Rafał Dzięgiel
2b85afc03e plugin: Do not use weak ref on importer
There is no good reason to keep using weak ref on importer within paintable object. Change that to a gst_object_ref which is faster.
2022-05-18 18:28:20 +02:00
Rafał Dzięgiel
bb56efa705 Merge pull request #261 from Rafostar/adw-fixes
libadwaita CSS fixes
2022-05-18 12:26:52 +02:00
Rafał Dzięgiel
82922e51f9 flatpak: Update GTK4 to 4.6.4
With latest GTK 4.6.4 the issues with opening popovers are finally fixed. Stop patching older version and just build the latest one.
2022-05-18 11:39:07 +02:00
Rafał Dzięgiel
ca64d9d2ee flatpak: Build recent libadwaita version
With updated CSS we use some variables intoduced in stable versions of libadwaita. To make it work properly, stop using alpha.2 and build recent stable version.
2022-05-18 11:39:04 +02:00
Rafostar
2a18c6a374 css: Misc fixes for recent Adwaita theme
Fixes for recent libadwaita provided theme, mainly needed to workaround:
https://gitlab.gnome.org/GNOME/libadwaita/-/issues/454

Devs rejected my idea of fixing it upstream. They said to override it
in my own app. So here it is.
2022-05-18 11:38:56 +02:00
Rafał Dzięgiel
af6cf01c98 player: Remove hardcoded ring buffer value
We should aim to have this as a configurable option.
Until then lets use the default value.
2022-05-17 22:07:21 +02:00
Rafał Dzięgiel
85bdbb1132 plugin: Prefer GL over GLES on macOS
Apple decoder uses rectangle texture-target, which GLES does not support
2022-05-16 19:16:36 +02:00
Rafał Dzięgiel
8e89b0d8ca gschema: Make resume video option disabled by default
A resume video question dialog that keeps poping confuses new Clapper users.
Looks like some spam. Change default option value to be disabled, so people
that are interested in this feature can enable it in preferences.
2022-05-16 09:45:36 +02:00
Rafostar
4e3cc3e23f plugin: Set initial display resolution to 1x1
We do not support zero width/height (described in our caps). Set initial video
dimensions to 1x1. They are going to be updated on first buffer after video info is set.

This avoids running into https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1139
and makes sure we do not do any divisions by zero here either.
2022-05-15 20:02:01 +02:00
Rafostar
c6c43346fa lib: Replace usage of "g_str_equal" with "g_strcmp0"
The first one is meant for hash tables comparisons and does not guard against NULL values (#259).
2022-05-15 14:45:49 +02:00
Rafał Dzięgiel
be58af2256 Merge pull request #256 from Rafostar/gl-win
plugin: Add GL support for Windows OS
2022-05-13 16:34:26 +02:00
Rafał Dzięgiel
343eef5894 plugin: Add GL support for Windows OS
Add support for both WGL and EGL on Win32
2022-05-13 15:17:53 +02:00
Rafał Dzięgiel
04657017f9 Merge pull request #257 from Rafostar/gl-macos
plugin: Add GL support for macOS
2022-05-13 14:12:09 +02:00
Rafał Dzięgiel
1cdaa36559 plugin: Add GL support for macOS 2022-05-13 13:53:35 +02:00
Rafał Dzięgiel
f351982067 plugin: Handle premultiplied alpha in RAW frames
Add support for premultiplied alpha flag detection when creating GdkMemoryTextures.
Also check if overlays have premultiplied alpha and if they do set this flag for
their video info, so it will be detected when creating a GdkMemoryTexture out of them.

Fixes performance issues with karaoke subtitles, as now GTK does not have to perform
unnecessary multiplication.
2022-05-12 18:08:53 +02:00
Rafał Dzięgiel
ae531db2b7 plugin: Have a separate mutex lock in GL base class
Make GL base importer class and all its subclasses that access parent props,
use a different mutex lock then the main importer class.

This way main importer class can continue processing buffers without waiting for
GL-based subclasses, as most GL operations (e.g. upload) are time consuming.
2022-05-11 22:00:49 +02:00
Rafał Dzięgiel
66fb8d4a1f Merge pull request #255 from Rafostar/fixes
Misc fixes
2022-05-11 21:21:33 +02:00
Rafał Dzięgiel
8f0ad12795 meson: Make sink compile on Windows OS
We cannot compile app as a whole on MS Windows yet, but with those changes it is now possible to compile and run our new video sink alone on Windows OS
2022-05-11 18:55:06 +02:00
Rafał Dzięgiel
908a388f68 meson: Give up on building GL base without GL windowing
We do not want to build GL-based importers when GTK GL windowing support is missing,
which might happen because of missing deps or on unsupported platform
2022-05-11 18:55:03 +02:00
Rafał Dzięgiel
7f33db4159 plugin: Fix possible buffer and v_info mismatch 2022-05-11 18:54:48 +02:00
Rafał Dzięgiel
288b829139 Further alter default plugin feature ranks on startup
Too many problems with VAAPI decodebin, meanwhile VA works fine and there is already
a pending MR on GStreamer to enable it by default, so we do that a little early.

We also do promise working HW accel out of box, so enable all common NVDEC elements too.
They can always be disabled back in player preferences window if any problems do happen.

We can now remove the alternations of v4l2codecs as those are PRIMARY+1 by default and we
now require GStreamer 1.20+ so no need for version checking there too.

Fixes #236
2022-05-11 11:50:15 +02:00
Rafał Dzięgiel
aa6d21973c gschema: Disable download buffering by default
We had this option enabled to workaround problems with old YT code.
Adaptive streaming now seems to work correctly, so restoring the
default play flags value.
2022-05-10 13:57:11 +02:00
Rafał Dzięgiel
e506063409 gschema: Remove leftover web app settings 2022-05-10 12:09:30 +02:00
Rafał Dzięgiel
e679430d3e meson: Set plugin option to be auto by default
This should allow to still compile and use the player with the legacy sink, without changing meson default options
2022-05-09 12:39:41 +02:00
Rafał Dzięgiel
4b93d4d132 meson: Cleanup plugin build script 2022-05-08 18:47:13 +02:00
Rafał Dzięgiel
b7b99c20cf meson: Do not go down in lib versioning
Install plugin lib stuff into a dir named "clapper-1.0" instead of "clapper-0.0". Even through our API is still very unstable, we cannot go down with versioning. The sink importers being installed there are not part of public API anyway.
2022-05-08 13:54:55 +02:00
71 changed files with 2820 additions and 3304 deletions

View File

@@ -9,6 +9,41 @@ scrolledwindow scrollbar.vertical slider {
min-height: 16px;
}
/* Consistent scales color */
scale trough highlight {
color: @accent_fg_color;
background-color: @accent_bg_color;
}
/* Consistent radio buttons color */
.osd radio {
color: @accent_fg_color;
background-color: transparent;
background-image: none;
}
.osd radio:hover,
.osd radio:checked {
background-image: image(rgba(255,255,255,0.1));
}
.osd radio:active {
background-image: image(rgba(255,255,255,0.3));
}
/* Adwaita OSD background color is unacceptable:
* https://gitlab.gnome.org/GNOME/libadwaita/-/issues/454 */
box.osd,
.osd popover contents,
.osd popover arrow,
.osdheaderbar button {
background-color: rgba(38,38,38,0.78);
}
.osdheaderbar button:hover,
.osdheaderbar button:checked {
background-color: rgba(63,63,63,0.78);
}
.osdheaderbar button:active {
background-color: rgba(82,82,82,0.78);
}
/* Adwaita is missing osd ListBox */
.clapperplaylist {
background: none;
@@ -59,6 +94,8 @@ popover contents {
}
.popoverseparator separator {
background-color: @insensitive_fg_color;
margin-left: 3px;
margin-right: 3px;
}
/* Rounded corners */
@@ -129,8 +166,9 @@ scale trough slider {
margin-left: 0px;
margin-right: 4px;
border: 2px solid;
min-width: 17px;
min-height: 17px;
min-width: 16px;
min-height: 16px;
box-shadow: none;
}
/* Also affects popover buttons */
@@ -260,7 +298,8 @@ scale trough slider {
min-width: 6px;
}
.overamp trough highlight {
background: @error_color;
color: @error_fg_color;
background-color: @error_bg_color;
}
/* Elapsed Popover */
@@ -323,7 +362,7 @@ scale trough slider {
border: none;
}
.controlsbox {
background: @theme_bg_color;
background: @popover_bg_color;
}
.gpufriendly {
box-shadow: -8px -8px transparent, 8px 8px transparent;

View File

@@ -6,6 +6,8 @@ Categories=GTK;GNOME;AudioVideo;Player;Video;TV;
MimeType=application/claps;application/mpeg4-iod;application/mpeg4-muxcodetable;application/mxf;application/ogg;application/ram;application/sdp;application/streamingmedia;application/vnd.apple.mpegurl;application/vnd.ms-asf;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;application/x-extension-m4a;application/x-extension-mp4;application/x-flac;application/x-flash-video;application/x-matroska;application/x-ogg;application/x-streamingmedia;audio/3gpp;audio/3gpp2;audio/aac;audio/ac3;audio/amr;audio/amr-wb;audio/basic;audio/dv;audio/eac3;audio/flac;audio/m4a;audio/midi;audio/mp1;audio/mp2;audio/mp3;audio/mp4;audio/mpeg;audio/mpegurl;audio/mpg;audio/ogg;audio/opus;audio/scpls;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/vnd.dolby.mlp;audio/vnd.dts;audio/vnd.dts.hd;audio/vnd.rn-realaudio;audio/wav;audio/webm;audio/x-aac;audio/x-aiff;audio/x-ape;audio/x-flac;audio/x-gsm;audio/x-it;audio/x-m4a;audio/x-matroska;audio/x-mod;audio/x-mp1;audio/x-mp2;audio/x-mp3;audio/x-mpeg;audio/x-mpegurl;audio/x-mpg;audio/x-ms-asf;audio/x-ms-wma;audio/x-musepack;audio/x-pn-aiff;audio/x-pn-au;audio/x-pn-realaudio;audio/x-pn-wav;audio/x-real-audio;audio/x-realaudio;audio/x-s3m;audio/x-scpls;audio/x-shorten;audio/x-speex;audio/x-tta;audio/x-vorbis;audio/x-vorbis+ogg;audio/x-wav;audio/x-wavpack;audio/x-xm;video/3gp;video/3gpp;video/3gpp2;video/divx;video/dv;video/fli;video/flv;video/mp2t;video/mp4;video/mp4v-es;video/mpeg;video/mpeg-system;video/msvideo;video/ogg;video/quicktime;video/vnd.mpegurl;video/vnd.rn-realvideo;video/webm;video/x-avi;video/x-flc;video/x-fli;video/x-flv;video/x-m4v;video/x-matroska;video/x-mpeg;video/x-mpeg-system;video/x-mpeg2;video/x-ms-asf;video/x-ms-wm;video/x-ms-wmv;video/x-ms-wmx;video/x-msvideo;video/x-nsv;video/x-ogm+ogg;video/x-theora;video/x-theora+ogg;x-content/audio-cdda;x-content/audio-player;x-content/video-dvd;x-scheme-handler/mms;x-scheme-handler/mmsh;x-scheme-handler/rtmp;x-scheme-handler/rtp;x-scheme-handler/rtsp;
Exec=com.github.rafostar.Clapper %U
Icon=com.github.rafostar.Clapper
DBusActivatable=true
StartupNotify=true
Terminal=false
Type=Application
# Translators: Search terms to find this application. Do NOT translate the semicolons!

View File

@@ -33,7 +33,7 @@
<summary>Unit ID to use with seeking value</summary>
</key>
<key name="resume-enabled" type="b">
<default>true</default>
<default>false</default>
<summary>Ask to resume unfinished video</summary>
</key>
<key name="resume-database" type="s">
@@ -66,14 +66,6 @@
<default>6446</default>
<summary>Listening port to use for incoming WebSocket connections</summary>
</key>
<key name="webapp-enabled" type="b">
<default>false</default>
<summary>Run built-in broadway based web application</summary>
</key>
<key name="webapp-port" type="i">
<default>8086</default>
<summary>Port for running broadwayd service</summary>
</key>
<!-- Tweaks -->
<key name="dark-theme" type="b">
@@ -99,7 +91,7 @@
<summary>Use PipeWire for audio output</summary>
</key>
<key name="play-flags" type="i">
<default>1687</default>
<default>1559</default>
<summary>Set PlayFlags for playbin</summary>
</key>

View File

@@ -48,6 +48,35 @@
</screenshot>
</screenshots>
<releases>
<release version="0.5.1" date="2022-05-29">
<description>
<p>
A quick hotfix release. Fixes problems with new video sink on displays with non-100% scaling applied.
See 0.5.0 version release notes for full recent changelog.
</p>
</description>
</release>
<release version="0.5.0" date="2022-05-28">
<description>
<p>Changes:</p>
<ul>
<li>Includes and uses new, improved GStreamer video sink</li>
<li>All networking ported to libsoup3</li>
<li>A lot of cleanup, including removal of unfinished web application and old YT code</li>
<li>App now supports D-Bus launching (DBusActivatable)</li>
<li>Other small fixes</li>
</ul>
<p>New translations:</p>
<ul>
<li>Arabic</li>
<li>Basque</li>
<li>French</li>
<li>Japanese</li>
<li>Swedish</li>
<li>Turkish</li>
</ul>
</description>
</release>
<release version="0.4.1" date="2021-12-20">
<description>
<p>Fixes:</p>

View File

@@ -0,0 +1,3 @@
[D-BUS Service]
Name=@app_id@
Exec=@bindir@/@app_id@ --gapplication-service

View File

@@ -32,3 +32,15 @@ gnome.compile_resources('com.github.rafostar.Clapper.data',
install: true,
install_dir: pkgdatadir,
)
dbus_conf = configuration_data()
dbus_conf.set('app_id', meson.project_name())
dbus_conf.set('bindir', bindir)
configure_file(
input: 'com.github.rafostar.Clapper.service.in',
output: 'com.github.rafostar.Clapper.service',
configuration: dbus_conf,
install: true,
install_dir: join_paths(datadir, 'dbus-1', 'services'),
)

View File

@@ -2189,7 +2189,7 @@ gst_clapper_subtitle_info_update (GstClapper * self,
g_object_get (G_OBJECT (self->playbin), "current-suburi", &suburi, NULL);
if (suburi) {
if (self->use_playbin3) {
if (g_str_equal (self->subtitle_sid, stream_info->stream_id))
if (!g_strcmp0 (self->subtitle_sid, stream_info->stream_id))
info->language = g_path_get_basename (suburi);
} else {
g_object_get (G_OBJECT (self->playbin), "current-text", &text_index,
@@ -2387,7 +2387,7 @@ gst_clapper_stream_info_find_from_stream_id (GstClapperMediaInfo * media_info,
list = gst_clapper_media_info_get_stream_list (media_info);
for (l = list; l != NULL; l = l->next) {
info = (GstClapperStreamInfo *) l->data;
if (g_str_equal (info->stream_id, stream_id)) {
if (!g_strcmp0 (info->stream_id, stream_id)) {
return info;
}
}
@@ -3550,19 +3550,23 @@ gst_clapper_prepare_gstreamer (void)
GST_DEBUG ("Preparing GStreamer plugins");
/* Too many problems with VAAPI decodebin, meanwhile VA works
* fine and there is already a pending MR on GStreamer to enable
* it by default, so we do that a little early */
if (gst_clapper_has_plugin_with_features ("va")) {
gst_clapper_set_feature_rank_versioned ("vah264dec", rank, 1, 19, 1);
gst_clapper_set_feature_rank_versioned ("vampeg2dec", rank, 1, 19, 1);
gst_clapper_set_feature_rank ("vampeg2dec", rank);
gst_clapper_set_feature_rank ("vah264dec", rank);
gst_clapper_set_feature_rank ("vah265dec", rank);
gst_clapper_set_feature_rank ("vavp8dec", rank);
gst_clapper_set_feature_rank ("vavp9dec", rank);
gst_clapper_set_feature_rank ("vaav1dec", rank);
}
/* We do promise working HW accel out of box, so enable NVDEC too */
if (gst_clapper_has_plugin_with_features ("nvcodec")) {
gst_clapper_set_feature_rank ("nvh264dec", rank + 4);
gst_clapper_set_feature_rank ("nvh265dec", rank + 4);
}
if (gst_clapper_has_plugin_with_features ("v4l2codecs")) {
if (!gst_clapper_set_feature_rank_versioned ("v4l2slh264dec", rank + 10, 1, 19, 1))
gst_clapper_set_feature_rank ("v4l2slh264dec", GST_RANK_NONE);
if (!gst_clapper_set_feature_rank_versioned ("v4l2slvp8dec", rank + 10, 1, 19, 2))
gst_clapper_set_feature_rank ("v4l2slvp8dec", GST_RANK_NONE);
gst_clapper_set_feature_rank ("nvvp8dec", rank + 4);
gst_clapper_set_feature_rank ("nvvp9dec", rank + 4);
}
/* After setting defaults, update them from ENV */

View File

@@ -43,6 +43,10 @@ if not gtk4_dep.version().version_compare('>=4.0.0')
error('GTK4 version on this system is too old')
endif
if not gir.found()
error('Cannot build lib without GIR support')
endif
if gst_gl_have_window_x11 and (gst_gl_have_platform_egl or gst_gl_have_platform_glx)
gtk_x11_dep = dependency('gtk4-x11', required: false)
if gtk_x11_dep.found()
@@ -76,6 +80,18 @@ gstclapper_mpris_gdbus = gnome.gdbus_codegen('gstclapper-mpris-gdbus',
namespace: 'GstClapperMpris'
)
gstclapper_deps = [
gtk4_dep, glib_dep, gio_dep,
gstbase_dep, gstvideo_dep, gstaudio_dep,
gsttag_dep, gstpbutils_dep, libm
] + gtk_deps
if os_unix
gstclapper_deps += giounix_dep
else
gstclapper_deps += giowin_dep
endif
gstclapper = library('gstclapper-' + api_version,
gstclapper_sources + gstclapper_mpris_gdbus,
c_args: gstclapper_defines,
@@ -84,9 +100,7 @@ gstclapper = library('gstclapper-' + api_version,
version: libversion,
install: true,
install_dir: pkglibdir,
dependencies: [gtk4_dep, glib_dep, gio_dep, giounix_dep,
gstbase_dep, gstvideo_dep, gstaudio_dep,
gsttag_dep, gstpbutils_dep, libm] + gtk_deps,
dependencies: gstclapper_deps,
)
clapper_gir = gnome.generate_gir(gstclapper,

4
lib/gst/meson.build vendored
View File

@@ -2,6 +2,4 @@ if get_option('lib')
subdir('clapper')
endif
if not get_option('gst-plugin').disabled()
subdir('plugin')
endif
subdir('plugin')

View File

@@ -119,6 +119,8 @@ gst_clapper_importer_finalize (GObject *object)
GST_TRACE ("Finalize");
gst_clear_caps (&self->pending_caps);
gst_clear_buffer (&self->pending_buffer);
gst_clear_buffer (&self->buffer);
@@ -246,6 +248,9 @@ gst_clapper_importer_prepare_overlays_locked (GstClapperImporter *self)
if ((v_meta = gst_buffer_get_video_meta (comp_buffer))) {
gst_video_info_set_format (&v_info, v_meta->format, v_meta->width, v_meta->height);
v_info.stride[0] = v_meta->stride[0];
if (alpha_flags & GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA)
v_info.flags |= GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA;
}
if (G_UNLIKELY (!gst_video_frame_map (&comp_frame, &v_info, comp_buffer, GST_MAP_READ)))
@@ -320,7 +325,7 @@ gst_clapper_importer_set_caps (GstClapperImporter *self, GstCaps *caps)
GstClapperImporterClass *importer_class = GST_CLAPPER_IMPORTER_GET_CLASS (self);
GST_OBJECT_LOCK (self);
self->has_pending_v_info = gst_video_info_from_caps (&self->pending_v_info, caps);
gst_caps_replace (&self->pending_caps, caps);
GST_OBJECT_UNLOCK (self);
if (importer_class->set_caps)
@@ -330,10 +335,14 @@ gst_clapper_importer_set_caps (GstClapperImporter *self, GstCaps *caps)
void
gst_clapper_importer_set_buffer (GstClapperImporter *self, GstBuffer *buffer)
{
/* Both overlays and pending buffer must be
* set within a single importer locking */
GST_OBJECT_LOCK (self);
/* Pending v_info, buffer and overlays must be
* set within a single importer locking */
if (self->pending_caps) {
self->has_pending_v_info = gst_video_info_from_caps (&self->pending_v_info, self->pending_caps);
gst_clear_caps (&self->pending_caps);
}
gst_buffer_replace (&self->pending_buffer, buffer);
gst_clapper_importer_prepare_overlays_locked (self);
@@ -371,7 +380,7 @@ gst_clapper_importer_handle_context_query (GstClapperImporter *self,
void
gst_clapper_importer_snapshot (GstClapperImporter *self, GdkSnapshot *snapshot,
gdouble width, gdouble height, gfloat scale_x, gfloat scale_y)
gdouble width, gdouble height)
{
guint i;
gboolean buffer_changed;
@@ -380,15 +389,13 @@ gst_clapper_importer_snapshot (GstClapperImporter *self, GdkSnapshot *snapshot,
* lock ourselves to make sure everything matches */
GST_OBJECT_LOCK (self);
buffer_changed = gst_buffer_replace (&self->buffer, self->pending_buffer);
/* Only replace v_info when buffer changed, this way
* we still use old (correct) v_info when resizing */
if (buffer_changed && self->has_pending_v_info) {
if (self->has_pending_v_info) {
self->v_info = self->pending_v_info;
self->has_pending_v_info = FALSE;
}
buffer_changed = gst_buffer_replace (&self->buffer, self->pending_buffer);
/* Ref overlays associated with current buffer */
for (i = 0; i < self->pending_overlays->len; i++) {
GstClapperGdkOverlay *overlay = g_ptr_array_index (self->pending_overlays, i);
@@ -417,12 +424,21 @@ gst_clapper_importer_snapshot (GstClapperImporter *self, GdkSnapshot *snapshot,
if (G_LIKELY (self->texture)) {
gtk_snapshot_append_texture (snapshot, self->texture, &GRAPHENE_RECT_INIT (0, 0, width, height));
for (i = 0; i < self->overlays->len; i++) {
GstClapperGdkOverlay *overlay = g_ptr_array_index (self->overlays, i);
if (self->overlays->len > 0) {
gfloat scale_x, scale_y;
gtk_snapshot_append_texture (snapshot, overlay->texture,
&GRAPHENE_RECT_INIT (overlay->x * scale_x, overlay->y * scale_y,
overlay->width * scale_x, overlay->height * scale_y));
/* FIXME: GStreamer scales subtitles without considering pixel aspect ratio.
* See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/20 */
scale_x = (gfloat) width / GST_VIDEO_INFO_WIDTH (&self->v_info);
scale_y = (gfloat) height / GST_VIDEO_INFO_HEIGHT (&self->v_info);
for (i = 0; i < self->overlays->len; i++) {
GstClapperGdkOverlay *overlay = g_ptr_array_index (self->overlays, i);
gtk_snapshot_append_texture (snapshot, overlay->texture,
&GRAPHENE_RECT_INIT (overlay->x * scale_x, overlay->y * scale_y,
overlay->width * scale_x, overlay->height * scale_y));
}
}
} else {
GST_ERROR_OBJECT (self, "Failed import of %" GST_PTR_FORMAT, self->buffer);

View File

@@ -36,7 +36,8 @@ G_BEGIN_DECLS
#define GST_CLAPPER_IMPORTER_DEFINE(camel,lower,type) \
G_DEFINE_TYPE (camel, lower, type) \
G_MODULE_EXPORT GstClapperImporter *make_importer (void); \
G_MODULE_EXPORT GstCaps *make_caps (GstRank *rank, GStrv *context_types);
G_MODULE_EXPORT GstCaps *make_caps (gboolean is_template, \
GstRank *rank, GStrv *context_types);
typedef struct _GstClapperImporter GstClapperImporter;
typedef struct _GstClapperImporterClass GstClapperImporterClass;
@@ -49,6 +50,7 @@ struct _GstClapperImporter
{
GstObject parent;
GstCaps *pending_caps;
GstBuffer *pending_buffer, *buffer;
GPtrArray *pending_overlays, *overlays;
GstVideoInfo pending_v_info, v_info;
@@ -97,6 +99,6 @@ void gst_clapper_importer_add_allocation_metas (GstClapperImporter
void gst_clapper_importer_set_caps (GstClapperImporter *importer, GstCaps *caps);
void gst_clapper_importer_set_buffer (GstClapperImporter *importer, GstBuffer *buffer);
void gst_clapper_importer_snapshot (GstClapperImporter *importer, GdkSnapshot *snapshot, gdouble width, gdouble height, gfloat scale_x, gfloat scale_y);
void gst_clapper_importer_snapshot (GstClapperImporter *importer, GdkSnapshot *snapshot, gdouble width, gdouble height);
G_END_DECLS

View File

@@ -29,13 +29,15 @@
#define GST_CAT_DEFAULT gst_clapper_importer_loader_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
#define parent_class gst_clapper_importer_loader_parent_class
G_DEFINE_TYPE (GstClapperImporterLoader, gst_clapper_importer_loader, GST_TYPE_OBJECT);
typedef GstClapperImporter* (* MakeImporter) (void);
typedef GstCaps* (* MakeCaps) (GstRank *rank, GStrv *context_types);
typedef GstCaps* (* MakeCaps) (gboolean is_template, GstRank *rank, GStrv *context_types);
typedef struct
{
gchar *module_path;
GModule *open_module;
GModule *module;
GstCaps *caps;
GstRank rank;
GStrv context_types;
@@ -44,142 +46,74 @@ typedef struct
static void
gst_clapper_importer_data_free (GstClapperImporterData *data)
{
g_free (data->module_path);
if (data->open_module)
g_module_close (data->open_module);
GST_TRACE ("Freeing importer data: %" GST_PTR_FORMAT, data);
gst_clear_caps (&data->caps);
g_strfreev (data->context_types);
g_free (data);
}
static gboolean
_open_importer (GstClapperImporterData *data)
{
g_return_val_if_fail (data && data->module_path, FALSE);
/* Already open */
if (data->open_module)
return TRUE;
GST_DEBUG ("Opening module: %s", data->module_path);
data->open_module = g_module_open (data->module_path, G_MODULE_BIND_LAZY);
if (!data->open_module) {
GST_WARNING ("Could not load importer: %s, reason: %s",
data->module_path, g_module_error ());
return FALSE;
}
GST_DEBUG ("Opened importer module");
/* Make sure module stays loaded. Seems to be needed for
* reusing exported symbols from the same module again */
g_module_make_resident (data->open_module);
return TRUE;
}
static void
_close_importer (GstClapperImporterData *data)
{
if (!data || !data->open_module)
return;
if (G_LIKELY (g_module_close (data->open_module)))
GST_DEBUG ("Closed module: %s", data->module_path);
else
GST_WARNING ("Could not close importer module");
data->open_module = NULL;
}
static GstClapperImporter *
_obtain_importer_internal (GstClapperImporterData *data)
{
MakeImporter make_importer;
GstClapperImporter *importer = NULL;
if (!_open_importer (data))
goto finish;
if (!g_module_symbol (data->open_module, "make_importer", (gpointer *) &make_importer)
|| make_importer == NULL) {
GST_WARNING ("Make function missing in importer");
goto fail;
}
/* Do not close the module, we are gonna continue using it */
if ((importer = make_importer ()))
goto finish;
fail:
_close_importer (data);
finish:
return importer;
}
static GstClapperImporterData *
_fill_importer_data (const gchar *module_path)
_obtain_importer_data (GModule *module, gboolean is_template)
{
MakeCaps make_caps;
GstClapperImporterData *data;
data = g_new0 (GstClapperImporterData, 1);
data->module_path = g_strdup (module_path);
data->open_module = g_module_open (data->module_path, G_MODULE_BIND_LAZY);
if (!data->open_module)
goto fail;
if (!g_module_symbol (data->open_module, "make_caps", (gpointer *) &make_caps)
if (!g_module_symbol (module, "make_caps", (gpointer *) &make_caps)
|| make_caps == NULL) {
GST_WARNING ("Make caps function missing in importer");
goto fail;
return NULL;
}
data->caps = make_caps (&data->rank, &data->context_types);
GST_DEBUG ("Caps reading %ssuccessful", data->caps ? "" : "un");
data = g_new0 (GstClapperImporterData, 1);
data->module = module;
data->caps = make_caps (is_template, &data->rank, &data->context_types);
if (!data->caps)
goto fail;
GST_TRACE ("Created importer data: %" GST_PTR_FORMAT, data);
/* Once we obtain importer data, close module afterwards */
_close_importer (data);
if (G_UNLIKELY (!data->caps)) {
GST_ERROR ("Invalid importer without caps: %s",
g_module_name (data->module));
gst_clapper_importer_data_free (data);
return NULL;
}
GST_DEBUG ("Found importer: %s, caps: %" GST_PTR_FORMAT,
g_module_name (data->module), data->caps);
return data;
fail:
gst_clapper_importer_data_free (data);
return NULL;
}
static gint
_sort_importers_cb (gconstpointer a, gconstpointer b)
static GstClapperImporter *
_obtain_importer_internal (GModule *module)
{
GstClapperImporterData *data_a, *data_b;
MakeImporter make_importer;
GstClapperImporter *importer;
data_a = *((GstClapperImporterData **) a);
data_b = *((GstClapperImporterData **) b);
if (!g_module_symbol (module, "make_importer", (gpointer *) &make_importer)
|| make_importer == NULL) {
GST_WARNING ("Make function missing in importer");
return NULL;
}
return (data_b->rank - data_a->rank);
importer = make_importer ();
GST_TRACE ("Created importer: %" GST_PTR_FORMAT, importer);
return importer;
}
static gpointer
_obtain_available_importers (G_GNUC_UNUSED gpointer data)
_obtain_available_modules_once (G_GNUC_UNUSED gpointer data)
{
GPtrArray *importers;
GPtrArray *modules;
GFile *dir;
GFileEnumerator *dir_enum;
GError *error = NULL;
importers = g_ptr_array_new_with_free_func (
(GDestroyNotify) gst_clapper_importer_data_free);
GST_INFO ("Checking available clapper sink importers");
GST_INFO ("Preparing modules");
modules = g_ptr_array_new ();
dir = g_file_new_for_path (CLAPPER_SINK_IMPORTER_PATH);
if ((dir_enum = g_file_enumerate_children (dir,
@@ -187,7 +121,7 @@ _obtain_available_importers (G_GNUC_UNUSED gpointer data)
G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &error))) {
while (TRUE) {
GFileInfo *info = NULL;
GstClapperImporterData *data;
GModule *module;
gchar *module_path;
const gchar *module_name;
@@ -201,16 +135,17 @@ _obtain_available_importers (G_GNUC_UNUSED gpointer data)
continue;
module_path = g_module_build_path (CLAPPER_SINK_IMPORTER_PATH, module_name);
data = _fill_importer_data (module_path);
module = g_module_open (module_path, G_MODULE_BIND_LAZY);
g_free (module_path);
if (!data) {
GST_WARNING ("Could not read importer data: %s", module_name);
if (!module) {
GST_WARNING ("Could not read module: %s, reason: %s",
module_name, g_module_error ());
continue;
}
GST_INFO ("Found importer: %s, caps: %" GST_PTR_FORMAT, module_name, data->caps);
g_ptr_array_add (importers, data);
GST_INFO ("Found module: %s", module_name);
g_ptr_array_add (modules, module);
}
g_object_unref (dir_enum);
@@ -219,41 +154,118 @@ _obtain_available_importers (G_GNUC_UNUSED gpointer data)
g_object_unref (dir);
if (error) {
GST_ERROR ("Could not load importer, reason: %s",
GST_ERROR ("Could not load module, reason: %s",
(error->message) ? error->message : "unknown");
g_error_free (error);
}
return modules;
}
static const GPtrArray *
gst_clapper_importer_loader_get_available_modules (void)
{
static GOnce once = G_ONCE_INIT;
g_once (&once, _obtain_available_modules_once, NULL);
return (const GPtrArray *) once.retval;
}
static gint
_sort_importers_cb (gconstpointer a, gconstpointer b)
{
GstClapperImporterData *data_a, *data_b;
data_a = *((GstClapperImporterData **) a);
data_b = *((GstClapperImporterData **) b);
return (data_b->rank - data_a->rank);
}
static GPtrArray *
_obtain_available_importers (gboolean is_template)
{
const GPtrArray *modules;
GPtrArray *importers;
guint i;
GST_DEBUG ("Checking available importers");
modules = gst_clapper_importer_loader_get_available_modules ();
importers = g_ptr_array_new_with_free_func (
(GDestroyNotify) gst_clapper_importer_data_free);
for (i = 0; i < modules->len; i++) {
GModule *module = g_ptr_array_index (modules, i);
GstClapperImporterData *data;
if ((data = _obtain_importer_data (module, is_template)))
g_ptr_array_add (importers, data);
}
g_ptr_array_sort (importers, (GCompareFunc) _sort_importers_cb);
GST_DEBUG ("Found %i available importers", importers->len);
return importers;
}
static const GPtrArray *
gst_clapper_importer_loader_get_available_importers (void)
GstClapperImporterLoader *
gst_clapper_importer_loader_new (void)
{
static GOnce once = G_ONCE_INIT;
g_once (&once, _obtain_available_importers, NULL);
return (const GPtrArray *) once.retval;
return g_object_new (GST_TYPE_CLAPPER_IMPORTER_LOADER, NULL);
}
static GstClapperImporterData *
_find_open_importer_data (const GPtrArray *importers)
static GstCaps *
_make_caps_for_importers (const GPtrArray *importers)
{
GstCaps *caps = gst_caps_new_empty ();
guint i;
for (i = 0; i < importers->len; i++) {
GstClapperImporterData *data = g_ptr_array_index (importers, i);
if (data->open_module)
return data;
gst_caps_append (caps, gst_caps_ref (data->caps));
}
return NULL;
return caps;
}
static GstClapperImporterData *
GstPadTemplate *
gst_clapper_importer_loader_make_sink_pad_template (void)
{
GPtrArray *importers;
GstCaps *caps;
GstPadTemplate *templ;
/* This is only called once from sink class init function */
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "clapperimporterloader", 0,
"Clapper Importer Loader");
GST_DEBUG ("Making sink pad template");
importers = _obtain_available_importers (TRUE);
caps = _make_caps_for_importers (importers);
g_ptr_array_unref (importers);
if (G_UNLIKELY (gst_caps_is_empty (caps)))
gst_caps_append (caps, gst_caps_new_any ());
templ = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, caps);
gst_caps_unref (caps);
GST_TRACE ("Created sink pad template");
return templ;
}
GstCaps *
gst_clapper_importer_loader_make_actual_caps (GstClapperImporterLoader *self)
{
return _make_caps_for_importers (self->importers);
}
static const GstClapperImporterData *
_get_importer_data_for_caps (const GPtrArray *importers, const GstCaps *caps)
{
guint i;
@@ -270,7 +282,7 @@ _get_importer_data_for_caps (const GPtrArray *importers, const GstCaps *caps)
return NULL;
}
static GstClapperImporterData *
static const GstClapperImporterData *
_get_importer_data_for_context_type (const GPtrArray *importers, const gchar *context_type)
{
guint i;
@@ -293,125 +305,125 @@ _get_importer_data_for_context_type (const GPtrArray *importers, const gchar *co
return NULL;
}
void
gst_clapper_importer_loader_unload_all (void)
{
const GPtrArray *importers;
guint i;
importers = gst_clapper_importer_loader_get_available_importers ();
GST_TRACE ("Unloading all open modules");
for (i = 0; i < importers->len; i++) {
GstClapperImporterData *data = g_ptr_array_index (importers, i);
_close_importer (data);
}
}
GstPadTemplate *
gst_clapper_importer_loader_make_sink_pad_template (void)
{
const GPtrArray *importers;
GstCaps *sink_caps;
GstPadTemplate *templ;
guint i;
/* This is only called once from sink class init function */
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "clapperimporterloader", 0,
"Clapper Importer Loader");
importers = gst_clapper_importer_loader_get_available_importers ();
sink_caps = gst_caps_new_empty ();
for (i = 0; i < importers->len; i++) {
GstClapperImporterData *data = g_ptr_array_index (importers, i);
GstCaps *copied_caps;
copied_caps = gst_caps_copy (data->caps);
gst_caps_append (sink_caps, copied_caps);
}
if (G_UNLIKELY (gst_caps_is_empty (sink_caps)))
gst_caps_append (sink_caps, gst_caps_new_any ());
templ = gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, sink_caps);
gst_caps_unref (sink_caps);
return templ;
}
static gboolean
_find_importer_internal (GstCaps *caps, GstQuery *query, GstClapperImporter **importer)
_find_importer_internal (GstClapperImporterLoader *self,
GstCaps *caps, GstQuery *query, GstClapperImporter **importer)
{
const GPtrArray *importers;
GstClapperImporterData *old_data = NULL, *new_data = NULL;
const GstClapperImporterData *data = NULL;
GstClapperImporter *found_importer = NULL;
importers = gst_clapper_importer_loader_get_available_importers ();
old_data = _find_open_importer_data (importers);
GST_OBJECT_LOCK (self);
if (caps) {
GST_DEBUG ("Requested importer for caps: %" GST_PTR_FORMAT, caps);
new_data = _get_importer_data_for_caps (importers, caps);
GST_DEBUG_OBJECT (self, "Requested importer for caps: %" GST_PTR_FORMAT, caps);
data = _get_importer_data_for_caps (self->importers, caps);
} else if (query) {
const gchar *context_type;
gst_query_parse_context_type (query, &context_type);
GST_DEBUG ("Requested importer for context: %s", context_type);
new_data = _get_importer_data_for_context_type (importers, context_type);
/* In case missing importer for context query, leave the old one.
* We should allow some queries to go through unresponded */
if (!new_data)
new_data = old_data;
GST_DEBUG_OBJECT (self, "Requested importer for context: %s", context_type);
data = _get_importer_data_for_context_type (self->importers, context_type);
}
GST_LOG ("Old importer path: %s, new path: %s",
(old_data != NULL) ? old_data->module_path : NULL,
(new_data != NULL) ? new_data->module_path : NULL);
if (old_data == new_data) {
GST_DEBUG ("No importer change");
GST_LOG_OBJECT (self, "Old importer path: %s, new path: %s",
(self->last_module) ? g_module_name (self->last_module) : NULL,
(data) ? g_module_name (data->module) : NULL);
if (*importer && caps)
if (!data) {
/* In case of missing importer for context query, leave the old one.
* We should allow some queries to go through unresponded */
if (query)
GST_DEBUG_OBJECT (self, "No importer for query, leaving old one");
else
gst_clear_object (importer);
goto finish;
}
if (*importer && (self->last_module == data->module)) {
GST_DEBUG_OBJECT (self, "No importer change");
if (caps)
gst_clapper_importer_set_caps (*importer, caps);
return (*importer != NULL);
goto finish;
}
if (new_data) {
found_importer = _obtain_importer_internal (new_data);
found_importer = _obtain_importer_internal (data->module);
if (*importer && found_importer)
gst_clapper_importer_share_data (*importer, found_importer);
}
if (*importer && found_importer)
gst_clapper_importer_share_data (*importer, found_importer);
gst_clear_object (importer);
_close_importer (old_data);
if (found_importer && gst_clapper_importer_prepare (found_importer)) {
if (caps)
gst_clapper_importer_set_caps (found_importer, caps);
if (!found_importer || !gst_clapper_importer_prepare (found_importer)) {
gst_clear_object (&found_importer);
*importer = found_importer;
return TRUE;
goto finish;
}
gst_clear_object (&found_importer);
_close_importer (new_data);
if (caps)
gst_clapper_importer_set_caps (found_importer, caps);
return FALSE;
*importer = found_importer;
finish:
self->last_module = (*importer && data)
? data->module
: NULL;
GST_OBJECT_UNLOCK (self);
return (*importer != NULL);
}
gboolean
gst_clapper_importer_loader_find_importer_for_caps (GstCaps *caps, GstClapperImporter **importer)
gst_clapper_importer_loader_find_importer_for_caps (GstClapperImporterLoader *self,
GstCaps *caps, GstClapperImporter **importer)
{
return _find_importer_internal (caps, NULL, importer);
return _find_importer_internal (self, caps, NULL, importer);
}
gboolean
gst_clapper_importer_loader_find_importer_for_context_query (GstQuery *query, GstClapperImporter **importer)
gst_clapper_importer_loader_find_importer_for_context_query (GstClapperImporterLoader *self,
GstQuery *query, GstClapperImporter **importer)
{
return _find_importer_internal (NULL, query, importer);
return _find_importer_internal (self, NULL, query, importer);
}
static void
gst_clapper_importer_loader_init (GstClapperImporterLoader *self)
{
}
static void
gst_clapper_importer_loader_constructed (GObject *object)
{
GstClapperImporterLoader *self = GST_CLAPPER_IMPORTER_LOADER_CAST (object);
self->importers = _obtain_available_importers (FALSE);
GST_CALL_PARENT (G_OBJECT_CLASS, constructed, (object));
}
static void
gst_clapper_importer_loader_finalize (GObject *object)
{
GstClapperImporterLoader *self = GST_CLAPPER_IMPORTER_LOADER_CAST (object);
GST_TRACE ("Finalize");
g_ptr_array_unref (self->importers);
GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object));
}
static void
gst_clapper_importer_loader_class_init (GstClapperImporterLoaderClass *klass)
{
GObjectClass *gobject_class = (GObjectClass *) klass;
gobject_class->constructed = gst_clapper_importer_loader_constructed;
gobject_class->finalize = gst_clapper_importer_loader_finalize;
}

View File

@@ -25,12 +25,27 @@
G_BEGIN_DECLS
GstPadTemplate * gst_clapper_importer_loader_make_sink_pad_template (void);
#define GST_TYPE_CLAPPER_IMPORTER_LOADER (gst_clapper_importer_loader_get_type())
G_DECLARE_FINAL_TYPE (GstClapperImporterLoader, gst_clapper_importer_loader, GST, CLAPPER_IMPORTER_LOADER, GstObject)
gboolean gst_clapper_importer_loader_find_importer_for_caps (GstCaps *caps, GstClapperImporter **importer);
#define GST_CLAPPER_IMPORTER_LOADER_CAST(obj) ((GstClapperImporterLoader *)(obj))
gboolean gst_clapper_importer_loader_find_importer_for_context_query (GstQuery *query, GstClapperImporter **importer);
struct _GstClapperImporterLoader
{
GstObject parent;
void gst_clapper_importer_loader_unload_all (void);
GModule *last_module;
GPtrArray *importers;
};
GstClapperImporterLoader * gst_clapper_importer_loader_new (void);
GstPadTemplate * gst_clapper_importer_loader_make_sink_pad_template (void);
GstCaps * gst_clapper_importer_loader_make_actual_caps (GstClapperImporterLoader *loader);
gboolean gst_clapper_importer_loader_find_importer_for_caps (GstClapperImporterLoader *loader, GstCaps *caps, GstClapperImporter **importer);
gboolean gst_clapper_importer_loader_find_importer_for_context_query (GstClapperImporterLoader *loader, GstQuery *query, GstClapperImporter **importer);
G_END_DECLS

View File

@@ -53,14 +53,18 @@ gst_clapper_paintable_class_init (GstClapperPaintableClass *klass)
static void
gst_clapper_paintable_init (GstClapperPaintable *self)
{
self->display_width = 1;
self->display_height = 1;
self->display_aspect_ratio = 1.0;
self->par_n = DEFAULT_PAR_N;
self->par_d = DEFAULT_PAR_D;
self->pixel_aspect = ((gdouble) self->par_d / self->par_n);
g_mutex_init (&self->lock);
g_mutex_init (&self->importer_lock);
gst_video_info_init (&self->v_info);
g_weak_ref_init (&self->widget, NULL);
g_weak_ref_init (&self->importer, NULL);
gdk_rgba_parse (&self->bg, "black");
}
@@ -79,6 +83,10 @@ gst_clapper_paintable_dispose (GObject *object)
GST_CLAPPER_PAINTABLE_UNLOCK (self);
GST_CLAPPER_PAINTABLE_IMPORTER_LOCK (self);
gst_clear_object (&self->importer);
GST_CLAPPER_PAINTABLE_IMPORTER_UNLOCK (self);
GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object));
}
@@ -90,8 +98,9 @@ gst_clapper_paintable_finalize (GObject *object)
GST_TRACE ("Finalize");
g_weak_ref_clear (&self->widget);
g_weak_ref_clear (&self->importer);
g_mutex_clear (&self->lock);
g_mutex_clear (&self->importer_lock);
GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object));
}
@@ -149,8 +158,6 @@ invalidate_paintable_size_internal (GstClapperPaintable *self)
display_ratio_num = self->display_ratio_num;
display_ratio_den = self->display_ratio_den;
self->pixel_aspect = ((gdouble) self->par_d / self->par_n);
GST_CLAPPER_PAINTABLE_UNLOCK (self);
if (video_height % display_ratio_den == 0) {
@@ -232,7 +239,9 @@ gst_clapper_paintable_set_widget (GstClapperPaintable *self, GtkWidget *widget)
void
gst_clapper_paintable_set_importer (GstClapperPaintable *self, GstClapperImporter *importer)
{
g_weak_ref_set (&self->importer, importer);
GST_CLAPPER_PAINTABLE_IMPORTER_LOCK (self);
gst_object_replace ((GstObject **) &self->importer, GST_OBJECT_CAST (importer));
GST_CLAPPER_PAINTABLE_IMPORTER_UNLOCK (self);
}
void
@@ -321,7 +330,6 @@ gst_clapper_paintable_snapshot_internal (GstClapperPaintable *self,
GdkSnapshot *snapshot, gdouble width, gdouble height,
gint widget_width, gint widget_height)
{
GstClapperImporter *importer;
gfloat scale_x, scale_y;
GST_LOG_OBJECT (self, "Snapshot");
@@ -347,14 +355,16 @@ gst_clapper_paintable_snapshot_internal (GstClapperPaintable *self,
}
}
if ((importer = g_weak_ref_get (&self->importer))) {
gst_clapper_importer_snapshot (importer, snapshot, width, height,
scale_x * self->pixel_aspect, scale_y);
g_object_unref (importer);
GST_CLAPPER_PAINTABLE_IMPORTER_LOCK (self);
if (self->importer) {
gst_clapper_importer_snapshot (self->importer, snapshot, width, height);
} else {
GST_LOG_OBJECT (self, "No texture importer, drawing black");
gtk_snapshot_append_color (snapshot, &self->bg, &GRAPHENE_RECT_INIT (0, 0, width, height));
}
GST_CLAPPER_PAINTABLE_IMPORTER_UNLOCK (self);
}
static void
@@ -366,11 +376,8 @@ gst_clapper_paintable_snapshot (GdkPaintable *paintable,
gint widget_width = 0, widget_height = 0;
if ((widget = g_weak_ref_get (&self->widget))) {
gint scale_factor;
scale_factor = gtk_widget_get_scale_factor (widget);
widget_width = gtk_widget_get_width (widget) * scale_factor;
widget_height = gtk_widget_get_height (widget) * scale_factor;
widget_width = gtk_widget_get_width (widget);
widget_height = gtk_widget_get_height (widget);
g_object_unref (widget);
}

View File

@@ -36,24 +36,27 @@ G_DECLARE_FINAL_TYPE (GstClapperPaintable, gst_clapper_paintable, GST, CLAPPER_P
#define GST_CLAPPER_PAINTABLE_LOCK(obj) g_mutex_lock (GST_CLAPPER_PAINTABLE_GET_LOCK(obj))
#define GST_CLAPPER_PAINTABLE_UNLOCK(obj) g_mutex_unlock (GST_CLAPPER_PAINTABLE_GET_LOCK(obj))
#define GST_CLAPPER_PAINTABLE_IMPORTER_GET_LOCK(obj) (&GST_CLAPPER_PAINTABLE_CAST(obj)->importer_lock)
#define GST_CLAPPER_PAINTABLE_IMPORTER_LOCK(obj) g_mutex_lock (GST_CLAPPER_PAINTABLE_IMPORTER_GET_LOCK(obj))
#define GST_CLAPPER_PAINTABLE_IMPORTER_UNLOCK(obj) g_mutex_unlock (GST_CLAPPER_PAINTABLE_IMPORTER_GET_LOCK(obj))
struct _GstClapperPaintable
{
GObject parent;
GMutex lock;
GMutex importer_lock;
GstVideoInfo v_info;
GdkRGBA bg;
GWeakRef widget, importer;
GWeakRef widget;
GstClapperImporter *importer;
/* Sink properties */
gint par_n, par_d;
/* For drawing overlays */
gdouble pixel_aspect;
/* Resize */
gboolean pending_resize;
guint display_ratio_num;

View File

@@ -22,7 +22,6 @@
#endif
#include "gstclappersink.h"
#include "gstclapperimporterloader.h"
#include "gstgtkutils.h"
#define DEFAULT_FORCE_ASPECT_RATIO TRUE
@@ -413,7 +412,6 @@ static gboolean
gst_clapper_sink_propose_allocation (GstBaseSink *bsink, GstQuery *query)
{
GstClapperSink *self = GST_CLAPPER_SINK_CAST (bsink);
GstBufferPool *pool = NULL;
GstCaps *caps;
GstVideoInfo info;
guint size, min_buffers;
@@ -438,6 +436,7 @@ gst_clapper_sink_propose_allocation (GstBaseSink *bsink, GstQuery *query)
min_buffers = 3;
if (need_pool) {
GstBufferPool *pool;
GstStructure *config = NULL;
GST_DEBUG_OBJECT (self, "Need to create buffer pool");
@@ -459,16 +458,15 @@ gst_clapper_sink_propose_allocation (GstBaseSink *bsink, GstQuery *query)
GST_ERROR_OBJECT (self, "Failed to set config");
return FALSE;
}
gst_query_add_allocation_pool (query, pool, size, min_buffers, 0);
gst_object_unref (pool);
} else if (config) {
GST_WARNING_OBJECT (self, "Got config without a pool to apply it");
gst_structure_free (config);
}
}
gst_query_add_allocation_pool (query, pool, size, min_buffers, 0);
if (pool)
gst_object_unref (pool);
GST_CLAPPER_SINK_LOCK (self);
gst_clapper_importer_add_allocation_metas (self->importer, query);
GST_CLAPPER_SINK_UNLOCK (self);
@@ -494,7 +492,7 @@ gst_clapper_sink_query (GstBaseSink *bsink, GstQuery *query)
/* Some random context query in the middle of playback
* should not trigger importer replacement */
if (is_inactive)
gst_clapper_importer_loader_find_importer_for_context_query (query, &self->importer);
gst_clapper_importer_loader_find_importer_for_context_query (self->loader, query, &self->importer);
if (self->importer)
res = gst_clapper_importer_handle_context_query (self->importer, bsink, query);
}
@@ -696,9 +694,10 @@ gst_clapper_sink_get_times (GstBaseSink *bsink, GstBuffer *buffer,
static GstCaps *
gst_clapper_sink_get_caps (GstBaseSink *bsink, GstCaps *filter)
{
GstClapperSink *self = GST_CLAPPER_SINK_CAST (bsink);
GstCaps *result, *tmp;
tmp = gst_pad_get_pad_template_caps (GST_BASE_SINK_PAD (bsink));
tmp = gst_clapper_importer_loader_make_actual_caps (self->loader);
if (filter) {
GST_DEBUG ("Intersecting with filter caps: %" GST_PTR_FORMAT, filter);
@@ -728,7 +727,7 @@ gst_clapper_sink_set_caps (GstBaseSink *bsink, GstCaps *caps)
return FALSE;
}
if (!gst_clapper_importer_loader_find_importer_for_caps (caps, &self->importer)) {
if (!gst_clapper_importer_loader_find_importer_for_caps (self->loader, caps, &self->importer)) {
GST_CLAPPER_SINK_UNLOCK (self);
GST_ELEMENT_ERROR (self, RESOURCE, NOT_FOUND,
("No importer for given caps found"), (NULL));
@@ -808,6 +807,7 @@ gst_clapper_sink_init (GstClapperSink *self)
gst_video_info_init (&self->v_info);
self->paintable = gst_clapper_paintable_new ();
self->loader = gst_clapper_importer_loader_new ();
}
static void
@@ -835,7 +835,7 @@ gst_clapper_sink_finalize (GObject *object)
GST_TRACE ("Finalize");
gst_clapper_importer_loader_unload_all ();
gst_clear_object (&self->loader);
g_mutex_clear (&self->lock);
GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object));

View File

@@ -25,6 +25,7 @@
#include <gst/video/video.h>
#include "gstclapperpaintable.h"
#include "gstclapperimporterloader.h"
#include "gstclapperimporter.h"
G_BEGIN_DECLS
@@ -46,6 +47,7 @@ struct _GstClapperSink
GMutex lock;
GstClapperPaintable *paintable;
GstClapperImporterLoader *loader;
GstClapperImporter *importer;
GstVideoInfo v_info;

View File

@@ -22,6 +22,8 @@
#include "gstgtkutils.h"
#define _IS_FRAME_PREMULTIPLIED(f) (GST_VIDEO_INFO_FLAG_IS_SET (&(f)->info, GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA))
struct invoke_context
{
GThreadFunc func;
@@ -71,21 +73,29 @@ gst_gtk_invoke_on_main (GThreadFunc func, gpointer data)
return info.res;
}
/* For use with `GdkMemoryTexture` only! */
GdkMemoryFormat
gst_video_format_to_gdk_memory_format (GstVideoFormat format)
static GdkMemoryFormat
gst_gdk_memory_format_from_frame (GstVideoFrame *frame)
{
switch (format) {
switch (GST_VIDEO_FRAME_FORMAT (frame)) {
case GST_VIDEO_FORMAT_RGBA64_LE:
case GST_VIDEO_FORMAT_RGBA64_BE:
return GDK_MEMORY_R16G16B16A16_PREMULTIPLIED;
return (_IS_FRAME_PREMULTIPLIED (frame))
? GDK_MEMORY_R16G16B16A16_PREMULTIPLIED
: GDK_MEMORY_R16G16B16A16;
case GST_VIDEO_FORMAT_RGBA:
return GDK_MEMORY_R8G8B8A8;
return (_IS_FRAME_PREMULTIPLIED (frame))
? GDK_MEMORY_R8G8B8A8_PREMULTIPLIED
: GDK_MEMORY_R8G8B8A8;
case GST_VIDEO_FORMAT_BGRA:
return GDK_MEMORY_B8G8R8A8;
return (_IS_FRAME_PREMULTIPLIED (frame))
? GDK_MEMORY_B8G8R8A8_PREMULTIPLIED
: GDK_MEMORY_B8G8R8A8;
case GST_VIDEO_FORMAT_ARGB:
return GDK_MEMORY_A8R8G8B8;
return (_IS_FRAME_PREMULTIPLIED (frame))
? GDK_MEMORY_A8R8G8B8_PREMULTIPLIED
: GDK_MEMORY_A8R8G8B8;
case GST_VIDEO_FORMAT_ABGR:
/* GTK is missing premultiplied ABGR support */
return GDK_MEMORY_A8B8G8R8;
case GST_VIDEO_FORMAT_RGBx:
return GDK_MEMORY_R8G8B8A8_PREMULTIPLIED;
@@ -122,7 +132,7 @@ gst_video_frame_into_gdk_texture (GstVideoFrame *frame)
texture = gdk_memory_texture_new (
GST_VIDEO_FRAME_WIDTH (frame),
GST_VIDEO_FRAME_HEIGHT (frame),
gst_video_format_to_gdk_memory_format (GST_VIDEO_FRAME_FORMAT (frame)),
gst_gdk_memory_format_from_frame (frame),
bytes,
GST_VIDEO_FRAME_PLANE_STRIDE (frame, 0));

View File

@@ -30,8 +30,6 @@ G_BEGIN_DECLS
gpointer gst_gtk_invoke_on_main (GThreadFunc func, gpointer data);
GdkMemoryFormat gst_video_format_to_gdk_memory_format (GstVideoFormat format);
GdkTexture * gst_video_frame_into_gdk_texture (GstVideoFrame *frame);
G_END_DECLS

View File

@@ -38,10 +38,18 @@
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_GLX
#include <gst/gl/x11/gstgldisplay_x11.h>
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_EGL
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_EGL || GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32_EGL
#include <gst/gl/egl/gstgldisplay_egl.h>
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32
#include <gdk/win32/gdkwin32.h>
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_MACOS
#include <gdk/macos/gdkmacos.h>
#endif
#define GST_CAT_DEFAULT gst_clapper_gl_base_importer_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
@@ -101,6 +109,11 @@ retrieve_gl_context_on_main (GstClapperGLBaseImporter *self)
gdk_display = gdk_display_get_default ();
if (G_UNLIKELY (!gdk_display)) {
GST_ERROR_OBJECT (self, "Could not retrieve Gdk display");
return FALSE;
}
if (!(gdk_context = gdk_display_create_gl_context (gdk_display, &error))) {
GST_ERROR_OBJECT (self, "Error creating Gdk GL context: %s",
error ? error->message : "No error set by Gdk");
@@ -118,7 +131,7 @@ retrieve_gl_context_on_main (GstClapperGLBaseImporter *self)
}
gdk_gl_api = gdk_gl_context_get_api (gdk_context);
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
self->gdk_context = gdk_context;
@@ -151,6 +164,31 @@ retrieve_gl_context_on_main (GstClapperGLBaseImporter *self)
#endif
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32
if (GDK_IS_WIN32_DISPLAY (gdk_display)) {
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32_EGL
gpointer display_ptr = gdk_win32_display_get_egl_display (gdk_display);
if (display_ptr) {
self->gst_display = (GstGLDisplay *)
gst_gl_display_egl_new_with_egl_display (display_ptr);
}
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32_WGL
if (!self->gst_display) {
self->gst_display =
gst_gl_display_new_with_type (GST_GL_DISPLAY_TYPE_WIN32);
}
}
#endif
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_MACOS
if (GDK_IS_MACOS_DISPLAY (gdk_display)) {
self->gst_display =
gst_gl_display_new_with_type (GST_GL_DISPLAY_TYPE_COCOA);
}
#endif
/* Fallback to generic display */
if (G_UNLIKELY (!self->gst_display)) {
GST_WARNING_OBJECT (self, "Unknown Gdk display!");
@@ -165,7 +203,8 @@ retrieve_gl_context_on_main (GstClapperGLBaseImporter *self)
}
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_EGL
if (GST_IS_GL_DISPLAY_EGL (self->gst_display)) {
if (GST_IS_GL_DISPLAY_EGL (self->gst_display)
&& GDK_IS_X11_DISPLAY (gdk_display)) {
platform = GST_GL_PLATFORM_EGL;
GST_INFO_OBJECT (self, "Using EGL on x11");
goto have_display;
@@ -178,11 +217,33 @@ retrieve_gl_context_on_main (GstClapperGLBaseImporter *self)
goto have_display;
}
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32_EGL
if (GST_IS_GL_DISPLAY_EGL (self->gst_display)
&& GDK_IS_WIN32_DISPLAY (gdk_display)) {
platform = GST_GL_PLATFORM_EGL;
GST_INFO_OBJECT (self, "Using EGL on Win32");
goto have_display;
}
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32_WGL
if (gst_gl_display_get_handle_type (self->gst_display) == GST_GL_DISPLAY_TYPE_WIN32) {
platform = GST_GL_PLATFORM_WGL;
GST_INFO_OBJECT (self, "Using WGL on Win32");
goto have_display;
}
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_MACOS
if (gst_gl_display_get_handle_type (self->gst_display) == GST_GL_DISPLAY_TYPE_COCOA) {
platform = GST_GL_PLATFORM_CGL;
GST_INFO_OBJECT (self, "Using CGL on macOS");
goto have_display;
}
#endif
g_clear_object (&self->gdk_context);
gst_clear_object (&self->gst_display);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
GST_ERROR_OBJECT (self, "Unsupported GL platform");
return FALSE;
@@ -198,7 +259,7 @@ have_display:
g_clear_object (&self->gdk_context);
gst_clear_object (&self->gst_display);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
return FALSE;
}
@@ -216,7 +277,7 @@ have_display:
g_clear_object (&self->gdk_context);
gst_clear_object (&self->gst_display);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
return FALSE;
}
@@ -229,7 +290,7 @@ have_display:
gst_gl_context_activate (self->wrapped_context, FALSE);
gdk_gl_context_clear_current ();
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
return TRUE;
}
@@ -241,7 +302,7 @@ retrieve_gst_context (GstClapperGLBaseImporter *self)
GstGLContext *gst_context = NULL;
GError *error = NULL;
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
gst_display = gst_object_ref (self->gst_display);
@@ -258,7 +319,7 @@ retrieve_gst_context (GstClapperGLBaseImporter *self)
g_clear_error (&error);
GST_OBJECT_UNLOCK (gst_display);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
return FALSE;
}
@@ -266,7 +327,7 @@ retrieve_gst_context (GstClapperGLBaseImporter *self)
gst_context = gst_object_ref (self->gst_context);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
gst_gl_display_add_context (gst_display, gst_context);
@@ -284,9 +345,9 @@ gst_clapper_gl_base_importer_prepare (GstClapperImporter *importer)
GstClapperGLBaseImporter *self = GST_CLAPPER_GL_BASE_IMPORTER_CAST (importer);
gboolean need_invoke;
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
need_invoke = (!self->gdk_context || !self->gst_display || !self->wrapped_context);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
if (need_invoke) {
if (!(! !gst_gtk_invoke_on_main ((GThreadFunc) (GCallback)
@@ -311,8 +372,8 @@ gst_clapper_gl_base_importer_share_data (GstClapperImporter *importer, GstClappe
if (GST_IS_CLAPPER_GL_BASE_IMPORTER (dest_importer)) {
GstClapperGLBaseImporter *dest = GST_CLAPPER_GL_BASE_IMPORTER (dest_importer);
GST_OBJECT_LOCK (self);
GST_OBJECT_LOCK (dest);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (dest);
/* Successfully prepared GL importer should have all three */
if (self->gdk_context && self->gst_display && self->wrapped_context) {
@@ -333,8 +394,8 @@ gst_clapper_gl_base_importer_share_data (GstClapperImporter *importer, GstClappe
dest->gst_context = gst_object_ref (self->gst_context);
}
GST_OBJECT_UNLOCK (dest);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (dest);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
}
if (GST_CLAPPER_IMPORTER_CLASS (parent_class)->share_data)
@@ -348,10 +409,10 @@ gst_clapper_gl_base_importer_handle_context_query (GstClapperImporter *importer,
GstClapperGLBaseImporter *self = GST_CLAPPER_GL_BASE_IMPORTER_CAST (importer);
gboolean res;
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
res = gst_gl_handle_context_query (GST_ELEMENT_CAST (bsink), query,
self->gst_display, self->gst_context, self->wrapped_context);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
return res;
}
@@ -364,9 +425,9 @@ gst_clapper_gl_base_importer_create_pool (GstClapperImporter *importer, GstStruc
GST_DEBUG_OBJECT (self, "Creating new GL buffer pool");
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
pool = gst_gl_buffer_pool_new (self->gst_context);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
*config = gst_buffer_pool_get_config (pool);
@@ -384,42 +445,87 @@ gst_clapper_gl_base_importer_add_allocation_metas (GstClapperImporter *importer,
gst_query_add_allocation_meta (query, GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE, NULL);
gst_query_add_allocation_meta (query, GST_VIDEO_META_API_TYPE, NULL);
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
if (self->gst_context->gl_vtable->FenceSync)
gst_query_add_allocation_meta (query, GST_GL_SYNC_META_API_TYPE, NULL);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
}
static gboolean
_realize_gdk_context_with_api (GdkGLContext *gdk_context, GdkGLAPI api)
{
GError *error = NULL;
gboolean success;
gdk_gl_context_set_allowed_apis (gdk_context, api);
if (!(success = gdk_gl_context_realize (gdk_context, &error))) {
GST_WARNING ("Could not realize Gdk context with %s: %s",
(api & GDK_GL_API_GL) ? "GL" : "GLES", error->message);
g_clear_error (&error);
}
return success;
}
static gboolean
gst_clapper_gl_base_importer_gdk_context_realize (GstClapperGLBaseImporter *self, GdkGLContext *gdk_context)
{
GdkGLAPI allowed_apis;
GError *error = NULL;
GdkGLAPI preferred_api = GDK_GL_API_GL;
GdkDisplay *gdk_display;
const gchar *gl_env;
gboolean success;
GST_DEBUG_OBJECT (self, "Realizing GdkGLContext with default implementation");
/* Use single "GST_GL_API" env to also influence Gdk GL selection */
gl_env = g_getenv ("GST_GL_API");
allowed_apis = (!gl_env || g_str_has_prefix (gl_env, "gles"))
? GDK_GL_API_GLES
: (g_str_has_prefix (gl_env, "opengl"))
? GDK_GL_API_GL
: GDK_GL_API_GL | GDK_GL_API_GLES;
if ((gl_env = g_getenv ("GST_GL_API"))) {
preferred_api = (g_str_has_prefix (gl_env, "gles"))
? GDK_GL_API_GLES
: g_str_has_prefix (gl_env, "opengl")
? GDK_GL_API_GL
: GDK_GL_API_GL | GDK_GL_API_GLES;
gdk_gl_context_set_allowed_apis (gdk_context, allowed_apis);
if (!(success = gdk_gl_context_realize (gdk_context, &error))) {
GST_WARNING_OBJECT (self, "Could not realize Gdk context with %s: %s",
(allowed_apis & GDK_GL_API_GL) ? "GL" : "GLES", error->message);
g_clear_error (&error);
/* With requested by user API, we either use it or give up */
return _realize_gdk_context_with_api (gdk_context, preferred_api);
}
if (!success && !gl_env) {
gdk_gl_context_set_allowed_apis (gdk_context, GDK_GL_API_GL);
if (!(success = gdk_gl_context_realize (gdk_context, &error))) {
GST_WARNING_OBJECT (self, "Could not realize Gdk context with GL: %s", error->message);
g_clear_error (&error);
}
gdk_display = gdk_gl_context_get_display (gdk_context);
GST_DEBUG_OBJECT (self, "Auto selecting GL API for display: %s",
gdk_display_get_name (gdk_display));
/* Apple decoder uses rectangle texture-target, which GLES does not support.
* For Linux we prefer EGL + GLES in order to get direct HW colorspace conversion.
* Windows will try EGL + GLES setup first and auto fallback to WGL. */
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WAYLAND
if (GDK_IS_WAYLAND_DISPLAY (gdk_display))
preferred_api = GDK_GL_API_GLES;
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_EGL
if (GDK_IS_X11_DISPLAY (gdk_display) && gdk_x11_display_get_egl_display (gdk_display))
preferred_api = GDK_GL_API_GLES;
#endif
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32_EGL
if (GDK_IS_WIN32_DISPLAY (gdk_display) && gdk_win32_display_get_egl_display (gdk_display))
preferred_api = GDK_GL_API_GLES;
#endif
/* FIXME: Remove once GStreamer can handle DRM modifiers. This tries to avoid
* "scrambled" image on Linux with Intel GPUs that are mostly used together with
* x86 CPUs at the expense of using slightly slower non-direct DMABuf import.
* See: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1236 */
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WAYLAND || GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_EGL
#if !defined(HAVE_GST_PATCHES) && (defined(__i386__) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64))
preferred_api = GDK_GL_API_GL;
#endif
#endif
if (!(success = _realize_gdk_context_with_api (gdk_context, preferred_api))) {
GdkGLAPI fallback_api;
fallback_api = (GDK_GL_API_GL | GDK_GL_API_GLES);
fallback_api &= ~preferred_api;
success = _realize_gdk_context_with_api (gdk_context, fallback_api);
}
return success;
@@ -428,6 +534,7 @@ gst_clapper_gl_base_importer_gdk_context_realize (GstClapperGLBaseImporter *self
static void
gst_clapper_gl_base_importer_init (GstClapperGLBaseImporter *self)
{
g_mutex_init (&self->lock);
}
static void
@@ -441,6 +548,8 @@ gst_clapper_gl_base_importer_finalize (GObject *object)
gst_clear_object (&self->wrapped_context);
gst_clear_object (&self->gst_context);
g_mutex_clear (&self->lock);
GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object));
}
@@ -514,7 +623,7 @@ gst_clapper_gl_base_importer_make_gl_texture (GstClapperGLBaseImporter *self,
return NULL;
}
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
/* Must have context active here for both sync meta
* and Gdk texture format auto-detection to work */
@@ -541,7 +650,7 @@ gst_clapper_gl_base_importer_make_gl_texture (GstClapperGLBaseImporter *self,
gst_gl_context_activate (self->wrapped_context, FALSE);
gdk_gl_context_clear_current ();
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
gst_video_frame_unmap (&frame);

View File

@@ -33,10 +33,18 @@ G_BEGIN_DECLS
#define GST_CLAPPER_GL_BASE_IMPORTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_CLAPPER_GL_BASE_IMPORTER, GstClapperGLBaseImporterClass))
#define GST_CLAPPER_GL_BASE_IMPORTER_CAST(obj) ((GstClapperGLBaseImporter *)(obj))
#define GST_CLAPPER_GL_BASE_IMPORTER_GET_LOCK(obj) (&GST_CLAPPER_GL_BASE_IMPORTER_CAST(obj)->lock)
#define GST_CLAPPER_GL_BASE_IMPORTER_LOCK(obj) g_mutex_lock (GST_CLAPPER_GL_BASE_IMPORTER_GET_LOCK(obj))
#define GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK(obj) g_mutex_unlock (GST_CLAPPER_GL_BASE_IMPORTER_GET_LOCK(obj))
#define GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WAYLAND (GST_GL_HAVE_WINDOW_WAYLAND && defined (GDK_WINDOWING_WAYLAND))
#define GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11 (GST_GL_HAVE_WINDOW_X11 && defined (GDK_WINDOWING_X11))
#define GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_GLX (GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11 && GST_GL_HAVE_PLATFORM_GLX)
#define GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_EGL (GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11 && GST_GL_HAVE_PLATFORM_EGL)
#define GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32 (GST_GL_HAVE_WINDOW_WIN32 && defined (GDK_WINDOWING_WIN32))
#define GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32_WGL (GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32 && GST_GL_HAVE_PLATFORM_WGL)
#define GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32_EGL (GST_CLAPPER_GL_BASE_IMPORTER_HAVE_WIN32 && GST_GL_HAVE_PLATFORM_EGL)
#define GST_CLAPPER_GL_BASE_IMPORTER_HAVE_MACOS (GST_GL_HAVE_WINDOW_COCOA && defined (GDK_WINDOWING_MACOS) && GST_GL_HAVE_PLATFORM_CGL)
typedef struct _GstClapperGLBaseImporter GstClapperGLBaseImporter;
typedef struct _GstClapperGLBaseImporterClass GstClapperGLBaseImporterClass;
@@ -49,6 +57,8 @@ struct _GstClapperGLBaseImporter
{
GstClapperImporter parent;
GMutex lock;
GdkGLContext *gdk_context;
GstGLDisplay *gst_display;

View File

@@ -61,7 +61,7 @@ make_importer (void)
}
GstCaps *
make_caps (GstRank *rank, GStrv *context_types)
make_caps (gboolean is_template, GstRank *rank, GStrv *context_types)
{
*rank = GST_RANK_SECONDARY;
*context_types = gst_clapper_gl_base_importer_make_gl_context_types ();

View File

@@ -22,6 +22,11 @@
#endif
#include "gstclappergluploader.h"
#include "gst/plugin/gstgtkutils.h"
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11
#include <gdk/x11/gdkx.h>
#endif
#define GST_CAT_DEFAULT gst_clapper_gl_uploader_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
@@ -67,9 +72,9 @@ gst_clapper_gl_uploader_set_caps (GstClapperImporter *importer, GstCaps *caps)
{
GstClapperGLUploader *self = GST_CLAPPER_GL_UPLOADER_CAST (importer);
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
_update_elements_caps_locked (self, caps);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
}
static void
@@ -96,14 +101,14 @@ gst_clapper_gl_uploader_prepare (GstClapperImporter *importer)
GstClapperGLUploader *self = GST_CLAPPER_GL_UPLOADER_CAST (importer);
GstClapperGLBaseImporter *gl_bi = GST_CLAPPER_GL_BASE_IMPORTER_CAST (importer);
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
if (!self->upload)
self->upload = gst_gl_upload_new (gl_bi->gst_context);
if (!self->color_convert)
self->color_convert = gst_gl_color_convert_new (gl_bi->gst_context);
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
}
return res;
@@ -132,6 +137,31 @@ _upload_perform_locked (GstClapperGLUploader *self, GstBuffer *buffer)
return upload_buf;
}
static GstBufferPool *
gst_clapper_gl_uploader_create_pool (GstClapperImporter *importer, GstStructure **config)
{
/* Since GLUpload API provides a ready to use propose_allocation method,
* we will use it with our query in add_allocation_metas instead of
* making pool here ourselves */
return NULL;
}
static void
gst_clapper_gl_uploader_add_allocation_metas (GstClapperImporter *importer, GstQuery *query)
{
GstClapperGLUploader *self = GST_CLAPPER_GL_UPLOADER_CAST (importer);
GstGLUpload *upload;
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
upload = gst_object_ref (self->upload);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
gst_gl_upload_propose_allocation (upload, NULL, query);
gst_object_unref (upload);
GST_CLAPPER_IMPORTER_CLASS (parent_class)->add_allocation_metas (importer, query);
}
static GdkTexture *
gst_clapper_gl_uploader_generate_texture (GstClapperImporter *importer,
GstBuffer *buffer, GstVideoInfo *v_info)
@@ -147,13 +177,13 @@ gst_clapper_gl_uploader_generate_texture (GstClapperImporter *importer,
GST_LOG_OBJECT (self, "Uploading %" GST_PTR_FORMAT, buffer);
GST_OBJECT_LOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_LOCK (self);
upload_buf = _upload_perform_locked (self, buffer);
if (G_UNLIKELY (!upload_buf)) {
GST_ERROR_OBJECT (self, "Could not perform upload on input buffer");
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
return NULL;
}
@@ -168,7 +198,7 @@ gst_clapper_gl_uploader_generate_texture (GstClapperImporter *importer,
self->has_pending_v_info = FALSE;
}
GST_OBJECT_UNLOCK (self);
GST_CLAPPER_GL_BASE_IMPORTER_UNLOCK (self);
if (G_UNLIKELY (!color_buf)) {
GST_ERROR_OBJECT (self, "Could not perform color conversion on input buffer");
@@ -213,6 +243,8 @@ gst_clapper_gl_uploader_class_init (GstClapperGLUploaderClass *klass)
importer_class->prepare = gst_clapper_gl_uploader_prepare;
importer_class->set_caps = gst_clapper_gl_uploader_set_caps;
importer_class->create_pool = gst_clapper_gl_uploader_create_pool;
importer_class->add_allocation_metas = gst_clapper_gl_uploader_add_allocation_metas;
importer_class->generate_texture = gst_clapper_gl_uploader_generate_texture;
}
@@ -222,11 +254,59 @@ make_importer (void)
return g_object_new (GST_TYPE_CLAPPER_GL_UPLOADER, NULL);
}
GstCaps *
make_caps (GstRank *rank, GStrv *context_types)
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_GLX
static gboolean
_filter_glx_caps_cb (GstCapsFeatures *features,
GstStructure *structure, gpointer user_data)
{
return !gst_caps_features_contains (features, "memory:DMABuf");
}
static gboolean
_update_glx_caps_on_main (GstCaps *caps)
{
GdkDisplay *gdk_display;
if (!gtk_init_check ())
return FALSE;
gdk_display = gdk_display_get_default ();
if (G_UNLIKELY (!gdk_display))
return FALSE;
if (GDK_IS_X11_DISPLAY (gdk_display)) {
gboolean using_glx = TRUE;
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_EGL
using_glx = (gdk_x11_display_get_egl_display (gdk_display) == NULL);
#endif
if (using_glx) {
gst_caps_filter_and_map_in_place (caps,
(GstCapsFilterMapFunc) _filter_glx_caps_cb, NULL);
}
}
return TRUE;
}
#endif
GstCaps *
make_caps (gboolean is_template, GstRank *rank, GStrv *context_types)
{
GstCaps *caps = gst_gl_upload_get_input_template_caps ();
#if GST_CLAPPER_GL_BASE_IMPORTER_HAVE_X11_GLX
if (!is_template && !(! !gst_gtk_invoke_on_main ((GThreadFunc) (GCallback)
_update_glx_caps_on_main, caps)))
gst_clear_caps (&caps);
#endif
if (G_UNLIKELY (!caps))
return NULL;
*rank = GST_RANK_MARGINAL + 1;
*context_types = gst_clapper_gl_base_importer_make_gl_context_types ();
return gst_gl_upload_get_input_template_caps ();
return caps;
}

View File

@@ -97,7 +97,7 @@ make_importer (void)
}
GstCaps *
make_caps (GstRank *rank, GStrv *context_types)
make_caps (gboolean is_template, GstRank *rank, GStrv *context_types)
{
*rank = GST_RANK_MARGINAL;

View File

@@ -1,83 +0,0 @@
/*
* Copyright (C) 2022 Rafał Dzięgiel <rafostar.github@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "gstclappervaglimporter.h"
#include "gst/plugin/gstgdkformats.h"
#include <gst/va/gstva.h>
#define GST_CAT_DEFAULT gst_clapper_va_gl_importer_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
#define parent_class gst_clapper_va_gl_importer_parent_class
GST_CLAPPER_IMPORTER_DEFINE (GstClapperVAGLImporter, gst_clapper_va_gl_importer, GST_TYPE_CLAPPER_GL_BASE_IMPORTER);
static GdkTexture *
gst_clapper_va_gl_importer_generate_texture (GstClapperImporter *importer,
GstBuffer *buffer, GstVideoInfo *v_info)
{
return NULL;
}
static void
gst_clapper_va_gl_importer_init (GstClapperVAGLImporter *self)
{
}
static void
gst_clapper_va_gl_importer_class_init (GstClapperVAGLImporterClass *klass)
{
GstClapperImporterClass *importer_class = (GstClapperImporterClass *) klass;
GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "clappervaglimporter", 0,
"Clapper VA GL Importer");
importer_class->generate_texture = gst_clapper_va_gl_importer_generate_texture;
}
GstClapperImporter *
make_importer (void)
{
return g_object_new (GST_TYPE_CLAPPER_VA_GL_IMPORTER, NULL);
}
GstCaps *
make_caps (GstRank *rank, GStrv *context_types)
{
GstCaps *caps, *tmp;
*rank = GST_RANK_PRIMARY;
tmp = gst_caps_from_string (
GST_VIDEO_CAPS_MAKE_WITH_FEATURES (GST_CAPS_FEATURE_MEMORY_VA,
"{ " GST_GDK_GL_TEXTURE_FORMATS " }"));
caps = gst_caps_copy (tmp);
gst_caps_set_features_simple (caps, gst_caps_features_new (
GST_CAPS_FEATURE_MEMORY_VA,
GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION, NULL));
gst_caps_append (caps, tmp);
return caps;
}

View File

@@ -1,36 +0,0 @@
/*
* Copyright (C) 2022 Rafał Dzięgiel <rafostar.github@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#pragma once
#include "gstclapperglbaseimporter.h"
G_BEGIN_DECLS
#define GST_TYPE_CLAPPER_VA_GL_IMPORTER (gst_clapper_va_gl_importer_get_type())
G_DECLARE_FINAL_TYPE (GstClapperVAGLImporter, gst_clapper_va_gl_importer, GST, CLAPPER_VA_GL_IMPORTER, GstClapperGLBaseImporter)
#define GST_CLAPPER_VA_GL_IMPORTER_CAST(obj) ((GstClapperVAGLImporter *)(obj))
struct _GstClapperVAGLImporter
{
GstClapperGLBaseImporter parent;
};
G_END_DECLS

View File

@@ -1,25 +1,38 @@
gst_clapper_gl_base_importer_dep = dependency('', required: false)
plugin_needs_gl_base = (
all_importers = [
'glimporter',
'gluploader',
'rawimporter',
]
build_glbase = (
not get_option('glimporter').disabled()
or not get_option('gluploader').disabled()
or not get_option('vaglimporter').disabled()
)
plugin_gl_support_required = (
gl_support_required = (
get_option('glimporter').enabled()
or get_option('gluploader').enabled()
or get_option('vaglimporter').enabled()
)
gst_plugin_gl_deps = [gstgl_dep, gstglproto_dep]
# We cannot build any importers without sink that they depend on
if not gst_clapper_sink_dep.found()
foreach imp : all_importers
if get_option(imp).enabled()
error('"@0@" option was enabled, but it requires building gstreamer plugin'.format(imp))
endif
endforeach
endif
gst_plugin_gl_base_deps = [gst_clapper_sink_dep, gstgl_dep, gstglproto_dep]
have_gtk_gl_windowing = false
if gst_gl_have_window_x11 and (gst_gl_have_platform_egl or gst_gl_have_platform_glx)
gtk_x11_dep = dependency('gtk4-x11', required: false)
if gtk_x11_dep.found()
gst_plugin_gl_deps += gtk_x11_dep
gst_plugin_gl_base_deps += gtk_x11_dep
if gst_gl_have_platform_glx
gst_plugin_gl_deps += gstglx11_dep
gst_plugin_gl_base_deps += gstglx11_dep
endif
have_gtk_gl_windowing = true
endif
@@ -28,44 +41,59 @@ endif
if gst_gl_have_window_wayland and gst_gl_have_platform_egl
gtk_wayland_dep = dependency('gtk4-wayland', required: false)
if gtk_wayland_dep.found()
gst_plugin_gl_deps += [gtk_wayland_dep, gstglwayland_dep]
gst_plugin_gl_base_deps += [gtk_wayland_dep, gstglwayland_dep]
have_gtk_gl_windowing = true
endif
endif
if plugin_gl_support_required and not have_gtk_gl_windowing
error('GL-based importer was enabled, but support for current GL windowing is missing')
if gst_gl_have_window_win32 and (gst_gl_have_platform_egl or gst_gl_have_platform_wgl)
gtk_win32_dep = dependency('gtk4-win32', required: false)
if gtk_win32_dep.found()
gst_plugin_gl_base_deps += gtk_win32_dep
have_gtk_gl_windowing = true
endif
endif
if gst_gl_have_window_cocoa and gst_gl_have_platform_cgl
gtk_macos_dep = dependency('gtk4-macos', required: false)
if gtk_macos_dep.found()
gst_plugin_gl_base_deps += gtk_macos_dep
have_gtk_gl_windowing = true
endif
endif
if not have_gtk_gl_windowing
if gl_support_required
error('GL-based importer was enabled, but support for current GL windowing is missing')
endif
build_glbase = false
endif
if gst_gl_have_platform_egl
gst_plugin_gl_deps += gstglegl_dep
gst_plugin_gl_base_deps += gstglegl_dep
endif
gst_clapper_gl_base_importer_deps = [
gst_clapper_sink_dep
] + gst_plugin_gl_deps
foreach dep : gst_clapper_gl_base_importer_deps
foreach dep : gst_plugin_gl_base_deps
if not dep.found()
if plugin_gl_support_required
if gl_support_required
error('GL-based importer was enabled, but required dependencies were not found')
endif
plugin_needs_gl_base = false
build_glbase = false
endif
endforeach
if plugin_needs_gl_base
if build_glbase
gst_clapper_gl_base_importer_dep = declare_dependency(
link_with: library('gstclapperglbaseimporter',
'gstclapperglbaseimporter.c',
c_args: gst_clapper_plugin_args,
include_directories: configinc,
dependencies: gst_clapper_gl_base_importer_deps,
dependencies: gst_plugin_gl_base_deps,
version: libversion,
install: true,
),
include_directories: configinc,
dependencies: gst_clapper_gl_base_importer_deps,
dependencies: gst_plugin_gl_base_deps,
)
endif
@@ -107,6 +135,7 @@ endif
build_rawimporter = (
not get_option('rawimporter').disabled()
and (not build_gluploader or get_option('rawimporter').enabled())
and gst_clapper_sink_dep.found()
)
if build_rawimporter
@@ -120,38 +149,3 @@ if build_rawimporter
install_dir: gst_clapper_importers_libdir,
)
endif
gst_va_dep = dependency('gstreamer-va-1.0',
version: gst_req,
required: false,
)
gst_clapper_va_gl_importer_deps = [
gst_clapper_gl_base_importer_dep,
gst_va_dep,
]
foreach dep : gst_clapper_va_gl_importer_deps
if not dep.found()
if get_option('vaglimporter').enabled()
error('VA GL-based importer was enabled, but required dependencies were not found')
endif
endif
endforeach
build_vaglimporter = (
not get_option('vaglimporter').disabled()
and gst_clapper_gl_base_importer_dep.found()
)
if build_vaglimporter
library(
'gstclappervaglimporter',
'gstclappervaglimporter.c',
dependencies: gst_clapper_va_gl_importer_deps,
include_directories: configinc,
c_args: gst_clapper_plugin_args,
install: true,
install_dir: gst_clapper_importers_libdir,
)
endif

View File

@@ -4,6 +4,8 @@ gst_clapper_plugin_args = [
'-DHAVE_CONFIG_H',
'-DGST_USE_UNSTABLE_API',
]
gst_clapper_sink_dep = dependency('', required: false)
gtk4_dep = dependency('gtk4', version: '>=4.6.0', required: false)
gmodule_dep = dependency('gmodule-2.0',
@@ -20,12 +22,13 @@ gst_clapper_plugin_deps = [
gmodule_dep,
]
build_gst_plugin = not get_option('gst-plugin').disabled()
foreach dep : gst_clapper_plugin_deps
if not dep.found()
if get_option('gst-plugin').enabled()
error('GStreamer plugin was enabled, but required dependencies were not found')
endif
subdir_done()
build_gst_plugin = false
endif
endforeach
@@ -42,17 +45,19 @@ gst_clapper_plugin_sources = [
'gstclapperimporterloader.c',
]
gst_clapper_sink_dep = declare_dependency(
link_with: library('gstclapper',
gst_clapper_plugin_sources,
c_args: gst_clapper_plugin_args,
if build_gst_plugin
gst_clapper_sink_dep = declare_dependency(
link_with: library('gstclapper',
gst_clapper_plugin_sources,
c_args: gst_clapper_plugin_args,
include_directories: configinc,
dependencies: gst_clapper_plugin_deps,
install: true,
install_dir: gst_plugins_libdir,
),
include_directories: configinc,
dependencies: gst_clapper_plugin_deps,
install: true,
install_dir: gst_plugins_libdir,
),
include_directories: configinc,
dependencies: gst_clapper_plugin_deps,
)
)
endif
subdir('importers')

13
lib/meson.build vendored
View File

@@ -9,6 +9,8 @@ cxx = meson.get_compiler('cpp')
cdata = configuration_data()
os_unix = host_machine.system() != 'windows'
if cc.get_id() == 'msvc'
msvc_args = [
# Ignore several spurious warnings for things gstreamer does very commonly
@@ -243,7 +245,12 @@ libm = cc.find_library('m', required: false)
glib_dep = dependency('glib-2.0', version: glib_req, fallback: ['glib', 'libglib_dep'])
gmodule_dep = dependency('gmodule-2.0', fallback: ['glib', 'libgmodule_dep'])
gio_dep = dependency('gio-2.0', fallback: ['glib', 'libgio_dep'])
giounix_dep = dependency('gio-unix-2.0', version: glib_req, fallback: ['glib', 'libgiounix_dep'])
if os_unix
giounix_dep = dependency('gio-unix-2.0', version: glib_req, fallback: ['glib', 'libgio_dep'])
else
giowin_dep = dependency('gio-windows-2.0', version: glib_req, fallback : ['glib', 'libgio_dep'])
endif
cdata.set('DISABLE_ORC', 1)
cdata.set('GST_ENABLE_EXTRA_CHECKS', get_option('devel-checks'))
@@ -251,7 +258,7 @@ cdata.set('GST_ENABLE_EXTRA_CHECKS', get_option('devel-checks'))
configinc = include_directories('.')
libsinc = include_directories('gst')
gir = find_program('g-ir-scanner')
gir = find_program('g-ir-scanner', required: false)
gir_init_section = ['--add-init-section=extern void gst_init(gint*,gchar**);' + \
'g_setenv("GST_REGISTRY_1.0", "@0@", TRUE);'.format(meson.current_build_dir() + '/gir_empty_registry.reg') + \
'g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);' + \
@@ -259,7 +266,7 @@ gir_init_section = ['--add-init-section=extern void gst_init(gint*,gchar**);' +
'gst_init(NULL,NULL);', '--quiet'
]
gst_clapper_plugin_libdir = join_paths(get_option('prefix'), libdir, 'clapper-0.0', 'gst', 'plugin')
gst_clapper_plugin_libdir = join_paths(get_option('prefix'), libdir, 'clapper-@0@'.format(api_version), 'gst', 'plugin')
gst_clapper_importers_libdir = join_paths(gst_clapper_plugin_libdir, 'importers')
cdata.set_quoted('CLAPPER_SINK_IMPORTER_PATH', gst_clapper_importers_libdir)

View File

@@ -1,5 +1,5 @@
project('com.github.rafostar.Clapper', 'c', 'cpp',
version: '0.4.1',
version: '0.5.1',
meson_version: '>= 0.50.0',
license: 'GPL-3.0-or-later',
default_options: [

View File

@@ -10,15 +10,10 @@ option('lib',
)
option('gst-plugin',
type: 'feature',
value: 'enabled',
value: 'auto',
description: 'Build GStreamer plugin (includes GTK video sink element)'
)
option('vaglimporter',
type: 'feature',
value: 'auto',
description: 'Build VA memory GL-based importer for clappersink'
)
option('glimporter',
type: 'feature',
value: 'auto',

View File

@@ -34,7 +34,7 @@
"flathub/lib/uchardet.json",
"flathub/gstreamer-1.0/gstreamer.json",
"testing/gtk4.json",
"flathub/lib/libadwaita.json",
"testing/libadwaita.json",
"testing/gtuber.json",
{
"name": "clapper",

View File

@@ -1,31 +0,0 @@
From b413ee2c7d458c7005d3d3d1da8822cd86893ac0 Mon Sep 17 00:00:00 2001
From: Rafostar <40623528+Rafostar@users.noreply.github.com>
Date: Fri, 4 Dec 2020 19:25:34 +0100
Subject: [PATCH] popover: Call unrealize on hide
When popover is shown "realize" method is called which creates a new
surface for popup. Unfortunately this causes performance drop on Wayland until that
surface is destroyed what happens inside "unrealize" method during popover destruction.
This commit changes default behavior in a way that surface will be destroyed
when popover is closed and app will ragain the performance it lost when
popover was shown.
---
gtk/gtkpopover.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c
index 504dcd6cc1..a7a764d483 100644
--- a/gtk/gtkpopover.c
+++ b/gtk/gtkpopover.c
@@ -951,6 +951,7 @@ gtk_popover_hide (GtkWidget *widget)
gtk_popover_set_mnemonics_visible (GTK_POPOVER (widget), FALSE);
_gtk_widget_set_visible_flag (widget, FALSE);
+ gtk_widget_unrealize (widget);
gtk_widget_unmap (widget);
g_signal_emit (widget, signals[CLOSED], 0);
}
--
GitLab

View File

@@ -26,12 +26,8 @@
{
"type": "git",
"url": "https://gitlab.gnome.org/GNOME/gtk.git",
"tag": "4.6.2",
"commit": "aec7ca82007dbe07faee6be084d20758ebac2b91"
},
{
"type": "patch",
"path": "gtk4-popover-unrealize.patch"
"tag": "4.6.4",
"commit": "1e6bad6c4f412dc0eb7b2f508cb4465929a04303"
}
]
}

View File

@@ -0,0 +1,21 @@
{
"name": "libadwaita",
"buildsystem": "meson",
"config-opts": [
"--buildtype=release",
"--wrap-mode=nofallback",
"-Dintrospection=enabled",
"-Dvapi=false",
"-Dgtk_doc=false",
"-Dtests=false",
"-Dexamples=false"
],
"sources": [
{
"type": "git",
"url": "https://gitlab.gnome.org/GNOME/libadwaita.git",
"tag": "1.1.1",
"commit": "5ec9f624b23bf78b29dd708e77ccdfcee0a9867a"
}
]
}

127
po/af.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:25\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Afrikaans\n"
"Language: af_ZA\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/ar.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-03-26 13:37\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Language: ar_SA\n"
@@ -41,12 +41,11 @@ msgstr "حول Clapper"
msgid "Speed"
msgstr "السرعة"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "عادي"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "عام"
@@ -118,7 +117,7 @@ msgstr "تغيير وضع التكرار"
msgid "Export to file"
msgstr "التصدير إلى مِلَفّ"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "المشغل"
@@ -182,203 +181,183 @@ msgstr "برامج فك التشفير"
msgid "Return to the preferences"
msgstr "العودة إلى الإعدادات"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "السلوك"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "ملء الشاشة تلقائياً"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "أدخل ملء الشاشة عند استبدال قائمة التشغيل باستثناء الوضع العائم"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "اطلب استئناف الوسائط السابقة"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "عائم في جميع مساحات العمل"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "هذا الخِيار يعمل فقط على GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "بعد انتهاء"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "لا تفعل شيئًا"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "تجميد الأخر لقطة"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "أغلق التطبيق"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "الصوت"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "قيمة الافتراضية مخصصة"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "تعيين مستوى صوت مخصص عند بَدْء التشغيل بدلاً من إعادته"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "حجم الصوت"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "الوضع"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "النمط"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "دَقيق"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "سريع"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "الوحدة"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "ثواني"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "دقائق"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "النسبة المئوية"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "القيمة"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "الصوت"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "إزاحة بالمللي ثانية"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "تنسيقات الصوت الأصلية فقط"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "التَّرْجَمَةً"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "الخط الافتراضي"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "الشبكة"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "العميل"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "التخزين المؤقت للتنزيل بالتدريج"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "الخادم"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "التحكم بالوسائط عن بعد"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "منفذ الاستماع"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "تشغيل تطبيق الويب في الخلفية"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "يتطلب GTK مجمعة مع Broadway backend"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "منفذ تطبيق الويب"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "تفضيل البث التكيفي"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "الأعلى جودة"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "تعديلات"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "إعدادات المظهر"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "المظهر الداكن"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "عرض ظلال النافذة"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "تعطيل لزيادة الأداء عند وضع النافذة"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "أعدادات الإضافات"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "تغيير الأعدادات الافتراضية للأضافات GStreamer"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "استخدام playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "يتطلب إعادة التشغيل"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "تجريبية"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "استخدام PipeWire لإخراج الصوت"
@@ -445,15 +424,15 @@ msgstr "Yousef Fawaz"
msgid "Ends at: %s"
msgstr "ينتهي في: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "غير محدّد"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "قنوات"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "مُعطّل"

127
po/ca.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 16:21\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Language: ca_ES\n"
@@ -41,12 +41,11 @@ msgstr "Quant al Clapper"
msgid "Speed"
msgstr "Velocitat"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normal"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "General"
@@ -118,7 +117,7 @@ msgstr "Canvia el mode de repetició"
msgid "Export to file"
msgstr "Exporta a un fitxer"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Reproducció"
@@ -182,203 +181,183 @@ msgstr "Descodificadors"
msgid "Return to the preferences"
msgstr "Torna a les preferències"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Comportament"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Pantalla completa automàtica"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Entra a pantalla completa quan se substitueix la llista de reproducció excepte el mode flotant"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Pregunta per reprendre recents"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Flota en tots els espais de treball"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Aquesta opció només funciona amb el GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Després de la reproducció"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "No facis res"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Congela l'últim fotograma"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Surt de l'aplicació"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Volum"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Valor inicial personalitzat"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Estableix el volum personalitzat a l'inici en lloc de restaurar-lo"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Percentatge de volum"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Cerca"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Mode"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Acurat"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Ràpid"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Unitat"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Segon"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minut"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Percentatge"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Valor"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Àudio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Desplaçament en mil·lisegons"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Només formats d'àudio natius"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Subtítols"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Tipus de lletra per defecte"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Xarxa"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Client"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Memòria intermèdia de baixada progressiva"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Servidor"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Controla el reproductor remotament"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Port d'escolta"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Executa l'aplicació web en segon pla"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Requereix el GTK compilat amb el backend Broadway"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Port de l'aplicació web"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Prefereix la transmissió adaptativa"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Qualitat màxima"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Ajustaments"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Aparença"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Tema fosc"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Renderitza les ombres de la finestra"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Inhabilita per augmentar el rendiment en mode finestra"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Classificació dels connectors"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Altera els rangs predeterminats dels connectors del GStreamer"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Usa playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Requereix reiniciar el reproductor"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Experimental"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Usa PipeWire per la sortida d'àudio"
@@ -445,15 +424,15 @@ msgstr "Ícar Nin Solana <icar.nin@protonmail.com>, 2021"
msgid "Ends at: %s"
msgstr "Acaba a la/les %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Sense determinar"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Canals"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Deshabilitat"

View File

@@ -8,13 +8,13 @@ msgid ""
msgstr ""
"Project-Id-Version: com.github.rafostar.Clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ui/clapper.ui:6
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,14 +424,14 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/cs.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-19 20:57\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -41,12 +41,11 @@ msgstr "O aplikaci Clapper"
msgid "Speed"
msgstr "Rychlost"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normální"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Obecné"
@@ -118,7 +117,7 @@ msgstr "Změnit režim opakování"
msgid "Export to file"
msgstr "Exportovat do souboru"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Přehrávání"
@@ -182,203 +181,183 @@ msgstr "Dekodéry"
msgid "Return to the preferences"
msgstr "Zpět do předvoleb"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Chování"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Automaticky na celou obrazovku"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Přejít do režimu na celou obrazovku při nahrazení seznamu skladeb s výjimkou plovoucího režimu"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Zeptat se na obnovení nedávných médií"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Plovoucí režim na všech pracovních plochách"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Tato možnost funguje pouze na GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Po skončení přehrávání"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Nedělat nic"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Zůstat na posledním snímku"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Zavřít aplikaci"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Hlasitost"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Vlastní počáteční hodnota"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Nastavit vlastní hlasitost při spuštění namísto obnovení předchozí hodnoty"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Procento hlasitosti"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Přetáčení"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Režim"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Přesný"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Rychlý"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Jednotka"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Sekundy"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minuty"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Procenta"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Hodnota"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Zvuk"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Posunutí v milisekundách"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Pouze nativní formáty zvuku"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Titulky"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Výchozí styl písma"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Síť"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Klient"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Postupné stahování do vyrovnávací paměti"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Server"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Vzdáleně ovládat přehrávač"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Naslouchat na portu"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Spustit webovou aplikaci na pozadí"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Vyžaduje GTK kompilovaný s Broadway backendem"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Port webové aplikace"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Preferovat adaptivní streamování"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Maximální kvalita"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Vylepšení"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Vzhled"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Tmavý motiv"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Vykreslovat stíny okna"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Zakázat pro zvýšení výkonu"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Pořadí pluginů"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Změna výchozího pořadí zásuvných modulů GStreameru"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Použít playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Vyžaduje restart přehrávače"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Experimentální"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Použít PipeWire pro zvukový výstup"
@@ -445,15 +424,15 @@ msgstr "Vojtěch Perník <translations@pervoj.cz>"
msgid "Ends at: %s"
msgstr "Končí v: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Neurčeno"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Kanály"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Vypnuto"

127
po/da.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:25\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Language: da_DK\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

129
po/de.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:25\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-27 16:27\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -41,12 +41,11 @@ msgstr "Über Clapper"
msgid "Speed"
msgstr "Wiedergabegeschwindigkeit"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normal"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Allgemein"
@@ -118,7 +117,7 @@ msgstr "Wiederholmodus ändern"
msgid "Export to file"
msgstr "Als Datei exportieren"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Wiedergabe"
@@ -182,203 +181,183 @@ msgstr "Decodierer"
msgid "Return to the preferences"
msgstr "Zurück zu den Einstellungen"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Verhalten"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Automatischer Vollbildmodus"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Vollbildmodus betreten, wenn Wiedergabeliste ersetzt wird. (Außer Clapper befindet sich im Schwebemodus)"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Nachfragen ob kürzlich wiedergegebene Medien weitergespielt werden sollen"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Schwebemodus auf allen Arbeitsflächen"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Diese Option funktioniert nur auf GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Nach Wiedergabe"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Nichts tun"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Letztes Bild einfrieren"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Anwendung beenden"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Lautstärke"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Benutzerdefinierter Anfangswert"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Lautstärke auf einen fixierten Wert beim Start setzen, anstelle ihn wiederherzustellen."
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Lautstärke (in Prozent)"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Springen"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Modus"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Genau"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Schnell"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Einheit"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Sekunden"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minuten"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Prozentsatz"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Wert"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Audio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Verschiebung in Millisekunden"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Nur systemeigene Audioformate"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Untertitel"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Standartschriftart"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Netzwerk"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Client"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Fortschreitender Download-Puffer"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Server"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Clapper fernsteuern"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Empfangsport"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Webanwendung im Hintergrund starten"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Benötigt, dass GTK mit Broadway Unterstützung kompiliert wurde"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Webanwendungsport"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Bevorzuge adaptives Streaming"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Höchste Qualität"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Optimierungen"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Erscheinungsbild"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Dunkler Modus"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Fensterschatten darstellen"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Deaktivieren, um Performance im Fenstermodus zu verbessern"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Plugin-Reihenfolge"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Standard GStreamer Reihenfolge verändern"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Playbin3 benutzen"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Benötigt Neustart von Clapper"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Experimentell"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "PipeWire für Audioausgabe verwenden"
@@ -438,22 +417,22 @@ msgstr "Ein von GStreamer betriebener GNOME Multimedia-Player"
#. TRANSLATORS: Put your name(s) here for credits or leave untranslated
#: src/dialogs.js:305
msgid "translator-credits"
msgstr ""
msgstr "Florian \"sp1rit\" <sp1rit@disroot.org>"
#: src/revealers.js:170
#, javascript-format
msgid "Ends at: %s"
msgstr "Ended um %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Unbestimmet"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Audio-Kanäle"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Deaktiviert"

127
po/el.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:25\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/es.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-01-16 16:58\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -41,12 +41,11 @@ msgstr "Acerca de Clapper"
msgid "Speed"
msgstr "Velocidad"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normal"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "General"
@@ -118,7 +117,7 @@ msgstr "Cambiar a modo repetir"
msgid "Export to file"
msgstr "Exportar a archivo"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Reproducir"
@@ -182,203 +181,183 @@ msgstr "Decodificadores"
msgid "Return to the preferences"
msgstr "Regresar a preferencias"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Configuraciones"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Pantalla completa automática"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Entra a pantalla completa cuando se reemplaza la lista de reproducción, excepto en modo flotante"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Preguntar al reanudar los medios recientes"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Flotar todos los espacios de trabajo"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Esta opción solo funciona en GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Después de reproducción "
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Nada por hacer"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Detener último fotograma"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Cerrar la aplicación"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Volumen"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Valor inicial personalizado"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Establece un volumen personalizado al inicio en lugar de restaurarlo"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Porcentaje de volumen"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Buscando"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Modo"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Precisión"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Rápido"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Unidad"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Segundo"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minuto"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Porcentaje"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Valor"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Audio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Compensación en milisegundos"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Solo formatos de audio nativos"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Subtítulos"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Fuente por defecto"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Red"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Cliente"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Bajada progresiva de búfer"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Servidor"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Controlar el reproductor remotamente"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Puerto de escucha"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Ejecutar la aplicación web en modo demonio"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Requiere GTK compilado con el backend de Broadway"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Puerto de la aplicación web"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Preferir la transmisión adaptativa "
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Calidad máxima"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Retoques"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Apariencia"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Tema oscuro"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Renderizar sombras de ventana"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Deshabilitado aumenta el rendimiento cuando se abre en ventana"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Rango de enchufes"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Altera los rangos predeterminados de los enchufes de GStreamer"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Usar Playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Require reiniciar el reproductor"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Experimental"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Usar PipeWire"
@@ -445,15 +424,15 @@ msgstr "carlosgonz"
msgid "Ends at: %s"
msgstr "Termina en: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Indeterminado"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Canales"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Deshabilitar"

127
po/eu.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-03-25 16:45\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Basque\n"
"Language: eu_ES\n"
@@ -41,12 +41,11 @@ msgstr "Clapperi buruz"
msgid "Speed"
msgstr "Abiadura"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normala"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Orokorra"
@@ -118,7 +117,7 @@ msgstr "Errepikapen modua aldatu"
msgid "Export to file"
msgstr "Esportatu fitxategira"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Erreprodukzioa"
@@ -182,203 +181,183 @@ msgstr "Deskodetzaileak"
msgid "Return to the preferences"
msgstr "Itzuli ezarpenetara"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Portaera"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Pantaila osoa automatikoa"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Pantaila osoan sartu erreprodukzio-zerrenda ordezten denean, flotatzeko modua izan ezik"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Azkenaldiko media berriro ekiteko eskatzea"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Laneko espazio guztietan flotatzea"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Aukera honek GNOMEn bakarrik funtzionatzen du"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Erreprodukzioaren ondoren"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Ez egin ezer"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Izoztu azken fotograma"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Aplikazioa itxi"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Bolumena"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Hasierako balio pertsonalizatua"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Hasieran bolumen pertsonalizatua ezartzea, lehengoratu beharrean"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Bolumenaren ehunekoa"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Bilaketa"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Modua"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Zehatza"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Azkarra"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Unitatea"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Segundu"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minutu"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Ehunekoa"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Balioa"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Audioa"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Desplazamendua milisegundotan"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Jatorrizko audio-formatuak bakarrik"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Azpitituluak"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Hizki lehenetsia"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Sarea"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Bezeroa"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Deskargak pixkanaka bufferizatzea"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Zerbitzaria"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Urrutiko erreproduzitzailea kontrolatzea"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Entzuteko ataka"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Web-aplikazioa bigarren planoan exekutatzea"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "GTK Broadwayko backend-arekin konpilatzea eskatzen du"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Web aplikazioaren ataka"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Transmisio moldagarria lehenestea"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Gehieneko kalitatea"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Ukituak"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Itxura"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Gai iluna"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Leihoetako itzalak errenderizatzea"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Desaktibatu leihoa erabiltzen denean errendimendua handitzeko"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Pluginen sailkapena"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Aldatu GStreamer-en pluginen lehenetsitako mailak"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Playbin3 erabili"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Berrabiaraztea eskatzen du"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Esperimentala"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Erabili PipeWire audio-irteerarako"
@@ -445,15 +424,15 @@ msgstr "Sergio Varela (@IngrownMink4)"
msgid "Ends at: %s"
msgstr "Amaiera: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Zehaztugabea"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Kanalak"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Desgaituta"

127
po/fi.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:25\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Language: fi_FI\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/fr.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-01-18 20:57\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -41,12 +41,11 @@ msgstr "Á propos de Clapper"
msgid "Speed"
msgstr "Vitesse"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normal"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Général"
@@ -118,7 +117,7 @@ msgstr "Changer le mode de répétition"
msgid "Export to file"
msgstr "Exporter vers un fichier"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Lecture"
@@ -182,203 +181,183 @@ msgstr "Décodeurs"
msgid "Return to the preferences"
msgstr "Retourner aux préférences"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Comportement"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Lecture automatique en plein écran"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Basculer en plein écran quand la playlisyt est remplacée sauf si le mode flottant est activé"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Demander pour reprendre à la position des médias récents"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Flotter sur tous les bureaux virtuels"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Cette option ne marche qu'avec GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Après la lecture"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Ne rien faire"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Geler la dernière image"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Fermer l'application"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Volume"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Valeur initiale personnalisée"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Régler une valeur personnalisée du volume au démarrage au lien de restorer la valeur précédente"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Pourcentage du volume"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Avancement"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Comportement"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Précis"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Rapide"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Unité des sauts"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Seconde"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minute"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Pourcentage"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Longueur du saut"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Audio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Décalage en millisecondes"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Seulement des formats audios natifs"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Sous-titres"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Police par défaut"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Réseau"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Client"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Téléchargement progressif dans le tampon"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Serveur"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Controler le lecteur à distance"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Écouter sur le port"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Lancer l'application web en arrière plan"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Requiert GTK compilé avec l'interface Broadway"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Port de l'application web"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Préférer le streaming adaptatif"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Qualité maximale"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Réglages"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Apparence"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Thème sombre"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Afficher les ombres de la fenêtre"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Désactiver pour améliorer les performances quand fenêtré"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Liste des plugins"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Changer les options par défaut de plugins GStreamer"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Utiliser playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Requiert le redémarrage du lecteur"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Expérimental"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Utiliser PipeWire pour la sortie audio"
@@ -445,15 +424,15 @@ msgstr "Robin Verdenal-Tallieux"
msgid "Ends at: %s"
msgstr "Finit à: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Indéterminé"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Chaines"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Désactivé"

127
po/he.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:25\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/hu.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-21 16:37\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -41,12 +41,11 @@ msgstr "A Clapper -ről"
msgid "Speed"
msgstr "Sebesség"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normál"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Általános beállítások"
@@ -118,7 +117,7 @@ msgstr "Ismétlési típus változtatása"
msgid "Export to file"
msgstr "Exportálás fájlba"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Lejátszás"
@@ -182,203 +181,183 @@ msgstr "Dekóderek"
msgid "Return to the preferences"
msgstr "Visszatérés a beállításokhoz"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Viselkedés"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Automatikus teljes képernyős mód"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Teljes képernyős módra váltás a lejátszólista megváltoztatásakor (kivétel ha lebegőablakos módban vagyunk)"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Rákérdezés a legutóbbi média folytatására"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Lebegő ablak az összes munkaasztalon"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Ez az opció csak GNOME asztali környezettel működik"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Lejátszás után"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Ne csináljon semmit"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Utolsó képkocka mutatása"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Alkalmazás bezárása"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Hangerő"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Egyedi kezdeti érték"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Induláskor egyedi hangerő az utolsó visszaállítása helyett"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Hangerő százalék"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Tekerés"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Mód"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Precíz"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Gyors"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Mértékegység"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Másodperc"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Perc"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Százalék"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Érték"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Hang"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Eltolás miliszekundumban"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Csak natív hang formátumok"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Feliratok"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Alapértelmezett betűtípus"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Hálózat"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Kliens"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Progresszív letöltéspufferelés"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Szerver"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Lejátszó távirányítása"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Port figyelése"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Web alkalmazás háttérben való futtatása"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Broadway backenddel fordított GTK -t igényel"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Web alkalmazás portja"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Adaptív streaming előnyben részesítése"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Maximális minőség"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Finomhangolások"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Megjelenés"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Sötét téma"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Ablak árnyékok renderelése"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Kikapcsolása javítja a teljesítményt ablakban futtatás esetén"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Bővítményrangsor"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Az alapértelmezett GStreamer bővítményrangsor megváltoztatása"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "A playbin3 használata"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "A lejátszó újraindítását igényli"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Kísérleti funkció"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "A PipeWire használata hang kimenetként"
@@ -445,15 +424,15 @@ msgstr "Ferenc Géczi"
msgid "Ends at: %s"
msgstr "%s-kor ér véget"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Meghatározatlan"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Csatornák"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Kikapcsolva"

129
po/it.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-10-04 08:30\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-27 12:50\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -41,12 +41,11 @@ msgstr "Informazioni su Clapper"
msgid "Speed"
msgstr "Velocità"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normale"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Generale"
@@ -118,7 +117,7 @@ msgstr "Cambia modalità di ripetizione"
msgid "Export to file"
msgstr "Esporta su file"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Riproduzione"
@@ -182,203 +181,183 @@ msgstr "Decodificatori"
msgid "Return to the preferences"
msgstr "Ritorna alle preferenze"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Comportamento"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Schermo intero automatico"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Attiva schermo intero quando la playlist viene sostituita, tranne in modalità fluttuante"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Chiedi di riprendere i media recenti"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Fluttuante su tutti i workspace"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Questa opzione funziona solo su GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Dopo la riproduzione"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Non fare nulla"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Mostra l'ultimo fotogramma"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Chiudi l'app"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Volume"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Valore iniziale personalizato"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Imposta un volume all'avvio personalizzato invece di ripristinarlo"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Percentuale volume"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Scorrimento"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Modalità"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Accurata"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Veloce"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Unità"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Secondo"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minuto"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Percentuale"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Valore"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Audio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Ritardo/Anticipo in millisecondi"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Solo formati audio nativi"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Sottotitoli"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Carattere predefinito"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Rete"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Client"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Download buffering progressivo"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Server"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Controlla la riproduzione da remoto"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Porta in ascolto"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Lancia l'applicazione web in sottofondo"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Richiede GTK compilato con il supporto a Broadway"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Porta per l'applicazione web"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Preferisci stream adattivo"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Qualità massima"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Aggiustamenti"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Aspetto"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Tema scuro"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Ombreggiatura della finestra"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Disabilita per aumentare le prestazioni in modalità finestra"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Ordine dei plugin"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Altera l'ordine predefinito dei plugin di GStreamer"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Usa playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Richiede il riavvio del player"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Sperimentale"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Usa PipeWire per l'uscita audio"
@@ -438,22 +417,22 @@ msgstr "Un riproduttore multimediale per GNOME basato su GStreamer"
#. TRANSLATORS: Put your name(s) here for credits or leave untranslated
#: src/dialogs.js:305
msgid "translator-credits"
msgstr ""
msgstr "Uniformbuffer"
#: src/revealers.js:170
#, javascript-format
msgid "Ends at: %s"
msgstr "Termina alle: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Indeterminato"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Canali"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Disabilitato"

127
po/ja.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-04-01 09:06\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -41,12 +41,11 @@ msgstr "Clapperについて"
msgid "Speed"
msgstr "速度"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "標準"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "一般"
@@ -118,7 +117,7 @@ msgstr "リピートモードを変更"
msgid "Export to file"
msgstr "ファイルへエクスポート"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "プレイバック"
@@ -182,203 +181,183 @@ msgstr "デコーダー"
msgid "Return to the preferences"
msgstr "設定へ戻る"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "挙動"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "自動的にフルスクリーンに切り替える"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "フローティングモードを除き、プレイリストを入れ替えた場合に自動的にフルスクリーンにする"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "前回再生したメディアを続きから再生するか尋ねる"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "すべてのワークスペースにフロートを配置する"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "このオプションはGnomeでのみ機能します"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "再生終了後"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "何もしない"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "最後のフレームで停止する"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "アプリを閉じる"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "音量"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "初期音量を設定する"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "前回使用した音量を使用するのではなく、起動時に音量をカスタム値に設定します"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "音量(%)"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "シーキング"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "モード"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "精密"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "高速"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "ユニット"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "秒"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "分"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "パーセント"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "値"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "オ−ディオ"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "オフセット(ミリ秒)"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "ネイティブオーディオフォーマットのみを使用する"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "字幕"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "既定のフォント"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "ネットワーク"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "クライアント"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "プログレッシブなバッファリングを使用する"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "サーバー"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "プレーヤーをリモートでコントロールする"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "待ち受けポート"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Webアプリケーションをバックグラウンドで実行する"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Broadwayバックエンドでコンパイルされた GTK が必要です"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Webアプリケーションのポート"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "アダプティブストリーミングを優先する"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Max quality"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "詳細設定"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "外観"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "ダークテーマ"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "ウィンドウの影をレンダリングする"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "無効化するとウィンドウモードでのパフォーマンスが向上します"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "プライグインの優先順位"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "GStreamerプラグインの優先順位を変更します"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "playbin3を使用"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "プレイヤーの再起動が必要です"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "試験運用機能"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "オーディオ出力にPipeWireを使用する"
@@ -445,15 +424,15 @@ msgstr "翻訳者"
msgid "Ends at: %s"
msgstr "再生終了時刻: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "不明"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "チャンネル"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Disabled"

127
po/ko.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:24\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/nl.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-04-08 16:14\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -41,12 +41,11 @@ msgstr "Over Clapper"
msgid "Speed"
msgstr "Snelheid"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normaal"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Algemeen"
@@ -118,7 +117,7 @@ msgstr "Herhaalmodus wijzigen"
msgid "Export to file"
msgstr "Exporteren naar bestand"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Afspelen"
@@ -182,203 +181,183 @@ msgstr "Decodering"
msgid "Return to the preferences"
msgstr "Terug naar voorkeuren"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Gedrag"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Beeldvullende modus automatisch inschakelen"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Schakel de beeldvullende modus automatisch in als de afspeellijst wordt vervangen (behalve in de zwevende modus)"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Vragen om onlangs afgespeelde media te hervatten"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Zweven op alle werkbladen"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Deze optie werkt alleen op GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Actie na het afspelen:"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Niets doen"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Laatste frame bevriezen"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Toepassing afsluiten"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Volume"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Aangepaste initiële waarde"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Stel een aangepast volumeniveau in bij het opstarten in plaats van het vorige te herstellen"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Volumeniveau"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Spoelen"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Modus"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Nauwkeurig"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Snel"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Eenheid"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Seconde"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minuut"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Percentage"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Waarde"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Audio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Verschuiving (in milliseconden)"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Alleen ingebouwde audioformaten"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Ondertiteling"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Standaardlettertype"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Netwerk"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Client"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Progressieve downloadbuffering"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Server"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Speler op afstand bedienen"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Luisteren op poort:"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Webtoepassing op achtergrond uitvoeren"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Vereist GTK met het Broadway-backend"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Webtoepassingspoort"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Adaptief streamen"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Maximumkwaliteit"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Aanpassingen"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Vormgeving"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Donker thema"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Vensterschaduwen tonen"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Schakel uit om de prestaties te verbeteren in de zwevende modus"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Plug-involgorde"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Pas de standaardvolgorde van GStreamer-plug-ins aan"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "playbin3 gebruiken"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Herstart de speler om de wijziging toe te passen"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Experimenteel"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "PipeWire gebruiken voor audio-uitvoer"
@@ -445,15 +424,15 @@ msgstr "Heimen Stoffels <vistausss@fastmail.com>"
msgid "Ends at: %s"
msgstr "Eindigt op: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "onbekend"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Kanalen"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Uitgeschakeld"

127
po/no.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:25\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/pl.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-15 08:41\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -41,12 +41,11 @@ msgstr "O programie"
msgid "Speed"
msgstr "Prędkość"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normalny"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Główne"
@@ -118,7 +117,7 @@ msgstr "Zmień tryb powtarzania"
msgid "Export to file"
msgstr "Eksportuj do pliku"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Odtwarzanie"
@@ -182,203 +181,183 @@ msgstr "Dekodery"
msgid "Return to the preferences"
msgstr "Wróć do preferencji"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Zachowanie"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Automatyczny tryb pełnoekranowy"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Wejdź do trybu pełnoekranowego, gdy lista odtwarzania zostanie zastąpiona z wyjątkiem trybu pływającego"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Pytaj o wznowienie ostatnich mediów"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Pływaj na wszystkich obszarach roboczych"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Ta opcja działa tylko na GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Po odtwarzaniu"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Nic nie rób"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Zamroź ostatnią klatkę"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Zamknij aplikację"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Głośność"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Wartość początkowa"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Ustaw własną głośność początkową zamiast ją przywracać"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Procent głośności"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Przewijanie"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Tryb"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Dokładny"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Szybki"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Jednostka"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Sekunda"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minuta"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Procent"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Wartość"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Audio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Przesunięcie w milisekundach"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Tylko natywne formaty audio"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Napisy"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Domyślna czcionka"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Sieć"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Klient"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Buforuj pobierając progresywnie"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Serwer"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Zdalne sterowanie odtwarzaczem"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Port połączeń przychodzących"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Uruchom aplikację webową w tle"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Wymaga GTK skompilowanego z backendem Broadway"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Port aplikacji webowej"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Preferuj adaptacyjne streamowanie"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Maksymalna jakość"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Dostrajanie"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Wygląd"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Ciemny motyw"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Renderuj cienie okna"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Wyłącz, aby zwiększyć wydajność w trybie okienkowym"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Ranking pluginów"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Zmień domyślne rangi pluginów GStreamera"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Użyj playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Wymaga restartu odtwarzacza"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Eksperyment"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Użyj PipeWire do wyprowadzenia dźwięku"
@@ -445,15 +424,15 @@ msgstr "Rafał Dzięgiel <rafostar.github@gmail.com>"
msgid "Ends at: %s"
msgstr "Koniec o: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Nieokreślony"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Kanały"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Wyłączony"

127
po/pt.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-05-01 18:43\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -41,12 +41,11 @@ msgstr "Sobre o Clapper"
msgid "Speed"
msgstr "Velocidade"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Predefinido"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Geral"
@@ -118,7 +117,7 @@ msgstr "Alterar modo de repetição"
msgid "Export to file"
msgstr "Exportar para ficheiro"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Reproduzir"
@@ -182,203 +181,183 @@ msgstr "Descodificadores"
msgid "Return to the preferences"
msgstr "Voltar para as preferências"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Comportamento"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Ecrã inteiro automático"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Entrar em ecrã inteiro quando a lista de reprodução é substituída, excepto no modo flutuante"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Pedir para retomar o ficheiro recente"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Flutuar em todas as áreas de trabalho"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Esta opção apenas funciona no GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Após reprodução"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Não fazer nada"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Suster o fotograma"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Fechar a aplicação"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Volume"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Valor inicial personalizado"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Definir volume personalizado no arranque ao invés de restaurá-lo"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Percentagem de volume"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Procurando"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Modo"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Preciso"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Rápido"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Unidade"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Segundo"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minuto"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Percentagem"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Valor"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Áudio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Deslocamento em milissegundos"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Apenas formatos de áudio nativos"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Legendas"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Tipo de letra predefinida"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Rede"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Cliente"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Buffering de transferência progressiva"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Servidor"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Controlar reprodutor remotamente"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Porta de escuta"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Executar aplicação web em segundo plano"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Requer GTK compilado com backend Broadway"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Porta de aplicação Web"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Preferir transmissão adaptável"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Qualidade máxima"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Ajustes"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Aparência"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Tema escuro"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Renderizar sombras das janelas"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Desativar para aumentar o desempenho quando em janela"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Classificação do plugin"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Altera as classificações predefinidas dos plugins GStreamer"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Usar playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Requer o reinício do reprodutor"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Experimental"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Usar o PipeWire para a saída áudio"
@@ -445,15 +424,15 @@ msgstr "Hugo Carvalho <hugokarvalho@hotmail.com>"
msgid "Ends at: %s"
msgstr "Termina às: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Indeterminado"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Canais"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Desativado"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-10-11 10:33\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -41,12 +41,11 @@ msgstr "Sobre o Clapper"
msgid "Speed"
msgstr "Velocidade"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normal"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Geral"
@@ -118,7 +117,7 @@ msgstr "Alternar modo de repetição"
msgid "Export to file"
msgstr "Exportar arquivo"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Reprodução"
@@ -182,203 +181,183 @@ msgstr "Decodificadores"
msgid "Return to the preferences"
msgstr "Voltar para as preferências"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Comportamento"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Tela cheia automaticamente"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Insira em tela cheia quando a lista de reprodução for substituída, exceto o modo flutuante"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Pedir para retomar o video recente"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Flutuar em todas as áreas de trabalho"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Esta opção só funciona no GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Pós reprodução"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Não fazer nada"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Congelar o último quadro"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Fechar aplicativo"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Volume"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Valor inicial personalizado"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Definir volume personalizado na inicialização ao invés de restaurá-lo"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Percentual do volume"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Buscando"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Modo"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Preciso"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Rápido"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Unidade"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Segundo"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minuto"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Porcentagem"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Valor"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Audio"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "tempo de desvanecimento em milissegundos"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Apenas formatos de áudio nativos"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Legendas"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Fonte padrão"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Rede"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Cliente"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "buffering progressivo de download"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Servidor"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Controle o video remotamente "
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Porta de escuta"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Executar web app em segundo plano"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Requer GTK compilado com backend de Broadway"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Porta do aplicativo Web"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Preferir streaming adaptável"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Qualidade Máxima"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Ajustes"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Aparência"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Tema Escuro"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Renderizar sombras das janelas"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Desabilite para aumentar o desempenho em placas gráficas mais fracas."
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Classificação do plugin"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Altera os ranks padrão dos plugins do GStreamer"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Usar playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Requer reinicialização do Clapper"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Experimental"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Usar PipeWire para saída de áudio"
@@ -445,15 +424,15 @@ msgstr "KevenDoriaLinuxBR"
msgid "Ends at: %s"
msgstr "termina em %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Indeterminado"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Canais"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Desabilitado"

127
po/ro.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:24\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Language: ro_RO\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/ru.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-01-16 14:15\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -41,12 +41,11 @@ msgstr "О приложении"
msgid "Speed"
msgstr "Скорость"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Обычная"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Общие"
@@ -118,7 +117,7 @@ msgstr "Изменить режим повторения"
msgid "Export to file"
msgstr "Экспорт в файл"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Воспроизведение"
@@ -182,203 +181,183 @@ msgstr "Декодеры"
msgid "Return to the preferences"
msgstr "Вернуться к настройкам"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Поведение"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Автоматический полноэкранный режим"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Переход в полноэкранный режим при замене списка воспроизведения, кроме плавающего режима"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Спрашивать о возобновление недавние медиа"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Показывать «плавающий режим» на всех рабочих столах"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Эта опция работает только в GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "После воспроизведения"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Ничего не делать"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Заморозить последний кадр"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Закрыть приложение"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Громкость"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Пользовательское начальное значение"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Установите настраиваемую громкость при запуске вместо ее восстановления"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Процент громкости"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Перемотка"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Режим"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Точный"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Быстрый"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Ед. изм"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Секунды"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Минуты"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Проценты"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Значение"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Аудио"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Смещение в миллисекундах"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Только нативные аудиоформаты"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Субтитры"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Шрифт по умолчанию"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Сеть"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Клиент"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Прогрессивная буферизация загрузки"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Сервер"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Удаленное управление плеером"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Порт прослушивания"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Запустить веб-приложение в фоновом режиме"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Требуется GTK, скомпилированный с бэкэндом Broadway"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Порт веб-приложения"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Предпочитайте адаптивную потоковую передачу"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Максимальное качество"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Твики"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Внешний вид"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Тёмная тема"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Рендеринг оконных теней"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Отключить, чтобы повысить производительность в оконном режиме"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Рейтинг плагинов"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Изменить ранги плагинов GStreamer по умолчанию"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Использовать playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Требуется перезапуск плеера"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Экспериментально"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Использовать PipeWire для вывода звука"
@@ -445,15 +424,15 @@ msgstr "Игорь Дятлов"
msgid "Ends at: %s"
msgstr "Окончание: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Неопределенный"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Каналы"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Отключено"

127
po/sr.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:25\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Serbian (Cyrillic)\n"
"Language: sr_SP\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/sv.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-01-16 14:15\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -41,12 +41,11 @@ msgstr "Om Clapper"
msgid "Speed"
msgstr "Hastighet"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normal"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Allmänt"
@@ -118,7 +117,7 @@ msgstr "Ändra upprepningsläge"
msgid "Export to file"
msgstr "Exportera till fil"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Uppspelning"
@@ -182,203 +181,183 @@ msgstr "Avkodare"
msgid "Return to the preferences"
msgstr "Återgå till inställningarna"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Beteende"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Automatiskt helskärmsläge"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr "Växla till fullskärmsläge när en spellista ersätts, förutom i flytande läge"
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr "Be att återuppta senaste media"
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr "Flyt på alla arbetsytor"
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "Det här alternativet fungerar endast i GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "Efter uppspelning"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "Gör ingenting"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "Frys sista bildruta"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "Stäng appen"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "Volym"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "Anpassat startvärde"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr "Ställ in anpassad volym vid start istället för att återställa den"
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "Volymprocent"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "Spolning"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "Läge"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "Riktig"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "Snabbt"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "Enhet"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "Sekund"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "Minut"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "Procent"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "Värde"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "Ljud"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr "Förskjutning i millisekunder"
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr "Endast inbyggda ljudformat"
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "Undertexter"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "Standardteckensnitt"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "Nätverk"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "Klient"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr "Progressiv nedladdningsbuffert"
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "Server"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "Fjärrstyra spelaren"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "Lyssningsport"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr "Kör webbprogram i bakgrunden"
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr "Kräver GTK kompilerad med Broadway backend"
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Port för webbprogram"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr "Föredra adaptiv streaming"
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr "Max kvalitet"
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "Tweaks"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "Utseende"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "Mörkt Tema"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "Rendera fönsterskuggor"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr "Inaktivera för att öka prestanda när fönsterläge är på"
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr "Rangordning av plugin"
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr "Ändra standardrankningar för GStreamer-plugins"
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "Använd playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "Kräver omstart av spelaren"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "Exprimentalt"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "Använd PipeWire för Ljudutgång"
@@ -445,15 +424,15 @@ msgstr "SA ST (sastofficial)"
msgid "Ends at: %s"
msgstr "Slutar vid: %s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr "Obestämd"
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "Kanaler"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "Avstängd"

127
po/tr.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-04-02 01:43\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -41,12 +41,11 @@ msgstr "Clapper Hakkında"
msgid "Speed"
msgstr "Hız"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "Normal"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "Genel"
@@ -118,7 +117,7 @@ msgstr "Tekrarlı oynatma modunu değiştir"
msgid "Export to file"
msgstr "Dosyaya aktar"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "Oynatma"
@@ -182,203 +181,183 @@ msgstr "Çözücüler"
msgid "Return to the preferences"
msgstr "Tercihlere geri dön"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "Davranış"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "Otomatik tam ekran"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/uk.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:24\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

127
po/vi.po
View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:24\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2022-04-20 18:10\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -41,12 +41,11 @@ msgstr "关于 Claper"
msgid "Speed"
msgstr "速度"
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr "一般"
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr "常规​​​​​"
@@ -118,7 +117,7 @@ msgstr "更改循环模式"
msgid "Export to file"
msgstr "导出至文件"
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr "播放"
@@ -182,203 +181,183 @@ msgstr "解码器"
msgid "Return to the preferences"
msgstr "返回首选项"
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr "行为"
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr "自动全屏"
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr "此选项仅适用于 GNOME"
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr "播放结束后"
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr "不执行任何操作"
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr "停留在最后一帧"
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr "关闭应用程序"
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr "音量"
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr "自定义初始值"
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr "音量百分比"
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr "定位播放"
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr "模式"
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr "精确"
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr "快速"
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr "单位"
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr "秒钟"
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr "分钟"
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr "百分比"
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr "值"
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr "音频"
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr "字幕"
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr "默认字体"
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr "网络"
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr "客户端"
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr "服务器"
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr "远程控制播放器"
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr "监听端口"
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr "Web 应用程序端口"
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr "调整"
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr "界面"
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr "暗色主题"
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr "渲染窗口阴影"
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr "使用 playbin3"
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr "需要重启播放器"
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr "实验性功能"
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr "使用 PipeWire 输出音频"
@@ -445,15 +424,15 @@ msgstr "刘韬"
msgid "Ends at: %s"
msgstr "结束于:%s"
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr "声道"
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr "禁用"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: clapper\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-09-14 16:35+0200\n"
"PO-Revision-Date: 2021-09-14 15:24\n"
"POT-Creation-Date: 2022-05-26 18:41+0200\n"
"PO-Revision-Date: 2022-05-26 16:50\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Language: zh_TW\n"
@@ -41,12 +41,11 @@ msgstr ""
msgid "Speed"
msgstr ""
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:83
#: ui/preferences-window.ui:215
#: ui/elapsed-time-button.ui:41 ui/preferences-window.ui:82
msgid "Normal"
msgstr ""
#: ui/help-overlay.ui:10 ui/preferences-window.ui:12
#: ui/help-overlay.ui:10 ui/preferences-window.ui:11
msgid "General"
msgstr ""
@@ -118,7 +117,7 @@ msgstr ""
msgid "Export to file"
msgstr ""
#: ui/help-overlay.ui:95 ui/preferences-window.ui:119
#: ui/help-overlay.ui:95 ui/preferences-window.ui:118
msgid "Playback"
msgstr ""
@@ -182,203 +181,183 @@ msgstr ""
msgid "Return to the preferences"
msgstr ""
#: ui/preferences-window.ui:16
#: ui/preferences-window.ui:15
msgid "Behavior"
msgstr ""
#: ui/preferences-window.ui:19
#: ui/preferences-window.ui:18
msgid "Auto fullscreen"
msgstr ""
#: ui/preferences-window.ui:20
#: ui/preferences-window.ui:19
msgid "Enter fullscreen when playlist is replaced except floating mode"
msgstr ""
#: ui/preferences-window.ui:26
#: ui/preferences-window.ui:25
msgid "Ask to resume recent media"
msgstr ""
#: ui/preferences-window.ui:32
#: ui/preferences-window.ui:31
msgid "Float on all workspaces"
msgstr ""
#: ui/preferences-window.ui:33
#: ui/preferences-window.ui:32
msgid "This option only works on GNOME"
msgstr ""
#: ui/preferences-window.ui:39
#: ui/preferences-window.ui:38
msgid "After playback"
msgstr ""
#: ui/preferences-window.ui:44
#: ui/preferences-window.ui:43
msgid "Do nothing"
msgstr ""
#: ui/preferences-window.ui:45
#: ui/preferences-window.ui:44
msgid "Freeze last frame"
msgstr ""
#: ui/preferences-window.ui:46
#: ui/preferences-window.ui:45
msgid "Close the app"
msgstr ""
#: ui/preferences-window.ui:56
#: ui/preferences-window.ui:55
msgid "Volume"
msgstr ""
#: ui/preferences-window.ui:59
#: ui/preferences-window.ui:58
msgid "Custom initial value"
msgstr ""
#: ui/preferences-window.ui:60
#: ui/preferences-window.ui:59
msgid "Set custom volume at startup instead of restoring it"
msgstr ""
#: ui/preferences-window.ui:64
#: ui/preferences-window.ui:63
msgid "Volume percentage"
msgstr ""
#: ui/preferences-window.ui:75
#: ui/preferences-window.ui:74
msgid "Seeking"
msgstr ""
#: ui/preferences-window.ui:78
#: ui/preferences-window.ui:77
msgid "Mode"
msgstr ""
#: ui/preferences-window.ui:84
#: ui/preferences-window.ui:83
msgid "Accurate"
msgstr ""
#: ui/preferences-window.ui:85
#: ui/preferences-window.ui:84
msgid "Fast"
msgstr ""
#: ui/preferences-window.ui:93
#: ui/preferences-window.ui:92
msgid "Unit"
msgstr ""
#: ui/preferences-window.ui:98
#: ui/preferences-window.ui:97
msgid "Second"
msgstr ""
#: ui/preferences-window.ui:99
#: ui/preferences-window.ui:98
msgid "Minute"
msgstr ""
#: ui/preferences-window.ui:100
#: ui/preferences-window.ui:99
msgid "Percentage"
msgstr ""
#: ui/preferences-window.ui:108
#: ui/preferences-window.ui:107
msgid "Value"
msgstr ""
#: ui/preferences-window.ui:123
#: ui/preferences-window.ui:122
msgid "Audio"
msgstr ""
#: ui/preferences-window.ui:126
#: ui/preferences-window.ui:125
msgid "Offset in milliseconds"
msgstr ""
#: ui/preferences-window.ui:133
#: ui/preferences-window.ui:132
msgid "Only native audio formats"
msgstr ""
#: ui/preferences-window.ui:141
#: ui/preferences-window.ui:140
msgid "Subtitles"
msgstr ""
#: ui/preferences-window.ui:144
#: ui/preferences-window.ui:143
msgid "Default font"
msgstr ""
#: ui/preferences-window.ui:154
#: ui/preferences-window.ui:153
msgid "Network"
msgstr ""
#: ui/preferences-window.ui:158
#: ui/preferences-window.ui:157
msgid "Client"
msgstr ""
#: ui/preferences-window.ui:161
#: ui/preferences-window.ui:160
msgid "Progressive download buffering"
msgstr ""
#: ui/preferences-window.ui:169
#: ui/preferences-window.ui:168
msgid "Server"
msgstr ""
#: ui/preferences-window.ui:172
#: ui/preferences-window.ui:171
msgid "Control player remotely"
msgstr ""
#: ui/preferences-window.ui:176
#: ui/preferences-window.ui:175
msgid "Listening port"
msgstr ""
#: ui/preferences-window.ui:183
msgid "Run web application in background"
msgstr ""
#: ui/preferences-window.ui:184
msgid "Requires GTK compiled with Broadway backend"
msgstr ""
#: ui/preferences-window.ui:190
msgid "Web application port"
msgstr ""
#: ui/preferences-window.ui:204
msgid "Prefer adaptive streaming"
msgstr ""
#: ui/preferences-window.ui:210
msgid "Max quality"
msgstr ""
#: ui/preferences-window.ui:228
#: ui/preferences-window.ui:188
msgid "Tweaks"
msgstr ""
#: ui/preferences-window.ui:232
#: ui/preferences-window.ui:192
msgid "Appearance"
msgstr ""
#: ui/preferences-window.ui:235
#: ui/preferences-window.ui:195
msgid "Dark theme"
msgstr ""
#: ui/preferences-window.ui:241
#: ui/preferences-window.ui:201
msgid "Render window shadows"
msgstr ""
#: ui/preferences-window.ui:242
#: ui/preferences-window.ui:202
msgid "Disable to increase performance when windowed"
msgstr ""
#: ui/preferences-window.ui:253
#: ui/preferences-window.ui:213
msgid "Plugin ranking"
msgstr ""
#: ui/preferences-window.ui:254
#: ui/preferences-window.ui:214
msgid "Alter default ranks of GStreamer plugins"
msgstr ""
#: ui/preferences-window.ui:259
#: ui/preferences-window.ui:219
msgid "Use playbin3"
msgstr ""
#: ui/preferences-window.ui:260 ui/preferences-window.ui:269
#: ui/preferences-window.ui:220 ui/preferences-window.ui:229
msgid "Requires player restart"
msgstr ""
#: ui/preferences-window.ui:262 ui/preferences-window.ui:271
#: ui/preferences-window.ui:222 ui/preferences-window.ui:231
msgid "Experimental"
msgstr ""
#: ui/preferences-window.ui:268
#: ui/preferences-window.ui:228
msgid "Use PipeWire for audio output"
msgstr ""
@@ -445,15 +424,15 @@ msgstr ""
msgid "Ends at: %s"
msgstr ""
#: src/widget.js:227 src/widget.js:236 src/widget.js:242 src/widget.js:248
#: src/widget.js:226 src/widget.js:235 src/widget.js:241 src/widget.js:247
msgid "Undetermined"
msgstr ""
#: src/widget.js:243
#: src/widget.js:242
msgid "Channels"
msgstr ""
#: src/widget.js:261
#: src/widget.js:260
msgid "Disabled"
msgstr ""

View File

@@ -1,27 +1,92 @@
const { Gio, GObject, Gdk, Gtk } = imports.gi;
const { AppBase } = imports.src.appBase;
const { Gio, GObject, Gtk } = imports.gi;
const { Widget } = imports.src.widget;
const Debug = imports.src.debug;
const FileOps = imports.src.fileOps;
const Misc = imports.src.misc;
const Actions = imports.src.actions;
const { debug } = Debug;
const { settings } = Misc;
var App = GObject.registerClass({
GTypeName: 'ClapperApp',
},
class ClapperApp extends AppBase
class ClapperApp extends Gtk.Application
{
_init()
{
super._init();
super._init({
application_id: Misc.appId,
flags: Gio.ApplicationFlags.HANDLES_OPEN,
});
this.flags |= Gio.ApplicationFlags.HANDLES_OPEN;
this.doneFirstActivate = false;
this.isFileAppend = false;
this.mapSignal = null;
}
vfunc_startup()
vfunc_open(files, hint)
{
super.vfunc_startup();
super.vfunc_open(files, hint);
this.activate();
this._openFilesAsync(files).catch(debug);
}
vfunc_activate()
{
super.vfunc_activate();
if(!this.doneFirstActivate)
this._onFirstActivate();
this.active_window.present();
}
async _openFilesAsync(files)
{
const urisArr = [];
for(let file of files) {
const uri = file.get_uri();
if(!uri.startsWith('file:')) {
urisArr.push(uri);
continue;
}
/* If file is not a dir its URI will be returned in an array */
const uris = await FileOps.getDirFilesUrisPromise(file).catch(debug);
if(uris && uris.length)
urisArr.push(...uris);
}
const [playlist, subs] = Misc.parsePlaylistFiles(urisArr);
const { player } = this.active_window.get_child();
const action = (this.isFileAppend) ? 'append' : 'set';
if(playlist && playlist.length)
player[`${action}_playlist`](playlist);
if(subs)
player.set_subtitles(subs);
/* Restore default behavior */
this.isFileAppend = false;
}
_onFirstActivate()
{
const window = new Gtk.ApplicationWindow({
application: this,
title: Misc.appName,
});
window.add_css_class('adwrounded');
if(!settings.get_boolean('render-shadows'))
window.add_css_class('gpufriendly');
window.add_css_class('gpufriendlyfs');
const window = this.active_window;
const clapperWidget = new Widget();
const dummyHeaderbar = new Gtk.Box({
can_focus: false,
@@ -33,14 +98,20 @@ class ClapperApp extends AppBase
window.set_child(clapperWidget);
window.set_titlebar(dummyHeaderbar);
for(let name in Actions.actions) {
const simpleAction = new Gio.SimpleAction({ name });
simpleAction.connect('activate', (action) =>
Actions.handleAction(action, window)
);
this.add_action(simpleAction);
const accels = Actions.actions[name];
if(accels)
this.set_accels_for_action(`app.${name}`, accels);
}
this.mapSignal = window.connect('map', this._onWindowMap.bind(this));
}
vfunc_open(files, hint)
{
super.vfunc_open(files, hint);
this._openFilesAsync(files).then(() => this.activate()).catch(debug);
this.doneFirstActivate = true;
}
_onWindowMap(window)

View File

@@ -1,101 +0,0 @@
const { Gio, GLib, GObject, Gtk } = imports.gi;
const Debug = imports.src.debug;
const FileOps = imports.src.fileOps;
const Misc = imports.src.misc;
const Actions = imports.src.actions;
const { debug } = Debug;
const { settings } = Misc;
var AppBase = GObject.registerClass({
GTypeName: 'ClapperAppBase',
},
class ClapperAppBase extends Gtk.Application
{
_init()
{
super._init({
application_id: Misc.appId,
});
this.doneFirstActivate = false;
this.isFileAppend = false;
}
vfunc_startup()
{
super.vfunc_startup();
const window = new Gtk.ApplicationWindow({
application: this,
title: Misc.appName,
});
/* FIXME: AFAIK there is no way to detect theme rounded corners.
* Having 2/4 corners rounded in floating mode is not good. */
window.add_css_class('adwrounded');
if(!settings.get_boolean('render-shadows'))
window.add_css_class('gpufriendly');
window.add_css_class('gpufriendlyfs');
}
vfunc_activate()
{
super.vfunc_activate();
if(!this.doneFirstActivate)
this._onFirstActivate();
this.active_window.present_with_time(
Math.floor(GLib.get_monotonic_time() / 1000)
);
}
async _openFilesAsync(files)
{
const urisArr = [];
for(let file of files) {
const uri = file.get_uri();
if(!uri.startsWith('file:')) {
urisArr.push(uri);
continue;
}
/* If file is not a dir its URI will be returned in an array */
const uris = await FileOps.getDirFilesUrisPromise(file).catch(debug);
if(uris && uris.length)
urisArr.push(...uris);
}
const [playlist, subs] = Misc.parsePlaylistFiles(urisArr);
const { player } = this.active_window.get_child();
const action = (this.isFileAppend) ? 'append' : 'set';
if(playlist && playlist.length)
player[`${action}_playlist`](playlist);
if(subs)
player.set_subtitles(subs);
/* Restore default behavior */
this.isFileAppend = false;
}
_onFirstActivate()
{
for(let name in Actions.actions) {
const simpleAction = new Gio.SimpleAction({ name });
simpleAction.connect('activate', (action) =>
Actions.handleAction(action, this.active_window)
);
this.add_action(simpleAction);
const accels = Actions.actions[name];
if(accels)
this.set_accels_for_action(`app.${name}`, accels);
}
this.doneFirstActivate = true;
}
});

View File

@@ -1,11 +1,233 @@
const { GObject } = imports.gi;
const { HeaderBarBase } = imports.src.headerbarBase;
const { GObject, Gtk } = imports.gi;
const Debug = imports.src.debug;
const Misc = imports.src.misc;
const { debug } = Debug;
var HeaderBar = GObject.registerClass({
GTypeName: 'ClapperHeaderBar',
},
class ClapperHeaderBar extends HeaderBarBase
class ClapperHeaderBar extends Gtk.Box
{
_init()
{
super._init({
can_focus: false,
orientation: Gtk.Orientation.HORIZONTAL,
spacing: 6,
margin_top: 6,
margin_start: 6,
margin_end: 6,
});
this.add_css_class('osdheaderbar');
this.isMaximized = false;
this.isMenuOnLeft = true;
const uiBuilder = Misc.getBuilderForName('clapper.ui');
this.menuWidget = new Gtk.Box({
orientation: Gtk.Orientation.HORIZONTAL,
valign: Gtk.Align.CENTER,
spacing: 6,
});
this.menuButton = new Gtk.MenuButton({
icon_name: 'open-menu-symbolic',
valign: Gtk.Align.CENTER,
can_focus: false,
});
const menuToggleButton = this.menuButton.get_first_child();
menuToggleButton.add_css_class('osd');
const mainMenuModel = uiBuilder.get_object('mainMenu');
const mainMenuPopover = new HeaderBarPopover(mainMenuModel);
this.menuButton.set_popover(mainMenuPopover);
this.menuButton.add_css_class('circular');
this.menuWidget.append(this.menuButton);
this.extraButtonsBox = new Gtk.Box({
orientation: Gtk.Orientation.HORIZONTAL,
valign: Gtk.Align.CENTER,
});
this.extraButtonsBox.add_css_class('linked');
const floatButton = new Gtk.Button({
icon_name: 'pip-in-symbolic',
can_focus: false,
});
floatButton.add_css_class('osd');
floatButton.add_css_class('circular');
floatButton.add_css_class('linkedleft');
floatButton.connect('clicked',
this._onFloatButtonClicked.bind(this)
);
this.extraButtonsBox.append(floatButton);
const separator = new Gtk.Separator({
orientation: Gtk.Orientation.VERTICAL,
});
separator.add_css_class('linkseparator');
this.extraButtonsBox.append(separator);
const fullscreenButton = new Gtk.Button({
icon_name: 'view-fullscreen-symbolic',
can_focus: false,
});
fullscreenButton.add_css_class('osd');
fullscreenButton.add_css_class('circular');
fullscreenButton.add_css_class('linkedright');
fullscreenButton.connect('clicked',
this._onFullscreenButtonClicked.bind(this)
);
this.extraButtonsBox.append(fullscreenButton);
this.menuWidget.append(this.extraButtonsBox);
this.spacerWidget = new Gtk.Box({
hexpand: true,
});
this.minimizeWidget = this._getWindowButton('minimize');
this.maximizeWidget = this._getWindowButton('maximize');
this.closeWidget = this._getWindowButton('close');
const gtkSettings = Gtk.Settings.get_default();
this._onLayoutUpdate(gtkSettings);
gtkSettings.connect(
'notify::gtk-decoration-layout',
this._onLayoutUpdate.bind(this)
);
}
setMenuOnLeft(isOnLeft)
{
if(this.isMenuOnLeft === isOnLeft)
return;
if(isOnLeft) {
this.menuWidget.reorder_child_after(
this.extraButtonsBox, this.menuButton
);
}
else {
this.menuWidget.reorder_child_after(
this.menuButton, this.extraButtonsBox
);
}
this.isMenuOnLeft = isOnLeft;
}
setMaximized(isMaximized)
{
if(this.isMaximized === isMaximized)
return;
this.maximizeWidget.icon_name = (isMaximized)
? 'window-restore-symbolic'
: 'window-maximize-symbolic';
this.isMaximized = isMaximized;
}
_onLayoutUpdate(gtkSettings)
{
const gtkLayout = gtkSettings.gtk_decoration_layout;
this._replaceButtons(gtkLayout);
}
_replaceButtons(gtkLayout)
{
const modLayout = gtkLayout.replace(':', ',spacer,');
const layoutArr = modLayout.split(',');
let lastWidget = null;
let showMinimize = false;
let showMaximize = false;
let showClose = false;
let menuAdded = false;
let spacerAdded = false;
debug(`headerbar layout: ${modLayout}`);
for(let name of layoutArr) {
/* Menu might be named "appmenu" */
if(!menuAdded && (!name || name === 'appmenu' || name === 'icon'))
name = 'menu';
const widget = this[`${name}Widget`];
if(!widget) continue;
if(!widget.parent)
this.append(widget);
else
this.reorder_child_after(widget, lastWidget);
switch(name) {
case 'spacer':
spacerAdded = true;
break;
case 'minimize':
showMinimize = true;
break;
case 'maximize':
showMaximize = true;
break;
case 'close':
showClose = true;
break;
case 'menu':
this.setMenuOnLeft(!spacerAdded);
menuAdded = true;
break;
default:
break;
}
lastWidget = widget;
}
this.minimizeWidget.visible = showMinimize;
this.maximizeWidget.visible = showMaximize;
this.closeWidget.visible = showClose;
}
_getWindowButton(name)
{
const button = new Gtk.Button({
icon_name: `window-${name}-symbolic`,
valign: Gtk.Align.CENTER,
can_focus: false,
});
button.add_css_class('osd');
button.add_css_class('circular');
if(name === 'maximize')
name = 'toggle-maximized';
button.connect('clicked',
this._onWindowButtonActivate.bind(this, name)
);
return button;
}
_updateFloatIcon(isFloating)
{
const floatButton = this.extraButtonsBox.get_first_child();
if(!floatButton) return;
const iconName = (isFloating)
? 'pip-out-symbolic'
: 'pip-in-symbolic';
if(floatButton.icon_name !== iconName)
floatButton.icon_name = iconName;
}
_onWindowButtonActivate(action)
{
this.activate_action(`window.${action}`, null);
@@ -29,3 +251,49 @@ class ClapperHeaderBar extends HeaderBarBase
this.root.fullscreen();
}
});
var HeaderBarPopover = GObject.registerClass({
GTypeName: 'ClapperHeaderBarPopover',
},
class ClapperHeaderBarPopover extends Gtk.PopoverMenu
{
_init(model)
{
super._init({
menu_model: model,
});
this.connect('map', this._onMap.bind(this));
this.connect('closed', this._onClosed.bind(this));
}
_onMap()
{
const { child } = this.root;
if(
!child
|| !child.player
|| !child.player.widget
)
return;
child.revealControls();
child.isPopoverOpen = true;
}
_onClosed()
{
const { child } = this.root;
if(
!child
|| !child.player
|| !child.player.widget
)
return;
child.revealControls();
child.isPopoverOpen = false;
}
});

View File

@@ -1,288 +0,0 @@
const { GObject, Gtk } = imports.gi;
const Debug = imports.src.debug;
const Misc = imports.src.misc;
const { debug } = Debug;
var HeaderBarBase = GObject.registerClass({
GTypeName: 'ClapperHeaderBarBase',
},
class ClapperHeaderBarBase extends Gtk.Box
{
_init()
{
super._init({
can_focus: false,
orientation: Gtk.Orientation.HORIZONTAL,
spacing: 6,
margin_top: 6,
margin_start: 6,
margin_end: 6,
});
this.add_css_class('osdheaderbar');
this.isMaximized = false;
this.isMenuOnLeft = true;
const uiBuilder = Misc.getBuilderForName('clapper.ui');
this.menuWidget = new Gtk.Box({
orientation: Gtk.Orientation.HORIZONTAL,
valign: Gtk.Align.CENTER,
spacing: 6,
});
this.menuButton = new Gtk.MenuButton({
icon_name: 'open-menu-symbolic',
valign: Gtk.Align.CENTER,
can_focus: false,
});
const menuToggleButton = this.menuButton.get_first_child();
menuToggleButton.add_css_class('osd');
const mainMenuModel = uiBuilder.get_object('mainMenu');
const mainMenuPopover = new HeaderBarPopover(mainMenuModel);
this.menuButton.set_popover(mainMenuPopover);
this.menuButton.add_css_class('circular');
this.menuWidget.append(this.menuButton);
this.extraButtonsBox = new Gtk.Box({
orientation: Gtk.Orientation.HORIZONTAL,
valign: Gtk.Align.CENTER,
});
this.extraButtonsBox.add_css_class('linked');
const floatButton = new Gtk.Button({
icon_name: 'pip-in-symbolic',
can_focus: false,
});
floatButton.add_css_class('osd');
floatButton.add_css_class('circular');
floatButton.add_css_class('linkedleft');
floatButton.connect('clicked',
this._onFloatButtonClicked.bind(this)
);
this.extraButtonsBox.append(floatButton);
const separator = new Gtk.Separator({
orientation: Gtk.Orientation.VERTICAL,
});
separator.add_css_class('linkseparator');
this.extraButtonsBox.append(separator);
const fullscreenButton = new Gtk.Button({
icon_name: 'view-fullscreen-symbolic',
can_focus: false,
});
fullscreenButton.add_css_class('osd');
fullscreenButton.add_css_class('circular');
fullscreenButton.add_css_class('linkedright');
fullscreenButton.connect('clicked',
this._onFullscreenButtonClicked.bind(this)
);
this.extraButtonsBox.append(fullscreenButton);
this.menuWidget.append(this.extraButtonsBox);
this.spacerWidget = new Gtk.Box({
hexpand: true,
});
this.minimizeWidget = this._getWindowButton('minimize');
this.maximizeWidget = this._getWindowButton('maximize');
this.closeWidget = this._getWindowButton('close');
const gtkSettings = Gtk.Settings.get_default();
this._onLayoutUpdate(gtkSettings);
gtkSettings.connect(
'notify::gtk-decoration-layout',
this._onLayoutUpdate.bind(this)
);
}
setMenuOnLeft(isOnLeft)
{
if(this.isMenuOnLeft === isOnLeft)
return;
if(isOnLeft) {
this.menuWidget.reorder_child_after(
this.extraButtonsBox, this.menuButton
);
}
else {
this.menuWidget.reorder_child_after(
this.menuButton, this.extraButtonsBox
);
}
this.isMenuOnLeft = isOnLeft;
}
setMaximized(isMaximized)
{
if(this.isMaximized === isMaximized)
return;
this.maximizeWidget.icon_name = (isMaximized)
? 'window-restore-symbolic'
: 'window-maximize-symbolic';
this.isMaximized = isMaximized;
}
_onLayoutUpdate(gtkSettings)
{
const gtkLayout = gtkSettings.gtk_decoration_layout;
this._replaceButtons(gtkLayout);
}
_replaceButtons(gtkLayout)
{
const modLayout = gtkLayout.replace(':', ',spacer,');
const layoutArr = modLayout.split(',');
let lastWidget = null;
let showMinimize = false;
let showMaximize = false;
let showClose = false;
let menuAdded = false;
let spacerAdded = false;
debug(`headerbar layout: ${modLayout}`);
for(let name of layoutArr) {
/* Menu might be named "appmenu" */
if(!menuAdded && (!name || name === 'appmenu' || name === 'icon'))
name = 'menu';
const widget = this[`${name}Widget`];
if(!widget) continue;
if(!widget.parent)
this.append(widget);
else
this.reorder_child_after(widget, lastWidget);
switch(name) {
case 'spacer':
spacerAdded = true;
break;
case 'minimize':
showMinimize = true;
break;
case 'maximize':
showMaximize = true;
break;
case 'close':
showClose = true;
break;
case 'menu':
this.setMenuOnLeft(!spacerAdded);
menuAdded = true;
break;
default:
break;
}
lastWidget = widget;
}
this.minimizeWidget.visible = showMinimize;
this.maximizeWidget.visible = showMaximize;
this.closeWidget.visible = showClose;
}
_getWindowButton(name)
{
const button = new Gtk.Button({
icon_name: `window-${name}-symbolic`,
valign: Gtk.Align.CENTER,
can_focus: false,
});
button.add_css_class('osd');
button.add_css_class('circular');
if(name === 'maximize')
name = 'toggle-maximized';
button.connect('clicked',
this._onWindowButtonActivate.bind(this, name)
);
return button;
}
_updateFloatIcon(isFloating)
{
const floatButton = this.extraButtonsBox.get_first_child();
if(!floatButton) return;
const iconName = (isFloating)
? 'pip-out-symbolic'
: 'pip-in-symbolic';
if(floatButton.icon_name !== iconName)
floatButton.icon_name = iconName;
}
_onWindowButtonActivate(action)
{
}
_onFloatButtonClicked(button)
{
}
_onFullscreenButtonClicked(button)
{
}
});
var HeaderBarPopover = GObject.registerClass({
GTypeName: 'ClapperHeaderBarPopover',
},
class ClapperHeaderBarPopover extends Gtk.PopoverMenu
{
_init(model)
{
super._init({
menu_model: model,
});
this.connect('map', this._onMap.bind(this));
this.connect('closed', this._onClosed.bind(this));
}
_onMap()
{
const { child } = this.root;
if(
!child
|| !child.player
|| !child.player.widget
)
return;
child.revealControls();
child.isPopoverOpen = true;
}
_onClosed()
{
const { child } = this.root;
if(
!child
|| !child.player
|| !child.player.widget
)
return;
child.revealControls();
child.isPopoverOpen = false;
}
});

View File

@@ -66,7 +66,6 @@ class ClapperPlayer extends GstClapper.Clapper
this.needsTocUpdate = true;
this.set_all_plugins_ranks();
this.set_initial_config();
this.set_and_bind_settings();
this.connect('state-changed', this._onStateChanged.bind(this));
@@ -98,13 +97,6 @@ class ClapperPlayer extends GstClapper.Clapper
settings.bind('subtitle-font', this.pipeline, 'subtitle-font-desc', flag);
}
set_initial_config()
{
/* FIXME: change into option in preferences */
const pipeline = this.get_pipeline();
pipeline.ring_buffer_max_size = 8 * 1024 * 1024;
}
set_all_plugins_ranks()
{
let data = {};