- Implement Camera2 support as a MediaSource [#232] (linkedin#232) by @IanDBird
- Add missing duration target track metadata when adding track to muxer [#244] (linkedin#244)
- Add missing duration target track metadata to decoder output format [#247] (linkedin#247)
- Enforce transcoding of incompatible audio track(s) to compatible codecs [#220] (linkedin#220)
- Add TransformationOptions parameter to remove metadata tracks [#221] (linkedin#221)
- Fix for incorrect audio frame presentation time when trimming [#225] (linkedin#225)
- Default to 30 fps target frame rate if parameter is missing [#227] (linkedin#227)
- Set default buffer size when creating VideoRendererInputSurface [#228] (linkedin#228)
- Implement AudioRecord support for audio track [#229] (linkedin#229) by @IanDBird
- Allow transcoders advance to next track or EoS past selection end [#230] (linkedin#230)
- Implementation of audio overlay filter [#199] (linkedin#199)
- Release BufferFilter's when renderer is released [#200] (linkedin#200)
- Allocate/deallocate native input/output buffers on init/release [#202] (linkedin#202)
- Add ability to reduce the target video's frame rate [#208] (linkedin#208) by @niekdev
- Add TransformationOptions flag to remove audio track(s) [#209] (linkedin#209)
- Fix for incorrect bitrate extraction in size estimation [#212] (linkedin#212)
- Use source (or default) frame rate when creating video MediaFormat [#213] (linkedin#213)
- Use null target MediaFormat for generic tracks [#214] (linkedin#214)
- Audio filter that changes track volume [#193] (linkedin#193)
- Fix ConcurrentModificationException when removing jobs [#195] (linkedin#195) by @ReallyVasiliy
- Notify TransformationListener before releasing TransformationJob [#198] (linkedin#198) by @simekadam
- Fix for incorrect orientation angle calculation during MVP matrix initialization [#185] (linkedin#185) by @kolesnikov-pasha
- AudioRenderer now picks correct AudioProcessor when audio format changes during transcoding [#190] (linkedin#190)
- Fix for error callback is not called with InsufficientDiskSpace exception [#179] (linkedin#179) by @mikeshuttjuvo
- Add new transform method that accepts output URI [#182] (linkedin#182)
- Support for transcoding video to VP8/VP9 [#183] (linkedin#183)
- Remove deprecated MediaTransformer methods [#184] (linkedin#184)
- Fix for missing documentation jar in release
- Fix for not yet started thumbnail jobs not being cleared when cancelled #177
This release introduces a lot of audio processing improvements and fixes:
- A new AudioRenderer, focused solely on audio processing
- Capability to change sampling rate with high performance and high quality, provided by integrating Oboe resampler.
- Capability to mix stereo audio to mono and vice versa.
- Support for audio filters.
- Support for writing raw audio into WAV file.
- Fix for dropped audio frames.
- Allow non-negative reads from source buffer during transcoding #133
- Fix GlVideoRenderer.hasFilters() logic #135
- Obtain frame rate and interval from MediaFormat as either float or int #138
- Do not set "profile" (MediaCodec.KEY_PROFILE) on the encoder #139
- Add new target size estimation APIs to MediaTransformer #155
- Fix for incorrect size estimation with range #154
- New AudioRenderer implementation, with a render queue #159
- Support for extracting a series of video thumbnails #146
- New MockVideoMediaSource and PassthroughDecoder implementations #122 which provide capability to create "empty" video
- Remove fallback codec lookup configuration flags #114
- Bump dependencies
- Bump build tools and compile/target SDK levels to 30
- Enable Kotlin
- Support writing to Uri (by @Ma7moudHatem) #114
- Support for reducing audio sampling rate (by @Ma7moudHatem) #111
- Enhance the logic for finding a media codec for a media format (by @Ma7moudHatem) #109
- Release unused anymore MediaMetadataRetriever instance (by @Ma7moudHatem) #106
- Make the default FRAME_WAIT_TIMEOUT equals to zero, because on some device the previous value cause a very very long processing time (by @Ma7moudHatem) #105
- Fix a DivideByZero exception when track duration is shorter than 1 sec (by @Ma7moudHatem) #104
- Fix renderFrame logic in PassthroughSoftwareRenderer (by @Ma7moudHatem) #103
- Fix the fallbackToGetCodecByType logic (by @Ma7moudHatem) #98
- Moved artifact publishing from JCenter to Maven Central #95