Skip to content

Commit 88b0490

Browse files
committed
Prepare for release 1.4.18.
1 parent a2eafae commit 88b0490

File tree

3 files changed

+25
-11
lines changed

3 files changed

+25
-11
lines changed

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Change Log
22

3+
## Version 1.4.18 (2022-02-04)
4+
5+
This release introduces a lot of audio processing improvements and fixes:
6+
7+
- A new AudioRenderer, focused solely on audio processing
8+
- Capability to change sampling rate with high performance and high quality, provided by integrating [Oboe resampler](https://github.com/google/oboe/tree/master/src/flowgraph/resampler).
9+
- Capability to mix stereo audio to mono and vice versa.
10+
- Support for audio filters.
11+
- Support for writing raw audio into WAV file.
12+
- Fix for dropped audio frames.
13+
314
## Version 1.4.17 (2022-01-24)
415

516
- Allow non-negative reads from source buffer during transcoding [#133](https://github.com/linkedin/LiTr/pull/133)

README.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,16 @@ LiTr (pronounced "lai-tr") is a lightweight video/audio transformation tool whic
55

66
In its current iteration LiTr supports:
77
- changing resolution and/or bitrate of a video track(s)
8-
- changing bitrate of an audio track(s)
8+
- changing sampling rate, channel count and/or bitrate of an audio track(s)
99
- overlaying bitmap watermark onto video track(s)
1010
- applying different effects (brightness/contrast, saturation/hue, blur, etc.) to video pixels
1111
- including/excluding tracks, which allows muxing/demuxing tracks
1212
- transforming tracks individually (e.g. apply overlay to one video track, but not the other)
1313
- positioning source video frame arbitrarily onto target video frame
1414
- trimming video/audio
15-
- ability to create "empty" video, or a video out of single image
16-
- ability to create preview bitmap(s) (with filters applied) at specific timestamp(s) (filmstrip)
15+
- creating "empty" video, or a video out of single image
16+
- creating preview bitmap(s) (with filters applied) at specific timestamp(s) (filmstrip)
17+
- writing raw audio into WAV container
1718

1819
By default, LiTr uses Android MediaCodec stack for hardware accelerated decoding/encoding and OpenGL for rendering. It also uses MediaExtractor and MediaMuxer to read/write media.
1920

@@ -22,15 +23,15 @@ By default, LiTr uses Android MediaCodec stack for hardware accelerated decoding
2223
Simply grab via Gradle:
2324

2425
```groovy
25-
implementation 'com.linkedin.android.litr:litr:1.4.17'
26+
implementation 'com.linkedin.android.litr:litr:1.4.18'
2627
```
2728
...or Maven:
2829

2930
```xml
3031
<dependency>
3132
<groupId>com.linkedin.android.litr</groupId>
3233
<artifactId>litr</artifactId>
33-
<version>1.4.17</version>
34+
<version>1.4.18</version>
3435
</dependency>
3536

3637
```
@@ -62,6 +63,7 @@ Few notable things related to transformation:
6263
- transformation is performed asynchronously, listener will be called with any transformation progress or state changes
6364
- by default listener callbacks happen on a UI thread, it is safe to update UI in listener implementation. It is also possible to have them on a non-UI transformation thread, for example, if any "heavy" works needs to be done in listener implementation.
6465
- if you want to modify video frames, pass in a list of `GlFilter`s in `TransformationOptions`, which will be applied in order
66+
- if you want to modify audio frames, pass in a list of `BufferFilter`s in `TransformationOptions`, which will be applied in order
6567
- client can call `transform` multiple times, to queue transformation requests
6668
- video will be written into MP4 container, we recommend using H.264 ("video/avc" MIME type) for target encoding
6769
- progress update granularity is 100 by default, to match percentage, and can be set in `TransformationOptions`
@@ -125,20 +127,20 @@ You can use custom filters to modify video frames. Write your own in OpenGL as a
125127
LiTr now has 40 new GPU accelerated video filters ported from [Mp4Composer-android](https://github.com/MasayukiSuda/Mp4Composer-android) and [android-gpuimage](https://github.com/cats-oss/android-gpuimage) projects. You can also create your own filter simply by configuring VideoFrameRenderFilter with your custom shader, with no extra coding!
126128

127129
```groovy
128-
implementation 'com.linkedin.android.litr:litr-filters:1.4.17'
130+
implementation 'com.linkedin.android.litr:litr-filters:1.4.18'
129131
```
130132
...or Maven:
131133

132134
```xml
133135
<dependency>
134136
<groupId>com.linkedin.android.litr</groupId>
135137
<artifactId>litr-filters</artifactId>
136-
<version>1.4.17</version>
138+
<version>1.4.18</version>
137139
</dependency>
138140

139141
```
140142

141-
You can pass in a list of filters when transforming a video. Keep in mind that filters will be applied in the order they are in the list, so ordering matters.
143+
You can pass in a list of filters when transforming a video or audio track. Keep in mind that filters will be applied in the order they are in the list, so ordering matters.
142144

143145
## Using in Tests
144146

@@ -190,9 +192,10 @@ This project is licensed under the BSD 2-Clause License - see the [LICENSE](LICE
190192

191193
* A huge thank you to [ypresto](https://github.com/ypresto/) for his pioneering work on [android-transcoder](https://github.com/ypresto/android-transcoder) project, which was an inspiration and heavy influence on LiTr
192194
* A special thank you to [MasayukiSuda](https://github.com/MasayukiSuda) for his work on [Mp4Composer-android](https://github.com/MasayukiSuda/Mp4Composer-android) project, whose filters now power LiTr, and for his work on [ExoPlayerFilter](https://github.com/MasayukiSuda/ExoPlayerFilter) project which was a foundation for filter preview functionality in LiTr.
193-
* A special thank you to [android-gpuimage](https://github.com/cats-oss/android-gpuimage) project for amazing filter collection, which is now being migrated into LiTr
195+
* A special thank you to [android-gpuimage](https://github.com/cats-oss/android-gpuimage) project for amazing filter collection, which have been ported into LiTr
194196
* A thank you to Google's AOSP CTS team for writing Surface to Surface rendering implementation in OpenGL, which became a foundation for GlRenderer in LiTr
195-
* A shout out to my awesome colleagues Amita Sahasrabudhe, Long Peng and Keerthi Korrapati for contributions and code reviews
197+
* A thank you to Google [Oboe](https://github.com/google/oboe) project for high quality audio resampling implementation, which became a foundation of audio processing in LiTr
198+
* A shout out to my awesome colleagues Amita Sahasrabudhe, Long Peng, Keerthi Korrapati and Vasiliy Kulakov for contributions and code reviews
196199
* A shout out to my colleague Vidhya Pandurangan for prototyping video trimming, which now became a feature
197200
* A shout out to our designer Mauroof Ahmed for giving LiTr a visual identity
198201
* A shout out to [PurpleBooth](https://gist.github.com/PurpleBooth/) for very useful [README.md template](https://gist.github.com/PurpleBooth/109311bb0361f32d87a2)

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@ org.gradle.jvmargs=-Xmx1536m
2222
android.useAndroidX=true
2323

2424
GROUP_ID=com.linkedin.android.litr
25-
VERSION_NAME=1.4.18-SNAPSHOT
25+
VERSION_NAME=1.4.18

0 commit comments

Comments
 (0)