# media3-extractor-1.2.1
# Proguard rules specific to the extractor module.

# Methods accessed via reflection in DefaultExtractorsFactory
-dontnote com.naver.ads.internal.video.media3.decoder.flac.FlacExtractor
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.flac.FlacExtractor {
  <init>(int);
}
-dontnote com.naver.ads.internal.video.media3.decoder.flac.FlacLibrary
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.flac.FlacLibrary {
  public static boolean isAvailable();
}
-dontnote com.naver.ads.internal.video.media3.decoder.midi.MidiExtractor
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.midi.MidiExtractor {
  <init>();
}

# Don't warn about checkerframework and Kotlin annotations
-dontwarn org.checkerframework.**
-dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.**

# media3-datasource-1.2.1
# Proguard rules specific to the DataSource 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.
-keepclassmembers class com.naver.ads.internal.video.media3.datasource.RawResourceDataSource {
  public static android.net.Uri buildRawResourceUri(int);
}

# Constructors accessed via reflection in DefaultDataSource
-dontnote com.naver.ads.internal.video.media3.datasource.rtmp.RtmpDataSource
-keepclassmembers class com.naver.ads.internal.video.media3.datasource.rtmp.RtmpDataSource {
  <init>();
}

# media3-common-1.2.1
# Proguard rules specific to the common module.

# Don't warn about checkerframework and Kotlin annotations
-dontwarn org.checkerframework.**
-dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.**

# From https://github.com/google/guava/wiki/UsingProGuardWithGuava
-dontwarn java.lang.ClassValue
-dontwarn java.lang.SafeVarargs
-dontwarn javax.lang.model.element.Modifier
-dontwarn sun.misc.Unsafe

# Don't warn about Guava's compile-only dependencies.
# These lines are needed for ProGuard but not R8.
-dontwarn com.google.errorprone.annotations.**
-dontwarn com.google.j2objc.annotations.**
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

# Workaround for https://issuetracker.google.com/issues/112297269
# This is needed for ProGuard but not R8.
-keepclassmembernames class com.naver.ads.internal.video.guava.common.base.Function { *; }

# media3-exoplayer-1.2.1
# Proguard rules specific to the core module.

# Constructors accessed via reflection in DefaultRenderersFactory
-dontnote com.naver.ads.internal.video.media3.decoder.vp9.LibvpxVideoRenderer
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.vp9.LibvpxVideoRenderer {
  <init>(long, android.os.Handler, com.naver.ads.internal.video.media3.exoplayer.video.VideoRendererEventListener, int);
}
-dontnote com.naver.ads.internal.video.media3.decoder.av1.Libgav1VideoRenderer
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.av1.Libgav1VideoRenderer {
  <init>(long, android.os.Handler, com.naver.ads.internal.video.media3.exoplayer.video.VideoRendererEventListener, int);
}
-dontnote com.naver.ads.internal.video.media3.decoder.opus.LibopusAudioRenderer
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.opus.LibopusAudioRenderer {
  <init>(android.os.Handler, com.naver.ads.internal.video.media3.exoplayer.audio.AudioRendererEventListener, com.naver.ads.internal.video.media3.exoplayer.audio.AudioSink);
}
-dontnote com.naver.ads.internal.video.media3.decoder.flac.LibflacAudioRenderer
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.flac.LibflacAudioRenderer {
  <init>(android.os.Handler, com.naver.ads.internal.video.media3.exoplayer.audio.AudioRendererEventListener, com.naver.ads.internal.video.media3.exoplayer.audio.AudioSink);
}
-dontnote com.naver.ads.internal.video.media3.decoder.ffmpeg.FfmpegAudioRenderer
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.ffmpeg.FfmpegAudioRenderer {
  <init>(android.os.Handler, com.naver.ads.internal.video.media3.exoplayer.audio.AudioRendererEventListener, com.naver.ads.internal.video.media3.exoplayer.audio.AudioSink);
}
-dontnote com.naver.ads.internal.video.media3.decoder.midi.MidiRenderer
-keepclassmembers class com.naver.ads.internal.video.media3.decoder.midi.MidiRenderer {
  <init>(android.content.Context);
}

# Constructors accessed via reflection in DefaultDownloaderFactory
-dontnote com.naver.ads.internal.video.media3.exoplayer.dash.offline.DashDownloader
-keepclassmembers class com.naver.ads.internal.video.media3.exoplayer.dash.offline.DashDownloader {
  <init>(com.naver.ads.internal.video.media3.common.MediaItem, com.naver.ads.internal.video.media3.datasource.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
}
-dontnote com.naver.ads.internal.video.media3.exoplayer.hls.offline.HlsDownloader
-keepclassmembers class com.naver.ads.internal.video.media3.exoplayer.hls.offline.HlsDownloader {
  <init>(com.naver.ads.internal.video.media3.common.MediaItem, com.naver.ads.internal.video.media3.datasource.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
}
-dontnote com.naver.ads.internal.video.media3.exoplayer.smoothstreaming.offline.SsDownloader
-keepclassmembers class com.naver.ads.internal.video.media3.exoplayer.smoothstreaming.offline.SsDownloader {
  <init>(com.naver.ads.internal.video.media3.common.MediaItem, com.naver.ads.internal.video.media3.datasource.cache.CacheDataSource$Factory, java.util.concurrent.Executor);
}

# Constructors accessed via reflection in DefaultMediaSourceFactory
-dontnote com.naver.ads.internal.video.media3.exoplayer.dash.DashMediaSource$Factory
-keepclasseswithmembers class com.naver.ads.internal.video.media3.exoplayer.dash.DashMediaSource$Factory {
  <init>(com.naver.ads.internal.video.media3.datasource.DataSource$Factory);
}
-dontnote com.naver.ads.internal.video.media3.exoplayer.hls.HlsMediaSource$Factory
-keepclasseswithmembers class com.naver.ads.internal.video.media3.exoplayer.hls.HlsMediaSource$Factory {
  <init>(com.naver.ads.internal.video.media3.datasource.DataSource$Factory);
}
-dontnote com.naver.ads.internal.video.media3.exoplayer.smoothstreaming.SsMediaSource$Factory
-keepclasseswithmembers class com.naver.ads.internal.video.media3.exoplayer.smoothstreaming.SsMediaSource$Factory {
  <init>(com.naver.ads.internal.video.media3.datasource.DataSource$Factory);
}
-dontnote com.naver.ads.internal.video.media3.exoplayer.rtsp.RtspMediaSource$Factory
-keepclasseswithmembers class com.naver.ads.internal.video.media3.exoplayer.rtsp.RtspMediaSource$Factory {
  <init>();
}


-dontwarn com.naver.ads.internal.video.**
-keep class com.naver.ads.internal.video.** { *; }
