# 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.Libdav1dVideoRenderer -keepclassmembers class androidx.media3.decoder.av1.Libdav1dVideoRenderer { (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 { (); } # Conditional keeps for constructors and methods accessed via reflection in PlaybackVideoGraphWrapper -if class * implements androidx.media3.exoplayer.ExoPlayer { public void setVideoEffects(java.util.List); } -keepclasseswithmembers class androidx.media3.effect.SingleInputVideoGraph$Factory { (androidx.media3.common.VideoFrameProcessor$Factory); } -if class * implements androidx.media3.exoplayer.ExoPlayer { public void setVideoEffects(java.util.List); } -keepclasseswithmembers class androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder { (); androidx.media3.effect.DefaultVideoFrameProcessor$Factory build(); androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder setEnableReplayableCache(boolean); } # These notes are independent of the keep rules -dontnote androidx.media3.effect.SingleInputVideoGraph$Factory -dontnote androidx.media3.effect.DefaultVideoFrameProcessor$Factory$Builder