Git Product home page Git Product logo

celluloid's Introduction

Celluloid

Celluloid (formerly GNOME MPV) is a simple GTK+ frontend for mpv. Celluloid interacts with mpv via the client API exported by libmpv, allowing access to mpv's powerful playback capabilities.

Screenshot

Repository Mirror: https://codeberg.org/celluloid-player/celluloid

Dependencies

  • appstream-glib (build)
  • pkg-config (build)
  • gcc (build)
  • glib >= 2.66
  • gtk >= 4.6.1
  • libadwaita >= 1.2.0
  • mpv >= 0.32
  • epoxy
  • lua (optional)
  • youtube-dl (optional)

Installation

Packages

Packaging status

Ubuntu users can use this PPA to get more up-to-date versions of Celluloid.

Flatpak

Flatpak packages support multiple distributions and are sandboxed. Flatpak 0.9.5+ is recommended for best integration.

Stable releases are hosted on Flathub:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub io.github.celluloid_player.Celluloid

Snap

Stable releases are hosted on Snapcraft:

sudo snap install celluloid

Source code

Run the following command in the source code directory to build and install:

meson setup build && cd build && ninja && sudo ninja install

Usage

Opening files

There are 4 ways to open files in Celluloid.

  1. Passing files and/or URIs as command line arguments.
  2. Using the file chooser dialog box, accessible via the "Open" menu item.
  3. Typing URI into the "Open Location" dialog box, accessible via the menu item with the same name.
  4. Dragging and dropping files or URIs onto Celluloid.

Manipulating playlist

The playlist is hidden by default. To show the playlist, click the "Playlist" menu item or press F9. Files can be added by dragging and dropping files or URIs onto the playlist. Dropping files or URIs onto the video area will replace the content of the playlist. Playlist files or online playlists (eg. YouTube's playlist) will be automatically expanded into individual items when loaded.

Items in the playlist can be reordered via drag-and-drop. To remove items from the playlist, select the item by clicking on it then press the delete button on your keyboard.

Configuration

Celluloid can be configured using the preferences dialog accessible via the "Preferences" menu item. Additional configuration options can be set from an external file using the same syntax as mpv's mpv.conf. See mpv's manual for the full list of options. The file must be specified and enabled in the preferences dialog under the "MPV Configuration" section.

It is also possible to set mpv options by putting the options — as you would pass to mpv on the command line — in Extra MPV Options text box in the preferences dialog. You can also pass options directly on the command line by adding mpv- prefix to the option name. For example, using the option --mpv-vf=flip when launching Celluloid is equivalent to using --vf=flip in mpv.

User Scripts

Celluloid can use most mpv user scripts as-is. Some user scripts may define keybindings that conflict with Celluloid, in which case you'll need to resolve the conflict by explicitly defining new keybindings using input.conf. See mpv's manual for more details.

User scripts can be installed by switching to the "Plugins" tab in the preferences dialog and dropping the files there. A list of mpv user scripts can be found here.

Keybindings

Celluloid defines a set of keybindings in the macro DEFAULT_KEYBINDS, which can be found in src/celluloid-def.h. The syntax used is exactly the same as mpv's input.conf. These keybindings are applied on top of default keybindings provided by mpv.

Additional keybindings can be defined in an external file using mpv's input.conf syntax. The file can be set in the preferences dialog under the "Keybindings" section.

Contributing Translations

Translation Status

Celluloid uses Weblate to coordinate translations. You can find Celluloid's page here.

While translating, you will find the string translator-credits. You should not translate this string. Instead, you should put your name, and optionally your email address, in the following format: FirstName LastName <Email Address>. Your name will then appear in the About dialog when your translation is active.

License

Celluloid is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Celluloid 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 General Public License for more details.

You should have received a copy of the GNU General Public License along with Celluloid. If not, see http://www.gnu.org/licenses/.

celluloid's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

celluloid's Issues

license clarification

Hi, thanks for your work! I'm packaging this for Debian. Is this licensed under GPL-3 or "GPL-3 or later"? If the latter, please could you clarify this in README.md? Thanks!

Missing "Preferences" menu outside the Gnome-Shell

Dear developers,

On some desktop-sessions (i.e. Budgie-Desktop, Pantheon etc..), we can't see "Preferences" menu in anywhere because those desktop-environments didn't have "AppMenu" feature that Gnome-Shell has.

This may happen if these things were True at the same time:

  • users run CSD-enabled gnome-mpv outside the gnome-shell
  • gsettings get org.gnome.settings-daemon.plugins.xsettings overrides returns {'Gtk/ShellShowsAppMenu': <0>}

It would be nice "Preferences" menuitem was included into MainMenu on GtkWindow in that case.

Regards.

Open resets the playlist

Opening a file resets the playlist to one containing only the opened file. A better behaviour would be to append the file in the playlist and play it immediately.

Segfault

I get a segfault once I open a media file. The media starts for a second then it dumps core.
I'm using the pakage gnome-mpv-git from archlinux aur.
I rebuilt the package with --enable-debug, and here's the output now:

ASAN:SIGSEGV
=================================================================
==14291==ERROR: AddressSanitizer: SEGV on unknown address 0x00000000 (pc 0x08059035 bp 0xbff5e0b8 sp 0xbff5e020 T0)
    #0 0x8059034  (/usr/bin/gnome-mpv+0x8059034)
    #1 0xb669a07b in g_cclosure_marshal_VOID__DOUBLE (/usr/lib/libgobject-2.0.so.0+0x1007b)
    #2 0xb669789a in g_closure_invoke (/usr/lib/libgobject-2.0.so.0+0xd89a)
    #3 0xb66a9893  (/usr/lib/libgobject-2.0.so.0+0x1f893)
    #4 0xb66b1df5 in g_signal_emit_valist (/usr/lib/libgobject-2.0.so.0+0x27df5)
    #5 0xb66b1f74 in g_signal_emit (/usr/lib/libgobject-2.0.so.0+0x27f74)
    #6 0xb6bf8ded  (/usr/lib/libgtk-3.so.0+0x27bded)
    #7 0xb6699556 in g_cclosure_marshal_VOID__VOIDv (/usr/lib/libgobject-2.0.so.0+0xf556)
    #8 0xb6697abe  (/usr/lib/libgobject-2.0.so.0+0xdabe)
    #9 0xb66b16a4 in g_signal_emit_valist (/usr/lib/libgobject-2.0.so.0+0x276a4)
    #10 0xb66b1f74 in g_signal_emit (/usr/lib/libgobject-2.0.so.0+0x27f74)
    #11 0xb6bdb7b6  (/usr/lib/libgtk-3.so.0+0x25e7b6)
    #12 0xb66994db in g_cclosure_marshal_VOID__VOID (/usr/lib/libgobject-2.0.so.0+0xf4db)
    #13 0xb669789a in g_closure_invoke (/usr/lib/libgobject-2.0.so.0+0xd89a)
    #14 0xb66a9893  (/usr/lib/libgobject-2.0.so.0+0x1f893)
    #15 0xb66b1df5 in g_signal_emit_valist (/usr/lib/libgobject-2.0.so.0+0x27df5)
    #16 0xb66b1f74 in g_signal_emit (/usr/lib/libgobject-2.0.so.0+0x27f74)
    #17 0xb6a5f820 in gtk_adjustment_value_changed (/usr/lib/libgtk-3.so.0+0xe2820)
    #18 0xb6a5f960  (/usr/lib/libgtk-3.so.0+0xe2960)
    #19 0xb6bdd14e in gtk_range_set_value (/usr/lib/libgtk-3.so.0+0x26014e)
    #20 0xb6bf8ed5 in gtk_scale_button_set_value (/usr/lib/libgtk-3.so.0+0x27bed5)
    #21 0x805f0cb  (/usr/bin/gnome-mpv+0x805f0cb)
    #22 0x8054236  (/usr/bin/gnome-mpv+0x8054236)
    #23 0x805329f  (/usr/bin/gnome-mpv+0x805329f)
    #24 0xb65a515f  (/usr/lib/libglib-2.0.so.0+0x4315f)
    #25 0xb65a8a22 in g_main_context_dispatch (/usr/lib/libglib-2.0.so.0+0x46a22)
    #26 0xb65a8e38  (/usr/lib/libglib-2.0.so.0+0x46e38)
    #27 0xb65a8f05 in g_main_context_iteration (/usr/lib/libglib-2.0.so.0+0x46f05)
    #28 0xb678a2a3 in g_application_run (/usr/lib/libgio-2.0.so.0+0xa32a3)
    #29 0x804f77c in main (/usr/bin/gnome-mpv+0x804f77c)
    #30 0xb61ea636 in __libc_start_main (/usr/lib/libc.so.6+0x18636)
    #31 0x804ce40  (/usr/bin/gnome-mpv+0x804ce40)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ??:0 ??
==14291==ABORTING

Retain Playlist View

Great project!

It would probably be best to retain the user's preference to show the playlist sidebar rather than reset to the basic window.

Thanks for your work on this.

about g-mpv's config and setting

Hello
G-mvp work very well on my ubuntu 14.04,but i don't know how to config g-mpv such as set hot key and hardware accelerate setting. i hope g-mpv can read config from mpv config directly.

Segmentation fault (core dumped)

gnome-mpv v0.2 keeps getting

"zsh: segmentation fault (core dumped)  gnome-mpv" 

when I press any keys on keyboard. Running on Arch and here's my PKGBUILD:

pkgname=gnome-mpv-git
pkgver=v0.2.r0.g36d2443
pkgrel=1
pkgdesc="GNOME frontend for MPV"
arch=('i686' 'x86_64')
url="https://github.com/gnome-mpv/gnome-mpv"
license=('GPL')
depends=('autoconf' 'gcc' 'glib2' 'gtk3' 'mpv' 'pkg-config')
makedepends=('git')
optdepends=('youtube-dl: for video-sharing websites playback')
install=gnome-mpv.install
source=("${pkgname}::git+https://github.com/gnome-mpv/gnome-mpv.git")
md5sums=('SKIP')

pkgver() {
    cd "${pkgname}"
    git describe --long --tags | sed -r 's/([^-]*-g)/r\1/;s/-/./g'
}

build() {
    cd "${pkgname}"
    autoreconf -sfi
    ./configure --prefix=/usr
    make
}

package() {
    cd "${pkgname}"
    make DESTDIR="${pkgdir}" install
}

Cannot play Youtube videos

Trying to open Youtube videos (regardless of whether they are HTTP or HTTPS URIs) fails with an error message popup "[Stream] Failed to open " followed by "[cplayer] Failed to recognise file format."

This occurs when I open videos by Open Location, drag-and-drop, and command line. I don't get any issues opening videos with mpv or downloading them with youtube-dl.

Deb and rpm

We need deb and rpm builds for Ubuntu and Fedora.

No package 'mpv' found

I ran into this error in Fedora

configure: error: Package requirements (gtk+-3.0 >= 3.10 glib-2.0 >= 2.32 mpv >= 1.0) were not met:

No package 'mpv' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables DEPS_CFLAGS
and DEPS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
$ rpm -q mpv
mpv-0.9.1-1.fc21.x86_64

what's wrong???

Problems with compilation.

I have this erro from autoconf.

configure.ac:19: warning: macro 'AM_GLIB_GNU_GETTEXT' not found in library
configure.ac:19: error: possibly undefined macro: AM_GLIB_GNU_GETTEXT
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1

ps: Sorry for my bad english.

gtk theme issue

How do I make gnome mpv not to use the dark gtk theme? In my instance on xfce, Numix Frost Light. It default to Numix Frost global dark gtk theme.

gnome-mpv-gtk-theme-issue

My ~/.config/gtk-3.0/settings.ini

[Settings]
gtk-theme-name=Numix Frost Light
gtk-application-prefer-dark-theme=0

Add support for the OpenGL renderer

Would be a good idea to add support for the mpv OpenGL renderer inside of a GtkGLArea. The main benefit would be solid Wayland support which will be pretty important with Gnome 3.18, a wayland improvement heavy release, coming out soon.

"autofit" option has no effect

I use the "autofit=50%x50%" option in the config file but it seems to have no effect in gnome-mpv as seen in the screenshot.
mpv-gnome

Settings not saving

Whether I set them through load mpv configuration or through command line options, none of my settings work in gnome-mpv. For example, my screenshot directory setting (which I've confirmed working on mpv standalone) doesn't work, simply using the default setting.

I'm using the gnome-mpv ebuild from the lxde-gtk3 overlay for gentoo.

error adding symbols: DSO missing from command line

I can't seem to compile gnome-mpv in Ubuntu 14.10. This error shows up:

/usr/bin/ld: common.o: undefined reference to symbol 'g_key_file_get_string'
/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu/libglib-2.0.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:403: recipe for target 'gnome-mpv' failed

building error

OS: ubuntu 14.04 x64

here is the configure msg and error msg:

checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define EXTENSIONS... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
/bin/bash: /home/sbw983/missing: No such file or directory
configure: WARNING: 'missing' script is too old or missing
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking whether make supports nested variables... yes
checking dependency style of gcc... gcc3
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GTK... yes
checking for mpv_command in -lmpv... yes
checking for pthread_create in -lpthread... yes
checking for X... libraries , headers
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking for inttypes.h... (cached) yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking mach/mach.h usability... no
checking mach/mach.h presence... no
checking for mach/mach.h... no
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking stddef.h usability... yes
checking stddef.h presence... yes
checking for stddef.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/mount.h usability... yes
checking sys/mount.h presence... yes
checking for sys/mount.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/vfs.h usability... yes
checking sys/vfs.h presence... yes
checking for sys/vfs.h... yes
checking termios.h usability... yes
checking termios.h presence... yes
checking for termios.h... yes
checking for unistd.h... (cached) yes
checking wchar.h usability... yes
checking wchar.h presence... yes
checking for wchar.h... yes
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
checking for inline... inline
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for int8_t... yes
checking for mode_t... yes
checking for off_t... yes
checking for pid_t... yes
checking for C/C++ restrict keyword... __restrict
checking for size_t... yes
checking for ssize_t... yes
checking for uid_t in sys/types.h... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for ptrdiff_t... yes
checking for error_at_line... yes
checking vfork.h usability... no
checking vfork.h presence... no
checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for sys/param.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible realloc... yes
checking for working strcoll... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for working strnlen... yes
checking for working strtod... yes
checking for atexit... yes
checking for clock_gettime... yes
checking for dup2... yes
checking for floor... no
checking for ftruncate... yes
checking for getcwd... yes
checking for gettimeofday... yes
checking for memchr... yes
checking for memmove... yes
checking for memset... yes
checking for mkdir... yes
checking for munmap... yes
checking for pow... no
checking for putenv... yes
checking for rint... no
checking for select... yes
checking for setlocale... yes
checking for sqrt... no
checking for strcasecmp... yes
checking for strchr... yes
checking for strcspn... yes
checking for strdup... yes
checking for strerror... yes
checking for strncasecmp... yes
checking for strpbrk... yes
checking for strrchr... yes
checking for strspn... yes
checking for strstr... yes
checking for strtol... yes
checking for strtoul... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: executing depfiles commands
**:~/Tools/Media/MPV/gnome-mpv$ make
gcc -pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/pixman-1 -I/usr/include/libpng12 -O2 -fomit-frame-pointer -o gnome-mpv gnome_mpv-main.o gnome_mpv-common.o gnome_mpv-mpv.o gnome_mpv-keybind.o gnome_mpv-playlist.o gnome_mpv-main_window.o gnome_mpv-main_menu_bar.o gnome_mpv-control_box.o gnome_mpv-pref_dialog.o gnome_mpv-open_loc_dialog.o gnome_mpv-playlist_widget.o -lgtk-3 -lgdk-3 -latk-1.0 -lgio-2.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 -lpthread -lmpv
gnome_mpv-pref_dialog.o: In function pref_dialog_init': pref_dialog.c:(.text+0x23a): undefined reference togtk_widget_set_margin_start'
pref_dialog.c:(.text+0x249): undefined reference to gtk_widget_set_margin_start' pref_dialog.c:(.text+0x259): undefined reference togtk_widget_set_margin_start'
pref_dialog.c:(.text+0x269): undefined reference to gtk_widget_set_margin_start' pref_dialog.c:(.text+0x279): undefined reference togtk_widget_set_margin_start'
gnome_mpv-pref_dialog.o:pref_dialog.c:(.text+0x289): more undefined references to `gtk_widget_set_margin_start' follow
collect2: error: ld returned 1 exit status
make: *
* [gnome-mpv] Error 1

video panel background is transparent when no video loaded

When I open gnome-mpv on the command line, the place where the video would normally go, is transparent so that I can see the windows behind it. There is no left border either. This is a pretty weird behaviour for apps to have. (I'm using xfwm4 with compositing, if that helps.)

+---------------------------------------+
|               GNOME MPV               |
+------------------------------+--------+
                               |        |
                               |        |
                               |        |
     (e.g. firefox tab)        |  play  |
                               |  list  |
                               |        |
                               |        |
                               |        |
+------------------------------+--------+
|                play bar               |
+---------------------------------------+

Thank you for moving to gtk_headerbar()!

G'day!

Thank you for moving to gtk_headerbar(). I love GNOME MPV, and now that it uses GTK Headerbar, it couldn't be better. GTK Headerbars work better on small (13in) HiDPI screens then the old window way.

I just wanted to say thank you, and couldn't find a better way of contacting.

Please continue to keep it simple!
Christopher

Cannot adjust volume when the player is fullscreen

When the player is in fullscreen mode, clicking the volume button would end up in the disappearance of the bottom toolbar and no volume adjustment widget appears.

Environment:
Archlinux
gnome 3.16
gtk3 3.16.4

how to enable automatically resuming

Hello
MPV has a nice function is automatically resuming from where you left off, hot key is Shift+q. how to enable it in gnome-mpv? Thank you.

Error The multiply option must be a floating point number or a ratio

OS: Ubuntu 14.04 Gnome amd64
Error:
The multiply option must be a floating point number or a ratio (numerator[:/]denominator): 0.9091
LOG:
gnome-mpv

(gnome-mpv:5587): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:997:2: Missing name of pseudo-class

(gnome-mpv:5587): Gtk-CRITICAL **: gtk_range_get_adjustment: assertion 'GTK_IS_RANGE (range)' failed

(gnome-mpv:5587): Gtk-CRITICAL **: gtk_range_get_adjustment: assertion 'GTK_IS_RANGE (range)' failed

(gnome-mpv:5587): Gtk-WARNING **: Theme parsing error: gtk-widgets.css:997:2: Missing name of pseudo-class
libva info: VA-API version 0.35.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_35
libva info: va_openDriver() returns 0
2015-01-14 01 39 59

MPRIS support

Since this is a GUI application it would be great to get some integration features such as media keys and whatnot.

when play .rmvb, always show some error

when open rmvb file,
"rm: Invalid stream index 2 for index at pos 1442681866"
Uploading 2015-05-17 13-12-56屏幕截图.png…

when Fast Forward,
rv40: Invalid decoder state: B-frame without reference data.
2015-05-17 13-10-31

File opener doesn't remember last location

Hi.

When opening a file, I navigate to the folder my file is located. The file is then played in gnome-mpv, great!

I have another file in the exact same folder, so I press Ctrl-O to open it: I have to navigate AGAIN to the same folder.

I think it would be great if it remembered my last location so I could just pick my new file in that same directory.

Thanks !

Major accelerator key changes / breaks in almost all translations

In #82, the accel keys are broken by Chinese characters, or kanjis, that require an IM to input. Only out of curiosity to if see similar things are done in other languages, I got:

#  cs_CZ, not that serious as keyboards still work
#: ../src/main.c:441 ../src/common.c:415
msgid "_About"
msgstr "_O programu"

#  fr_FR, same as cs_CZ
msgid "_About"
msgstr "_À propos"

#  de_DE, same as above
#: ../src/main.c:512 ../src/common.c:454
msgid "_Preferences"
msgstr "_Einstellungen"

#  ja, as bad as zh (and actually kanjis again!)
#: ../src/main.c:440 ../src/common.c:384
msgid "_Preferences"
msgstr "_設定"

And so on. Those 'not that serious' ones doesn't break functionality since keyboards for that locale may still be able to type those characters in an Alt+Accel combination -- they only make tutorials more confusing.

popups with warnings

Is there a way to tell gnome-mpv to only output warnings to console and not in popups
like mpv does?

i.e some sort of --silent command switch or a even better an option in configfile.

Alternatively could you give me some pointer to where in code they are created
so I can compile a copy without them?

EDIT

found the lines in mpv.c 396-399

if(!iter || (message->log_level <= level->level))
{
show_error_dialog(ctx, message->prefix, message->text);
}

I commented them out and recompiled and got wanted behaviour.

However is there a way to set log level here so I do not have to comment out?

EDIT2

tried combinations of commands controlling mpv log/error messages in preferences-->Extra mpv options

The options detailed here
http://mpv.io/manual/master/#options-really-quiet

What am I missing?

EDIT3
If I input in preferences-->Extra mpv options

--really-quiet

gnome-mpv wants to send

--really-quiet=yes

and that doesn't work

How to pass --really-quiet

EDIT4

it may be possible to pass

--really-quiet --

Still shows all errors in popups though

any input?

High cpu usage with the latest build

I see the increase of cpu usage with the latest build for example when playing 360p, tested on netbook intel atom, same mpv.conf with no hw acceleration:

Latest build v0.2.r9.ge5ae3a3:

snapwin-2015-01-30_163722_482170896

When downgraded back to v0.2.r5.g3ec9a74:

snapwin-2015-01-30_163851_040293333

Support for Media Tags

It'd be great if tags would be honored and Titles, artists, and the like were viewable. This would be a great thing to have for network-based playlist files as well, as currently they just show the same item over and over again for me:

screenshot from 2015-05-15 22-06-41

Crash on removing an item after stopping playback

Steps to reproduce this:

  • Open a file
  • Stop the playback by clicking on the stop icon
  • Remove the file from the playlist

Results in a traceback similar to

** (gnome-mpv:21451): CRITICAL **: MPV API error: error running command

gnome-mpv(+0xeea4)[0x56074d959ea4]
gnome-mpv(+0xe722)[0x56074d959722]
gnome-mpv(+0xdec8)[0x56074d958ec8]
/usr/lib/libgtk-3.so.0(+0x21326c)[0x7f159e41626c]
/usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x145)[0x7f159cb97035]
/usr/lib/libgobject-2.0.so.0(+0x22081)[0x7f159cba9081]
/usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0xa59)[0x7f159cbb18b9]
/usr/lib/libgobject-2.0.so.0(g_signal_emit+0x8f)[0x7f159cbb214f]
/usr/lib/libgtk-3.so.0(+0x35040c)[0x7f159e55340c]
/usr/lib/libgtk-3.so.0(+0x2107d9)[0x7f159e4137d9]

I guess this is because the "stop" command stops playback and clears the playlist as well. Modifying the playlist thereafter results in a crash.

A plausible solution is to mimic the stop behaviour by pausing playback and seeking to the beginning of the file

desktop-file-validate

warning: key "Encoding" in group "Desktop Entry" is deprecated

Выполняется(%check): /bin/sh -e /var/tmp/rpm-tmp.IwXhJ2
+ umask 022
+ cd /home/maxim/rpmbuild/BUILD
+ cd gnome-mpv-0.4
+ desktop-file-validate /home/maxim/rpmbuild/BUILDROOT/gnome-mpv-0.4-1.fc22.x86_64//usr/share/applications/gnome-mpv.desktop
/home/maxim/rpmbuild/BUILDROOT/gnome-mpv-0.4-1.fc22.x86_64//usr/share/applications/gnome-mpv.desktop: warning: key "Encoding" in group "Desktop Entry" is deprecated
+ exit 0

gnome-mpv can't installl under ubuntu 14.04

hello
i use ubuntu 14.04 and libgtk3 for my system is just 3.10, i can't install the last gnome-mpv on my ubuntu 14.04(neither from source or via ppa), so can u downgrade gtk3 to 3.10? thank you. gnome-mpv is the best ui for mpv and i use it from v0.1 to v0.5 but now maybe i have to say bye to it.

BTW: if u can add audio and subtitle channel selection function? i got a movi name Twelve O'Clock High 1949 BDRip 1080p DTS HighCode- PublicHash.mkv and it have 26 subtitles. it make me crazy to find the correct subtitle for me, and at last i give up to use mpv and just back to smplayer, smplayer have a function for select subtitles, i hope gnome-mpv could get this function soon.

Settings is not saved

I am just build latest master and try to disable CSD and dark theme for this. Before reload it will be light CSD, but after reload it is dark again and with CSD.

Allow only one instance

Rather than start a second player it would be nice to be able to start playing in the old window.

warning: Schema

warning: Schema 'org.gnome-mpv' has path '/apps/gnome-mpv/'.  Paths starting with '/apps/', '/desktop/' or '/system/' are deprecated.
warning: Schema 'org.gnome-mpv.window-state' has path '/apps/gnome-mpv/window-state/'.  Paths starting with '/apps/', '/desktop/' or '/system/' are deprecated.

Compile issue on Fedora 22

I was getting these compile errors when trying to build, using GCC 5.0.1:

In file included from main_window.c:23:0:
common.h:66:15: warning: inline function ‘get_config_file_path’ declared but never defined
 inline gchar *get_config_file_path(void);
               ^
common.h:65:15: warning: inline function ‘get_config_dir_path’ declared but never defined
 inline gchar *get_config_dir_path(void);
               ^
common.h:61:13: warning: inline function ‘set_config_boolean’ declared but never defined
 inline void set_config_boolean( gmpv_handle *ctx,
             ^
common.h:57:17: warning: inline function ‘get_config_boolean’ declared but never defined
 inline gboolean get_config_boolean( gmpv_handle *ctx,
                 ^
common.h:53:13: warning: inline function ‘set_config_string’ declared but never defined
 inline void set_config_string( gmpv_handle *ctx,
             ^
common.h:50:15: warning: inline function ‘get_config_string’ declared but never defined
 inline gchar *get_config_string( gmpv_handle *ctx,
               ^

I resolved it by removing the inline bits from common.h, as below:

diff --git a/src/common.h b/src/common.h
index 00393cf..574bb95 100644
--- a/src/common.h
+++ b/src/common.h
@@ -47,23 +47,23 @@ struct gmpv_handle
        GtkListStore *playlist_store;
 };

-inline gchar *get_config_string(       gmpv_handle *ctx,
+gchar *get_config_string(      gmpv_handle *ctx,
                                        const gchar *group,
                                        const gchar *key );
-inline void set_config_string( gmpv_handle *ctx,
+void set_config_string(        gmpv_handle *ctx,
                                const gchar *group,
                                const gchar *key,
                                const gchar *value );
-inline gboolean get_config_boolean(    gmpv_handle *ctx,
+gboolean get_config_boolean(   gmpv_handle *ctx,
                                        const gchar *group,
                                        const gchar *key,
                                        gboolean defaultval );
-inline void set_config_boolean(        gmpv_handle *ctx,
+void set_config_boolean(       gmpv_handle *ctx,
                                const gchar *group,
                                const gchar *key,
                                gboolean value);
-inline gchar *get_config_dir_path(void);
-inline gchar *get_config_file_path(void);
+gchar *get_config_dir_path(void);
+gchar *get_config_file_path(void);
 gboolean load_config(gmpv_handle *ctx);
 gboolean save_config(gmpv_handle *ctx);
 gchar *get_path_from_uri(const gchar *uri);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.