
The `GlUtil` wrappers for attributes/uniforms allocate buffers that are passed into OpenGL, and it seems that the distorted output was caused by these buffers being garbage collected. The issue was difficult to reproduce manually. Add a test that does repeated transcodes in a loop (marked `@Ignore` for now because it runs for a long time and requires network access so may be flaky) to make it easier to run many transcodes and look for inconsistent output. For now the consistency check is just based on the file size which is very likely to change if the actual video frames change. Verified that the test fails before, and passes once the attributes and uniforms are stored in fields as in this CL. PiperOrigin-RevId: 410581706
64 lines
2.5 KiB
Groovy
64 lines
2.5 KiB
Groovy
// Copyright 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.androidxMediaSettingsDir/common_library_config.gradle"
|
|
android {
|
|
|
|
defaultConfig {
|
|
// The following argument makes the Android Test Orchestrator run its
|
|
// "pm clear" command after each test invocation. This command ensures
|
|
// that the app's state is completely cleared between tests.
|
|
testInstrumentationRunnerArguments clearPackageData: 'true'
|
|
multiDexEnabled true
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
testCoverageEnabled = true
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
androidTest.assets.srcDir '../test_data/src/test/assets/' //copybara:media3-only
|
|
test.assets.srcDir '../test_data/src/test/assets/'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'androidx.annotation:annotation:' + androidxAnnotationVersion
|
|
implementation project(modulePrefix + 'lib-exoplayer')
|
|
compileOnly 'org.checkerframework:checker-qual:' + checkerframeworkVersion
|
|
compileOnly 'org.checkerframework:checker-compat-qual:' + checkerframeworkCompatVersion
|
|
compileOnly 'org.jetbrains.kotlin:kotlin-annotations-jvm:' + kotlinAnnotationsVersion
|
|
testImplementation project(modulePrefix + 'test-utils-robolectric')
|
|
testImplementation project(modulePrefix + 'test-utils')
|
|
testImplementation project(modulePrefix + 'test-data')
|
|
testImplementation 'org.robolectric:robolectric:' + robolectricVersion
|
|
testImplementation 'com.google.truth:truth:' + truthVersion
|
|
androidTestImplementation 'junit:junit:' + junitVersion
|
|
androidTestImplementation 'androidx.test:runner:' + androidxTestRunnerVersion
|
|
androidTestImplementation 'com.google.truth:truth:' + truthVersion
|
|
androidTestImplementation project(modulePrefix + 'test-utils')
|
|
}
|
|
|
|
ext {
|
|
javadocTitle = 'Transformer module'
|
|
}
|
|
apply from: '../../javadoc_library.gradle'
|
|
|
|
ext {
|
|
releaseArtifactId = 'media3-transformer'
|
|
releaseName = 'Media3 Transformer module'
|
|
}
|
|
apply from: '../../publish.gradle'
|