Add datasource module
PiperOrigin-RevId: 404897119
This commit is contained in:
parent
37b5847681
commit
2ee72076e5
@ -51,6 +51,8 @@ project(modulePrefix + 'library-ui').projectDir = new File(rootDir, 'library/ui'
|
||||
include modulePrefix + 'extension-leanback'
|
||||
project(modulePrefix + 'extension-leanback').projectDir = new File(rootDir, 'extensions/leanback')
|
||||
|
||||
include modulePrefix + 'library-datasource'
|
||||
project(modulePrefix + 'library-datasource').projectDir = new File(rootDir, 'library/datasource')
|
||||
include modulePrefix + 'extension-cronet'
|
||||
project(modulePrefix + 'extension-cronet').projectDir = new File(rootDir, 'extensions/cronet')
|
||||
include modulePrefix + 'extension-rtmp'
|
||||
|
@ -22,6 +22,7 @@ android {
|
||||
dependencies {
|
||||
api "com.google.android.gms:play-services-cronet:17.0.1"
|
||||
implementation project(modulePrefix + 'library-common')
|
||||
implementation project(modulePrefix + 'library-datasource')
|
||||
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
||||
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
|
||||
compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
|
||||
|
@ -17,6 +17,7 @@ android.defaultConfig.minSdkVersion 21
|
||||
|
||||
dependencies {
|
||||
implementation project(modulePrefix + 'library-common')
|
||||
implementation project(modulePrefix + 'library-datasource')
|
||||
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
||||
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
|
||||
compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
|
||||
|
@ -15,6 +15,7 @@ apply from: "$gradle.ext.exoplayerSettingsDir/common_library_config.gradle"
|
||||
|
||||
dependencies {
|
||||
implementation project(modulePrefix + 'library-common')
|
||||
implementation project(modulePrefix + 'library-datasource')
|
||||
implementation 'net.butterflytv.utils:rtmp-client:3.1.0'
|
||||
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
||||
compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
|
||||
|
@ -15,6 +15,7 @@ apply from: "$gradle.ext.exoplayerSettingsDir/common_library_config.gradle"
|
||||
|
||||
dependencies {
|
||||
api project(modulePrefix + 'library-common')
|
||||
api project(modulePrefix + 'library-datasource')
|
||||
api project(modulePrefix + 'library-decoder')
|
||||
api project(modulePrefix + 'library-extractor')
|
||||
api project(modulePrefix + 'library-core')
|
||||
|
@ -14,19 +14,11 @@
|
||||
apply from: "$gradle.ext.exoplayerSettingsDir/common_library_config.gradle"
|
||||
|
||||
android {
|
||||
defaultConfig {
|
||||
multiDexEnabled true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
testCoverageEnabled = true
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
androidTest.assets.srcDir '../../testdata/src/test/assets/'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@ -56,7 +48,6 @@ dependencies {
|
||||
testImplementation 'androidx.test.ext:junit:' + androidxTestJUnitVersion
|
||||
testImplementation 'junit:junit:' + junitVersion
|
||||
testImplementation 'com.google.truth:truth:' + truthVersion
|
||||
testImplementation 'com.squareup.okhttp3:mockwebserver:' + okhttpVersion
|
||||
testImplementation 'org.robolectric:robolectric:' + robolectricVersion
|
||||
testImplementation project(modulePrefix + 'library-core')
|
||||
testImplementation project(modulePrefix + 'testutils')
|
||||
|
@ -1,16 +1,5 @@
|
||||
# Proguard rules specific to the common module.
|
||||
|
||||
# Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening.
|
||||
-keepclassmembers class com.google.android.exoplayer2.upstream.RawResourceDataSource {
|
||||
public static android.net.Uri buildRawResourceUri(int);
|
||||
}
|
||||
|
||||
# Constructors accessed via reflection in DefaultDataSource
|
||||
-dontnote com.google.android.exoplayer2.ext.rtmp.RtmpDataSource
|
||||
-keepclassmembers class com.google.android.exoplayer2.ext.rtmp.RtmpDataSource {
|
||||
<init>();
|
||||
}
|
||||
|
||||
# Don't warn about checkerframework and Kotlin annotations
|
||||
-dontwarn org.checkerframework.**
|
||||
-dontwarn kotlin.annotations.jvm.**
|
||||
|
@ -37,6 +37,7 @@ android {
|
||||
dependencies {
|
||||
api project(modulePrefix + 'library-common')
|
||||
// TODO(b/203754886): Revisit which modules are exported as API dependencies.
|
||||
api project(modulePrefix + 'library-datasource')
|
||||
api project(modulePrefix + 'library-decoder')
|
||||
api project(modulePrefix + 'library-extractor')
|
||||
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
||||
|
12
library/datasource/README.md
Normal file
12
library/datasource/README.md
Normal file
@ -0,0 +1,12 @@
|
||||
# DataSource module
|
||||
|
||||
Provides a `DataSource` abstraction and a number of concrete implementations for
|
||||
reading data from different sources. Application code will not normally need to
|
||||
depend on this module directly.
|
||||
|
||||
## Links
|
||||
|
||||
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.upstream.*` belong to this
|
||||
module.
|
||||
|
||||
[Javadoc]: https://exoplayer.dev/doc/reference/index.html
|
65
library/datasource/build.gradle
Normal file
65
library/datasource/build.gradle
Normal file
@ -0,0 +1,65 @@
|
||||
// Copyright (C) 2020 The Android Open Source Project
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
apply from: "$gradle.ext.exoplayerSettingsDir/common_library_config.gradle"
|
||||
|
||||
android {
|
||||
defaultConfig {
|
||||
multiDexEnabled true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
testCoverageEnabled = true
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
androidTest.assets.srcDir '../../testdata/src/test/assets/'
|
||||
test.assets.srcDir '../../testdata/src/test/assets/'
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation project(modulePrefix + 'library-common')
|
||||
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
||||
compileOnly 'com.google.code.findbugs:jsr305:' + jsr305Version
|
||||
compileOnly 'com.google.errorprone:error_prone_annotations:' + errorProneVersion
|
||||
compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion
|
||||
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
|
||||
compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
|
||||
androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion
|
||||
androidTestImplementation 'com.linkedin.dexmaker:dexmaker:' + dexmakerVersion
|
||||
androidTestImplementation 'com.linkedin.dexmaker:dexmaker-mockito:' + dexmakerVersion
|
||||
androidTestImplementation(project(modulePrefix + 'testutils')) {
|
||||
exclude module: modulePrefix.substring(1) + 'library-core'
|
||||
}
|
||||
testImplementation 'org.mockito:mockito-core:' + mockitoVersion
|
||||
testImplementation 'androidx.test:core:' + androidxTestCoreVersion
|
||||
testImplementation 'androidx.test.ext:junit:' + androidxTestJUnitVersion
|
||||
testImplementation 'com.google.truth:truth:' + truthVersion
|
||||
testImplementation 'com.squareup.okhttp3:mockwebserver:' + okhttpVersion
|
||||
testImplementation 'org.robolectric:robolectric:' + robolectricVersion
|
||||
testImplementation project(modulePrefix + 'testutils')
|
||||
}
|
||||
|
||||
ext {
|
||||
javadocTitle = 'DataSource module'
|
||||
}
|
||||
apply from: '../../javadoc_library.gradle'
|
||||
|
||||
ext {
|
||||
releaseArtifactId = 'exoplayer-datasource'
|
||||
releaseDescription = 'The ExoPlayer library DataSource module.'
|
||||
}
|
||||
apply from: '../../publish.gradle'
|
12
library/datasource/proguard-rules.txt
Normal file
12
library/datasource/proguard-rules.txt
Normal file
@ -0,0 +1,12 @@
|
||||
# Proguard rules specific to the DataSource module.
|
||||
|
||||
# Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening.
|
||||
-keepclassmembers class com.google.android.exoplayer2.upstream.RawResourceDataSource {
|
||||
public static android.net.Uri buildRawResourceUri(int);
|
||||
}
|
||||
|
||||
# Constructors accessed via reflection in DefaultDataSource
|
||||
-dontnote com.google.android.exoplayer2.ext.rtmp.RtmpDataSource
|
||||
-keepclassmembers class com.google.android.exoplayer2.ext.rtmp.RtmpDataSource {
|
||||
<init>();
|
||||
}
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2016 The Android Open Source Project
|
||||
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@ -16,7 +16,7 @@
|
||||
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="com.google.android.exoplayer2.common.test">
|
||||
package="com.google.android.exoplayer2.upstream.test">
|
||||
|
||||
<uses-sdk/>
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
</application>
|
||||
|
||||
<instrumentation
|
||||
android:targetPackage="com.google.android.exoplayer2.common.test"
|
||||
android:targetPackage="com.google.android.exoplayer2.upstream.test"
|
||||
android:name="androidx.test.runner.AndroidJUnitRunner"/>
|
||||
|
||||
</manifest>
|
@ -19,8 +19,8 @@ import android.content.res.Resources;
|
||||
import android.net.Uri;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import com.google.android.exoplayer2.common.test.R;
|
||||
import com.google.android.exoplayer2.testutil.DataSourceContractTest;
|
||||
import com.google.android.exoplayer2.upstream.test.R;
|
||||
import com.google.android.exoplayer2.util.Util;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import org.junit.runner.RunWith;
|
19
library/datasource/src/main/AndroidManifest.xml
Normal file
19
library/datasource/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<manifest package="com.google.android.exoplayer2.upstream">
|
||||
<uses-sdk/>
|
||||
</manifest>
|
@ -13,14 +13,12 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.google.android.exoplayer2.upstream.crypto;
|
||||
package com.google.android.exoplayer2.upstream;
|
||||
|
||||
import static com.google.android.exoplayer2.util.Util.castNonNull;
|
||||
import static java.lang.Math.min;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.upstream.DataSink;
|
||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
||||
import java.io.IOException;
|
||||
import javax.crypto.Cipher;
|
||||
|
@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.google.android.exoplayer2.upstream.crypto;
|
||||
package com.google.android.exoplayer2.upstream;
|
||||
|
||||
import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
|
||||
import static com.google.android.exoplayer2.util.Util.castNonNull;
|
||||
@ -21,9 +21,6 @@ import static com.google.android.exoplayer2.util.Util.castNonNull;
|
||||
import android.net.Uri;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.C;
|
||||
import com.google.android.exoplayer2.upstream.DataSource;
|
||||
import com.google.android.exoplayer2.upstream.DataSpec;
|
||||
import com.google.android.exoplayer2.upstream.TransferListener;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.google.android.exoplayer2.upstream.crypto;
|
||||
package com.google.android.exoplayer2.upstream;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import com.google.android.exoplayer2.util.Assertions;
|
19
library/datasource/src/test/AndroidManifest.xml
Normal file
19
library/datasource/src/test/AndroidManifest.xml
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (C) 2021 The Android Open Source Project
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<manifest package="com.google.android.exoplayer2.upstream">
|
||||
<uses-sdk/>
|
||||
</manifest>
|
@ -13,7 +13,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.google.android.exoplayer2.upstream.crypto;
|
||||
package com.google.android.exoplayer2.upstream;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static java.lang.Math.min;
|
Loading…
x
Reference in New Issue
Block a user