Major release is here with new APIs and breaking changes.
As of now there is a single entry point (MediaFileFactory
) and clear and distinct requests (MediaSource
), which support multiple input types: files, file descriptors and content Uris. No more attempts to reconstruct the file path behind a Uri, client apps are welcome to implement it on their side. See PathUtil that was used before.
The 2.0 release makes use of fd
protocol (FFmpeg 6) and content
protocol (FFmpeg 7), along with the good old file
. The pipe
was dropped in the favour of fd
. This is just an implementation detail.
No more filtering of the available media streams by MediaType
. It is up to a client to do such a thing. The MediaInfo
class is media type agnostic.
The FrameLoader
still serves the purpose of being an example of how one can extend the library and be able to work with an opened AVFormatContext*
really fast.
MediaFile
and FrameLoader
are AutoClosable
, so don’t forget to clean up after you are done.
Forwarding of the FFmpeg's logs into LogCat was added. It is disabled by default.
The MediaFile and ffmpeg-android-maker (as a dependency) projects were updated to produce shared libraries compatible with 16 kb page size systems (Android 15+).
See the README for more datails.