Add tv module for USB tuner support + demo app
------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=168366847
This commit is contained in:
parent
0adb4502f6
commit
f257300d8e
1
.gitignore
vendored
1
.gitignore
vendored
@ -39,6 +39,7 @@ proguard-project.txt
|
|||||||
|
|
||||||
# Other
|
# Other
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
cmake-build-debug
|
||||||
dist
|
dist
|
||||||
tmp
|
tmp
|
||||||
|
|
||||||
|
4
demos/tv/README.md
Normal file
4
demos/tv/README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# TV tuner demo application #
|
||||||
|
|
||||||
|
This folder contains a demo application that uses ExoPlayer to play broadcast
|
||||||
|
TV from USB tuners.
|
49
demos/tv/build.gradle
Normal file
49
demos/tv/build.gradle
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
// Copyright (C) 2017 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: '../../constants.gradle'
|
||||||
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion project.ext.compileSdkVersion
|
||||||
|
buildToolsVersion project.ext.buildToolsVersion
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdkVersion 21
|
||||||
|
targetSdkVersion project.ext.targetSdkVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTypes {
|
||||||
|
release {
|
||||||
|
shrinkResources true
|
||||||
|
minifyEnabled true
|
||||||
|
proguardFiles getDefaultProguardFile('proguard-android.txt')
|
||||||
|
}
|
||||||
|
debug {
|
||||||
|
jniDebuggable = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lintOptions {
|
||||||
|
// The demo app does not have translations.
|
||||||
|
disable 'MissingTranslation'
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile project(modulePrefix + 'library-core')
|
||||||
|
compile project(modulePrefix + 'library-ui')
|
||||||
|
compile project(modulePrefix + 'internal-extension-tv')
|
||||||
|
compile project(modulePrefix + 'extension-ffmpeg')
|
||||||
|
}
|
41
extensions/tv/README.md
Normal file
41
extensions/tv/README.md
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# ExoPlayer TV tuner extension #
|
||||||
|
|
||||||
|
Provides components for broadcast TV playback with ExoPlayer.
|
||||||
|
|
||||||
|
## Links ##
|
||||||
|
|
||||||
|
* [Javadoc][]: Classes matching `com.google.android.exoplayer2.ext.tv.*`
|
||||||
|
belong to this extension.
|
||||||
|
|
||||||
|
[Javadoc]: https://google.github.io/ExoPlayer/doc/reference/index.html
|
||||||
|
|
||||||
|
## Build Instructions ##
|
||||||
|
|
||||||
|
* Checkout ExoPlayer:
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone https://github.com/google/ExoPlayer.git
|
||||||
|
```
|
||||||
|
|
||||||
|
* Set the following environment variables:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd "<path to exoplayer checkout>"
|
||||||
|
EXOPLAYER_ROOT="$(pwd)"
|
||||||
|
TV_MODULE_PATH="${EXOPLAYER_ROOT}/extensions/tv/src/main"
|
||||||
|
```
|
||||||
|
|
||||||
|
* Download the [Android NDK][] and set its location in an environment variable:
|
||||||
|
|
||||||
|
[Android NDK]: https://developer.android.com/tools/sdk/ndk/index.html
|
||||||
|
|
||||||
|
```
|
||||||
|
NDK_PATH="<path to Android NDK>"
|
||||||
|
```
|
||||||
|
|
||||||
|
* Build the JNI native libraries from the command line:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd "${TV_MODULE_PATH}"/jni && \
|
||||||
|
${NDK_PATH}/ndk-build APP_ABI=all -j<N>
|
||||||
|
```
|
39
extensions/tv/build.gradle
Normal file
39
extensions/tv/build.gradle
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
// Copyright (C) 2017 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: '../../constants.gradle'
|
||||||
|
apply plugin: 'com.android.library'
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion project.ext.compileSdkVersion
|
||||||
|
buildToolsVersion project.ext.buildToolsVersion
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdkVersion 21
|
||||||
|
targetSdkVersion project.ext.targetSdkVersion
|
||||||
|
}
|
||||||
|
|
||||||
|
sourceSets.main {
|
||||||
|
jniLibs.srcDir 'src/main/libs'
|
||||||
|
jni.srcDirs = [] // Disable the automatic ndk-build call by Android Studio.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
compile project(modulePrefix + 'library-core')
|
||||||
|
}
|
||||||
|
|
||||||
|
ext {
|
||||||
|
javadocTitle = 'TV tuner extension'
|
||||||
|
}
|
||||||
|
apply from: '../../javadoc_library.gradle'
|
@ -62,6 +62,17 @@ public final class ParsableBitArray {
|
|||||||
reset(data, data.length);
|
reset(data, data.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets this instance's data, position and limit to match the provided {@code parsableByteArray}.
|
||||||
|
* Any modifications to the underlying data array will be visible in both instances
|
||||||
|
*
|
||||||
|
* @param parsableByteArray The {@link ParsableByteArray}.
|
||||||
|
*/
|
||||||
|
public void reset(ParsableByteArray parsableByteArray) {
|
||||||
|
reset(parsableByteArray.data, parsableByteArray.limit());
|
||||||
|
setPosition(parsableByteArray.getPosition() * 8);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the instance to wrap {@code data}, and resets the position to zero.
|
* Updates the instance to wrap {@code data}, and resets the position to zero.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user