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
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