# Proguard rules specific to the core module. # Constructors accessed via reflection in DefaultRenderersFactory -dontnote androidx.media3.decoder.vp9.LibvpxVideoRenderer -keepclassmembers class androidx.media3.decoder.vp9.LibvpxVideoRenderer { (long, android.os.Handler, androidx.media3.exoplayer.video.VideoRendererEventListener, int); } -dontnote androidx.media3.decoder.av1.Libgav1VideoRenderer -keepclassmembers class androidx.media3.decoder.av1.Libgav1VideoRenderer { (long, android.os.Handler, androidx.media3.exoplayer.video.VideoRendererEventListener, int); } -dontnote androidx.media3.decoder.ffmpeg.ExperimentalFfmpegVideoRenderer -keepclassmembers class androidx.media3.decoder.ffmpeg.ExperimentalFfmpegVideoRenderer { (long, android.os.Handler, androidx.media3.exoplayer.video.VideoRendererEventListener, int); } -dontnote androidx.media3.decoder.opus.LibopusAudioRenderer -keepclassmembers class androidx.media3.decoder.opus.LibopusAudioRenderer { (android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink); } -dontnote androidx.media3.decoder.flac.LibflacAudioRenderer -keepclassmembers class androidx.media3.decoder.flac.LibflacAudioRenderer { (android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink); } -dontnote androidx.media3.decoder.iamf.LibiamfAudioRenderer -keepclassmembers class androidx.media3.decoder.iamf.LibiamfAudioRenderer { (android.content.Context, android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink); } -dontnote androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer -keepclassmembers class androidx.media3.decoder.ffmpeg.FfmpegAudioRenderer { (android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink); } -dontnote androidx.media3.decoder.midi.MidiRenderer -keepclassmembers class androidx.media3.decoder.midi.MidiRenderer { (android.content.Context, android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink); } -dontnote androidx.media3.decoder.mpegh.MpeghAudioRenderer -keepclassmembers class androidx.media3.decoder.mpegh.MpeghAudioRenderer { (android.os.Handler, androidx.media3.exoplayer.audio.AudioRendererEventListener, androidx.media3.exoplayer.audio.AudioSink); } # Constructors accessed via reflection in DefaultDownloaderFactory -dontnote androidx.media3.exoplayer.dash.offline.DashDownloader$Factory -keepclassmembers class androidx.media3.exoplayer.dash.offline.DashDownloader$Factory { (androidx.media3.datasource.cache.CacheDataSource$Factory); } -dontnote androidx.media3.exoplayer.hls.offline.HlsDownloader$Factory -keepclassmembers class androidx.media3.exoplayer.hls.offline.HlsDownloader$Factory { (androidx.media3.datasource.cache.CacheDataSource$Factory); } -dontnote androidx.media3.exoplayer.smoothstreaming.offline.SsDownloader$Factory -keepclassmembers class androidx.media3.exoplayer.smoothstreaming.offline.SsDownloader$Factory { (androidx.media3.datasource.cache.CacheDataSource$Factory); } # Constructors accessed via reflection in DefaultMediaSourceFactory -dontnote androidx.media3.exoplayer.dash.DashMediaSource$Factory -keepclasseswithmembers class androidx.media3.exoplayer.dash.DashMediaSource$Factory { (androidx.media3.datasource.DataSource$Factory); } -dontnote androidx.media3.exoplayer.hls.HlsMediaSource$Factory -keepclasseswithmembers class androidx.media3.exoplayer.hls.HlsMediaSource$Factory { (androidx.media3.datasource.DataSource$Factory); } -dontnote androidx.media3.exoplayer.smoothstreaming.SsMediaSource$Factory -keepclasseswithmembers class androidx.media3.exoplayer.smoothstreaming.SsMediaSource$Factory { (androidx.media3.datasource.DataSource$Factory); } -dontnote androidx.media3.exoplayer.rtsp.RtspMediaSource$Factory -keepclasseswithmembers class androidx.media3.exoplayer.rtsp.RtspMediaSource$Factory { (); } # Constructors and methods accessed via reflection in PlaybackVideoGraphWrapper -dontnote androidx.media3.effect.SingleInputVideoGraph$Factory -keepclasseswithmembers class androidx.media3.effect.SingleInputVideoGraph$Factory { (androidx.media3.common.VideoFrameProcessor$Factory); } -dontnote androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder -keepclasseswithmembers class androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder { androidx.media3.effect.DefaultVideoFrameProcessor$Factory build(); androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder setEnableReplayableCache(boolean); } # JNI & Native methods keep rules -keep class androidx.media3.exoplayer.upstream.Allocation { (java.nio.ByteBuffer, int, long); public ; long nativeHandle; } -keep class androidx.media3.exoplayer.upstream.DefaultAllocatorNative { *; } -keep class androidx.media3.exoplayer.source.SampleDataQueueNative { *; }