# Proguard rules specific to the core 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. -keep class com.google.android.exoplayer2.upstream.RawResourceDataSource { public static android.net.Uri buildRawResourceUri(int); } # Methods accessed via reflection in DefaultExtractorsFactory -dontnote com.google.android.exoplayer2.ext.flac.FlacLibrary -keepclassmembers class com.google.android.exoplayer2.ext.flac.FlacLibrary { public static boolean isAvailable(); } # Some members of this class are being accessed from native methods. Keep them unobfuscated. -keep class com.google.android.exoplayer2.video.VideoDecoderOutputBuffer { *; } # Constructors accessed via reflection in DefaultRenderersFactory -dontnote com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer -keepclassmembers class com.google.android.exoplayer2.ext.vp9.LibvpxVideoRenderer { (long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int); } -dontnote com.google.android.exoplayer2.ext.av1.Libgav1VideoRenderer -keepclassmembers class com.google.android.exoplayer2.ext.av1.Libgav1VideoRenderer { (long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int); } -dontnote com.google.android.exoplayer2.ext.ffmpeg.FfmpegVideoRenderer -keepclassmembers class com.google.android.exoplayer2.ext.ffmpeg.FfmpegVideoRenderer { (long, android.os.Handler, com.google.android.exoplayer2.video.VideoRendererEventListener, int); } -dontnote com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.opus.LibopusAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } -dontnote com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.flac.LibflacAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } -dontnote com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer -keepclassmembers class com.google.android.exoplayer2.ext.ffmpeg.FfmpegAudioRenderer { (android.os.Handler, com.google.android.exoplayer2.audio.AudioRendererEventListener, com.google.android.exoplayer2.audio.AudioProcessor[]); } # Constructors accessed via reflection in DefaultDataSource -dontnote com.google.android.exoplayer2.ext.rtmp.RtmpDataSource -keepclassmembers class com.google.android.exoplayer2.ext.rtmp.RtmpDataSource { (); } # Constructors accessed via reflection in DefaultDownloaderFactory -dontnote com.google.android.exoplayer2.source.dash.offline.DashDownloader -keepclassmembers class com.google.android.exoplayer2.source.dash.offline.DashDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.upstream.cache.CacheDataSource.Factory, java.util.concurrent.Executor); } -dontnote com.google.android.exoplayer2.source.hls.offline.HlsDownloader -keepclassmembers class com.google.android.exoplayer2.source.hls.offline.HlsDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.upstream.cache.CacheDataSource.Factory, java.util.concurrent.Executor); } -dontnote com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader -keepclassmembers class com.google.android.exoplayer2.source.smoothstreaming.offline.SsDownloader { (android.net.Uri, java.util.List, com.google.android.exoplayer2.upstream.cache.CacheDataSource.Factory, java.util.concurrent.Executor); } # Constructors accessed via reflection in DefaultMediaSourceFactory and DownloadHelper -dontnote com.google.android.exoplayer2.source.dash.DashMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.dash.DashMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } -dontnote com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.hls.HlsMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } -dontnote com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory -keepclasseswithmembers class com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource$Factory { (com.google.android.exoplayer2.upstream.DataSource$Factory); } # Don't warn about checkerframework and Kotlin annotations -dontwarn org.checkerframework.** -dontwarn kotlin.annotations.jvm.** -dontwarn javax.annotation.**