gnome-gitlab guidog/livi v0.1.0

2 months ago

Summary of changes

  • Allow to paste URLs
    Pasting an uri into the main window via ctrl-v plays that video.
  • Start videos at last position
  • Show/Hide controls in more situations automatically
  • Detect some SDH subtitles
  • List mkv formats in file chooser
  • Detect hw accelerations on more devices/configurations
  • Add support for DMABuf import and graphics offload
    This needs GTK >= 4.14 and gstreamer 1.24
  • Issues fixed:
  • Contributors:
    • Guido Günther
    • Robert Mader

Detailed changes

livi (0.1.0) experimental; urgency=medium
.
  [ Guido Günther ]
  * screenshots: Update to something recent.
    The design changed.
  * data: Fix appstream metainfo
  * tests: Disable the network access when running the.
    This allows to run them in isolated build environments. We switch
    form deprecated appstream-util to appstream-cli for that too.
  * ci: Run tests in build step.
    This is mostly validation so don't bother with an extra job
  * flatpak: Update gstreamer.
    Taken from https://github.com/flathub/org.sigxcpu.Livi/pull/6/files
  * ci: Move flatpak job to packaging stage.
    This will make it easy to identify once we have more jobs
  * ci: Add scripts for common jobs
  * po: Allow check-po to pass.
    This makes sure we don't regress and translators
    can run their tools
  * ci: Enable automatic po and commit message checking
  * window: Swap muted/unmuted audio icons.
    More in line with other players
    Closes: https://gitlab.gnome.org/guidog/livi/-/issues/13
  * window: Split mime types
  * shortcuts: Split into general and video section
  * app: Allow to paste uris.
    Pasting an uri into the main window via ctrl-v plays that video.
  * sink: Fix gst debug category
  * build: Add run script.
    We have GSettings now and want to be able to run from the source tree.
  * data: Always compile schemas.
    This allows us to run from the source tree
  * window: Add type checks to public functions
  * window: Use video folder if we don't have an url
  * recent-videos: Track played videos and positions.
    This saves the played videos in GSettings so playback can be resumed.
  * window: Add recent video handler
  * window: Remember position on state state changes
  * window: Remember stream position on close request too
  * window: Seek to old stream pos
  * window: Add ref_uri.
    This is the name we want to refer to the stream. For local files it
    makes no difference. For https:// streams that pass through a URL
    processor the ref_uri is the initial short name and the uri is the
    actual playable backend uri (which e.g. for video sites changes with
    every play).
  * window: Use ref_uri for title.
    For filenames it doesn't matter and for https:// URLs the ref_uri
    is usually the shorter one.
  * application: Track the reference URL too
  * window: Show overlay when resuming a stream or reaching EOS.
    This allows to select whether to resume or start at the beginning.
    At end of stream we only show the Restart option.
  * main: Cleanup on SIGINT and SIGTERM.
    Makes sure we shutdown gracefully cleaning up cache files, sync
    stream state, etc.
  * window: Arm Hide controls timer when entering playing state.
    When the user presses e.g. "space" we want to autohide. We don't want to
    so on touch only devices though.
  * window: Switch to content view when toggling play.
    Otherwise we might e.g.stay on the error page.
  * window: Hide controls in non playback states.
    Error and empty state don't need them and confuse the user.
  * application: Move option handling into class.
    No need to have this split between two files
    Fixes: 7fdcdb8 ("Add LiviApplication")
  * app: Allow to skip automatic resume
  * window: Label SDH subtitles.
    We'll likely need more tag parsing here but the only example I have
    here uses this to annotate the subtitle stream.
  * controls: Make sure there's initially no lang menu.
    If a stream has neither audio streams nor subtitles we don't want to
    present an empty menu.
  * window: Don't forget to init autofree'd pointer.
    Fixes: 5c0962d ("window: Label SDH subtitles")
  * window: Show controls when window becomes active.
    This makes it more obvious the window got focused hence easing
    navigating without pointer / touch.
  * ci: Use meson setup
  * build: Bump required GTK dependency to 4.13.7.
    This allows us to buils using graphics offload
    Add a fallback until this GTK version makes it into distros.
  * recent-videos: Drop unused enum
  * recent-videos: Allow to get URL of recently played videos
  * application: Allow to resume the n-th last video
  * window: Remember if URI is preprocessed.
    When the ref-uri isn't the player uri it got preprocessed.
    We could determine that when needed but it's easier to just cache it
    when set.
  * recent-videos: Track if a video is preprocessed.
    Use that information when picking a specific video to resume.
  * application: Preprocess when picking a specific video to resume.
    If we pick an old video to resume we must preprocess it's URL again if
    needed. If the user forces preprocessing we honor that.
    If an explicit URL is passed we don't get preprocess information
    automatically so the user can control that.
  * recent-videos: Use sort_values.
    Otherwise we access the to be sorted values incorrectly.
.
  [ Robert Mader ]
  * window: List mkv files in file chooser.
    Additionally to mp4 and webm.
    The app is already registered for these file types in e.g. file
    browsers, but opening files from within the app isn't possible
    without this change.
  * window: Add more elements to hw-decoding check.
    Add stateful v4l2, va-api and vulkan elemnts, as well as av1 elements where
    appropriate, to make the icon and message useful on more platforms.
  * sink: Add support for DMABuf import and graphics offload.
    By implementing support for `GdkDmabufTextureBuilder` and
    `GstVideoInfoDmaDrm`. This allows zero-copy video playback on Wayland
    when paired with hardware video decoding.
    Mostly a straigh forward copy from `GtkGstSink`.
    Note that Gstreamer 1.23.1/1.24 is required.
    We bump the required GTK version due to the change in the UI file, which
    is hard to make conditional.

Don't miss a new livi release

NewReleases is sending notifications on new releases.