Skip to content

Releases: adamajammary/libvoyaplayer

Voya Player Library v1.4.0

16 Nov 12:11
c8a7a9c
Compare
Choose a tag to compare

libvoyaplayer

A free cross-platform media player library

Copyright (C) 2021 Adam A. Jammary (Jammary Studio)

libvoyaplayer is a free cross-platform media player library that easily plays your music and video files.

Music

Supports most popular audio codecs like AAC, FLAC, MP3, Vorbis, WMA and many more.

Video

Supports most popular video codecs like H.265/HEVC, AV1, DivX, MPEG, Theora, WMV, XviD and many more.

3rd Party Libraries

Library Version License
SDL2 2.30.9 zlib license
libass 0.17.3 ISC license
fontconfig 2.15.0 MIT license (Modern Variant)
libexpat 2.6.3 MIT license
FreeType 2.13.3 GPLv2 (GNU General Public License)
FriBidi 1.0.16 LGPL v.2.1 (GNU Lesser General Public License)
HarfBuzz 10.0.1 MIT license
FFmpeg 7.1 LGPL v.2.1 (GNU Lesser General Public License)
dav1d 1.4.3 BSD 2-Clause "Simplified" license
zLib 1.3.1 zlib license

Changelog

Updated

  • 3rd party libraries
  • Test project
  • Readme doc
  • CMake build

Added

  • add(subs): move animations #41
  • add(subs): fade animations #42
  • add(subs): animated transforms #47
  • add(subs): custom clipping #48
  • add(subs): blur effect #52

Fixed

  • fix: UNICODE (16-bit UCS-2) conversion #14
  • fix(subs): handle older ASSv4 style and dialogue events #18
  • fix(subs): isspace does not support negative char values #19
  • fix: dont' send LVP_EVENT_MEDIA_TRACKS_UPDATED notification when a track is selected #20
  • fix: race condition when spamming seek #22
  • fix: clean up resources before sending a playback completed event #23
  • fix(subs): missing script size #24
  • fix: skip subs with no visible duration (usually complicated draw operations) #29
  • fix: av1 decoding is too slow (replace aom with dav1d) #35
  • fix(subs): end-time overlapping the next start-time by some milliseconds #43
  • fix(subs): not all font attachments are detected properly #46
  • fix(android): undeclared identifier 'MAX_PATH' #54
  • fix(android): no matching constructor for initialization of 'SDL_Point' #55
  • fix(android): non-constant-expression cannot be narrowed from type 'unsigned int' to 'Uint8' #56
  • fix(android): 'av_stream_get_codec_timebase' is deprecated #57
  • fix(android): no template named 'unordered_map' in namespace 'std' #58
  • fix(linux): 'memcpy' is not a member of 'std' #59
  • fix(linux): 'strstr' is not a member of 'std' #60
  • fix(linux): 'memset' is not a member of 'std' #61
  • fix(linux): no matching function for call to 'max' #64
  • fix(apple): use of undeclared identifier NSLog (macos) and OS_LOG_DEFAULT (ios) #66
  • fix(seeking): backwards in some ogg video files #68
  • fix(test): segfaults on linux with random mallocs/reallocs #69
  • fix(ios): error: use of undeclared identifier 'button' #70
  • fix: LVP_GetMediaDetails crashes when freeing allocated resources #71

Improved

  • improve: allow empty chapter titles #21
  • improve: update list of system file extensions to skip #25
  • improve(subs): outline and drop shadow #26
  • improve(subs): support external sub files #27
  • improve: add chapters to LVP_GetMediaDetails result #28
  • improve(subs): split some long subs with formatting but no linebreaks #30
  • improve(subs): split long lines, render by layer and optimize blur effect. #31
  • improve(subs): remove duplicates and disable clipping (usually karaoke subs with complex effects) #32
  • improve(subs): shadow color and offset #33
  • improve(subs): remove blur effect (expensive operation without a visual improvement in most cases) #34
  • improve(subs): simplify heavily formatted lines with a position #36
  • improve(subs): custom draw operations and multiple forced newlines #37
  • improve(subs): font selection based on custom style names #38
  • improve(subs): set outline and drop shadow according to SSA specs #39
  • improve: uninitialized class members #40
  • improve(subs): don't skip long (heavily formatted and animated) layers #44
  • improve(subs): more complicated drawing commands #45
  • improve(subs): handle hundreds of simultaneous subs with different formatting (cache packets, surfaces and textures) #49
  • improve(subs): manage fonts (stream attachments, local file system) #50
  • improve(subs): text rendering #51
  • improve(meta): don't return empty values #53
  • improve: seeking #62
  • improve: track sync #63
  • improve(decoding): error handling #65
  • improve(cmake): rpath #67
  • improve(subs): bitmap conversion from PAL8 to RGBA32 #72

Voya Player Library v1.3.1

25 Mar 12:39
Compare
Choose a tag to compare

libvoyaplayer

A free cross-platform media player library

Copyright (C) 2021 Adam A. Jammary (Jammary Studio)

libvoyaplayer is a free cross-platform media player library that easily plays your music and video files.

3rd Party Libraries

Library Version License
SDL2 2.30.1 zlib license
SDL2_ttf 2.22.0 zlib license
FFmpeg 6.1.1 LGPL v.2.1 (GNU Lesser General Public License)
libaom 3.8.1 Alliance for Open Media Patent License
zLib 1.3.1 zlib license

Changelog

Updated

  • 3rd party libraries
  • Test project
  • Readme doc
  • CMake build

Fixed

  • Color profile on Android #16
  • SDL2 version mismatch error in Android project #15
  • UNICODE (16-bit UCS-2) conversion #14
  • Rendered sub is not cleared when the queue is empty #12
  • Some videos change the audio specs during playback #11
  • Memory leak when generating thumbnails #9

Improved

  • Only seek by bytes when strictly necessary #13

Voya Player Library v1.3.0

16 Sep 14:47
24b86ad
Compare
Choose a tag to compare

libvoyaplayer

A free cross-platform media player library

Copyright (C) 2021 Adam A. Jammary (Jammary Studio)

libvoyaplayer is a free cross-platform media player library that easily plays your music and video files.

3rd Party Libraries

Library Version License
SDL2 2.28.2 zlib license
SDL2_ttf 2.20.2 zlib license
FFmpeg 6.0 LGPL v.2.1 (GNU Lesser General Public License)
libaom 3.6.1 Alliance for Open Media Patent License
zLib 1.3 zlib license

Changelog

  • Updated
    • README doc with more details on cross-platform builds
  • Fixed
    • Close crashes when no audio driver is set
    • Allow LVP_Quit to be called multiple times without throwing an exception if not initialized
    • Sub-scaling relative to video size
    • Some meta data newline characters are not double-escaped
    • Thumbnail creation sometimes fails because of inaccurate pitch size
    • Audio filter fails for WMA files
  • Improved
    • Exception handling when requesting media details for an invalid media file
    • Send callback event when disabling subs
    • Stream info parsing of media format context
    • Add external subs to meta data
    • Ignore id3v2_priv (private) meta tags
    • Support for cross-platform builds
  • Added
    • Thumbnail to meta data
    • Public API endpoint to get media type of a specific file
    • Public API endpoint to set mute state

Voya Player Library v1.2.0

08 Jul 16:48
009a93b
Compare
Choose a tag to compare

libvoyaplayer

A free cross-platform media player library

Copyright (C) 2021 Adam A. Jammary (Jammary Studio)

libvoyaplayer is a free cross-platform media player library that easily plays your music and video files.

3rd Party Libraries

Library Version License
SDL2 2.28.1 zlib license
SDL2_ttf 2.20.2 zlib license
FFmpeg 6.0 LGPL v.2.1 (GNU Lesser General Public License)
libaom 3.6.1 Alliance for Open Media Patent License
zLib 1.2.13 zlib license

Changelog

  • Added hardware acceleration on video decoding
  • Updated README
  • Used dummy audio if no device is found
  • Added public methods to
    • Get media type of a specific file
    • Get media meta data of a specific file
  • Fixed
    • Cross-platform Arial font paths
    • Custom sub draw operation overrides default sub style
    • Some mp3 files need extra stream parsing to calculate duration
    • Subtitles overlapping in time and space
    • Subtitles still presented after PTS expired
    • YUV420P video conversion
  • Made file check less restrictive
    • Parses content of non-system files instead of only opening certain file extensions
  • Updated meta data
    • Added file size and media type
    • Added media duration
    • Sorted meta keys

Voya Player Library v1.1.0

14 Apr 18:40
5f4db89
Compare
Choose a tag to compare

libvoyaplayer

A free cross-platform media player library

Copyright (C) 2021 Adam A. Jammary (Jammary Studio)

libvoyaplayer is a free cross-platform media player library that easily plays your music and video files.

Music

Supports most popular audio codecs like AAC, FLAC, MP3, Vorbis, WMA and many more.

Video

Supports most popular video codecs like H.265/HEVC, AV1, DivX, MPEG, Theora, WMV, XviD and many more.

3rd Party Libraries

Library Version License
SDL2 2.26.2 zlib license
SDL2_ttf 2.20.1 zlib license
FFmpeg 5.1.2 LGPL v.2.1 (GNU Lesser General Public License)
libaom 3.6.0 Alliance for Open Media Patent License
zLib 1.2.13 zlib license

How to build

  1. Build the third-party libraries and place the them in a common directory
  2. You will also need the dirent.h header if you are building on Windows
  3. Make sure you have cmake installed
  4. Open a command prompt or terminal
  5. Create a build directory mkdir build and enter it cd build
  6. Run the command cmake .. -D EXT_LIB_DIR="/path/to/libs" -D DIRENT_DIR="/path/to/dirent"
  7. The build directory will now contain a makefile or a Visual Studio solution

Test project

The test project currently only has UI components for Windows using Win32 Controls.

LVP_Initialize

You must call LVP_Initialize with your callback handlers before using other LVP_* methods, see the test project for examples.

To use hardware rendering set the hardwareRenderer parameter to an instance of SDL_Renderer*.

Voya Player Library v1.0.0

11 Mar 17:36
Compare
Choose a tag to compare

libvoyaplayer

A free cross-platform media player library

Copyright (C) 2021 Adam A. Jammary (Jammary Studio)

libvoyaplayer is a free cross-platform media player library that easily plays your music and video files.

Music

Supports most popular audio codecs like AAC, FLAC, MP3, Vorbis, WMA and many more.

Video

Supports most popular video codecs like H.265/HEVC, AV1, DivX, MPEG, Theora, WMV, XviD and many more.

3rd Party Libraries

Library Version License
SDL2 2.26.2 zlib license
SDL2_ttf 2.20.1 zlib license
FFmpeg 5.1.2 LGPL v.2.1 (GNU Lesser General Public License)
libaom 3.6.0 Alliance for Open Media Patent License
zLib 1.2.13 zlib license

How to build

  1. Build the third-party libraries and place the them in a common directory
  2. You will also need the dirent.h header if you are building on Windows
  3. Make sure you have cmake installed
  4. Open a command prompt or terminal
  5. Create a build directory mkdir build and enter it cd build
  6. Run the command cmake .. -D EXT_LIB_DIR="/path/to/libs" -D DIRENT_DIR="/path/to/dirent"
  7. The build directory will now contain a makefile or a Visual Studio solution

The test project currently only has UI components for Windows using Win32 Controls