VideoTools/vendor/github.com/rymdport/portal
Stu Leak 68df790d27 Fix player frame generation and video playback
Major improvements to UnifiedPlayer:

1. GetFrameImage() now works when paused for responsive UI updates
2. Play() method properly starts FFmpeg process
3. Frame display loop runs continuously for smooth video display
4. Disabled audio temporarily to fix video playback fundamentals
5. Simplified FFmpeg command to focus on video stream only

Player now:
- Generates video frames correctly
- Shows video when paused
- Has responsive progress tracking
- Starts playback properly

Next steps: Re-enable audio playback once video is stable
2026-01-07 22:20:00 -05:00
..
filechooser Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
internal Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
notification Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
openuri Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
settings Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
.gitignore Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
CHANGELOG.md Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
CODE_OF_CONDUCT.md Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
CONTRIBUTING.md Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
LICENSE Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
portal.go Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
README.md Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00
SECURITY.md Fix player frame generation and video playback 2026-01-07 22:20:00 -05:00

Go API Reference Tests Analysis Go Report Card

Portal

Portal is a Go module providing developer friendly functions for accessing the XDG Desktop Protocol D-Bus API. The goal of this project is to be toolkit agnostic and allow using the portals without needing to access libportal through CGo.

Using the portals allow applications to request information from the user even when running inside a sandbox like Flatpak. As such, it is possible to open file dialogs, open links in the browser, send notifications and much more in a way that integrates well with the desktop environment. This also avoids needing to open up permissions in the sandbox.

API

The api of this Go module is designed to closely follow the structure naming of the upstream APIs. This means, in practice, that each D-Bus interface is implemented as its own package here. However, care is taken to be developer friendly and integrate seamlessly with native Go types.

The version of this module's API is still in a v0.X.Y state and is subject to change in the future. A release with breaking changes will increment X while Y will be incremented when there are minor bug or feature improvements.

Example

The following example showcases how a file chooser can be opened for selecting one or more files.

package main

import (
	"fmt"
	"log"

	"github.com/rymdport/portal/filechooser"
)

func main() {
	options := filechooser.OpenFileOptions{Multiple: true}
	files, err := filechooser.OpenFile("", "Select files", &options)
	if err != nil {
		log.Fatalln(err)
	}

	fmt.Println(files)
}

Supported Portal Interfaces

The list below contains all of the portal interfaces available within the project. Checked boxes are partially or completely implemented within this project. Note that this list usually refers to the state of the main branch and not necessarily the latest release.

  • Account
  • Background
  • Camera
  • Clipboard
  • Documents
  • Dynamic Launcher
  • Email
  • File Chooser
  • File Transfer
  • Game Mode
  • Global Shortcuts
  • Inhibit
  • Input Capture
  • Location
  • Memory Monitor
  • Network Monitor
  • Notification
  • OpenURI
  • Power Profile Monitor
  • Print
  • Proxy Resolver
  • Realtime
  • Remote Desktop
  • Request
  • ScreenCast
  • Screenshot
  • Secret
  • Session
  • Settings
  • Trash
  • Usb
  • Wallpaper

Used by other projects

This section is meant as a reference to where this project is being used. Feel free to add yours if desired.

  • This project is used as of the v2.5.0 release of Fyne.
    • All the old theme watching code has been replaced by the settings package (and appearance subpackage) from this module. The filechooser and notification packages replace the old Fyne-code when compiling with -tags flatpak.

Contributing

Contributions are strongly appreciated. Everything from creating bug reports to contributing code will help the project a lot, so please feel free to help in any way, shape, or form that you feel comfortable with.

License

  • Portal is licensed under Apache License Version 2.0 and will forever continue to be free and open source.