proguard-user.txt 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. # Add project specific ProGuard rules here.
  2. # By default, the flags in this file are appended to flags specified
  3. # in /Users/saki/android-sdks/tools/proguard/proguard-android.txt
  4. # You can edit the include path and order by changing the proguardFiles
  5. # directive in build.gradle.
  6. #
  7. # For more details, see
  8. # http://developer.android.com/guide/developing/tools/proguard.html
  9. # Add any project specific keep options here:
  10. # If your project uses WebView with JS, uncomment the following
  11. # and specify the fully qualified class name to the JavaScript interface
  12. # class:
  13. #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
  14. # public *;
  15. #}
  16. -keepclasseswithmembernames class * {
  17. native <methods>;
  18. *** mNativePtr;
  19. *** mNativeValue;
  20. *** mContext;
  21. }
  22. -keep class * implements android.os.Parcelable {
  23. public static final android.os.Parcelable$Creator *;
  24. }
  25. -keep public class com.serenegiant.usb.uac.UACClient {
  26. native <methods>;
  27. public *;
  28. protected *;
  29. private *;
  30. }
  31. -keep public class com.serenegiant.media.Encoder {
  32. native <methods>;
  33. public *;
  34. protected *;
  35. private *;
  36. }
  37. -keep public class com.serenegiant.media.VideoEncoder {
  38. native <methods>;
  39. public *;
  40. protected *;
  41. private *;
  42. }
  43. -keep public class com.serenegiant.media.VideoMuxer {
  44. native <methods>;
  45. public *;
  46. protected *;
  47. private *;
  48. }
  49. -keep public class com.serenegiant.usb.uvc.Utils {
  50. native <methods>;
  51. public *;
  52. protected *;
  53. private *;
  54. }
  55. -keep public interface com.serenegiant.camera.ICamera { *; }
  56. -keep public interface com.serenegiant.camera.ICameraControl { *; }
  57. -keep public interface com.serenegiant.camera.IFrameCallback { *; }
  58. -keep public interface com.serenegiant.usb.uvc.IButtonCallback { *; }
  59. -keep public interface com.serenegiant.usb.uvc.IStatusCallback { *; }
  60. -keep public interface com.serenegiant.usb.uvc.IUVCCamera { *; }
  61. -keep public class com.serenegiant.usb.uvc.IPipeline {*;}
  62. -dontnote com.serenegiant.usb.uvc.IPipeline
  63. -keep public class com.serenegiant.usb.uvc.ConvertPipeline {
  64. native <methods>;
  65. public *;
  66. protected *;
  67. private *;
  68. }
  69. -keep public class com.serenegiant.usb.uvc.DistributePipeline {
  70. native <methods>;
  71. public *;
  72. protected *;
  73. private *;
  74. }
  75. -keep public class com.serenegiant.usb.uvc.FrameCallbackPipeline {
  76. native <methods>;
  77. public *;
  78. protected *;
  79. private *;
  80. }
  81. -keep public class com.serenegiant.usb.uvc.FrameSavePipeline {
  82. native <methods>;
  83. public *;
  84. protected *;
  85. private *;
  86. }
  87. -keep public class com.serenegiant.usb.uvc.NativeCallbackPipeline {
  88. native <methods>;
  89. public *;
  90. protected *;
  91. private *;
  92. }
  93. -keep public class com.serenegiant.usb.uvc.PreviewPipeline {
  94. native <methods>;
  95. public *;
  96. protected *;
  97. private *;
  98. }
  99. -keep public class com.serenegiant.usb.uvc.SimpleBufferedPipeline {
  100. native <methods>;
  101. public *;
  102. protected *;
  103. private *;
  104. }
  105. -keep public class com.serenegiant.usb.uvc.UVCPipeline {
  106. native <methods>;
  107. public *;
  108. protected *;
  109. private *;
  110. }
  111. -keep public class com.serenegiant.usb.uvc.PipelineSource {
  112. native <methods>;
  113. public *;
  114. protected *;
  115. private *;
  116. }
  117. -keep public class com.serenegiant.usb.uvc.PtsCalcPipeline {
  118. native <methods>;
  119. public *;
  120. protected *;
  121. private *;
  122. }
  123. -keep public class com.serenegiant.camera.FuncMaxMinDef {
  124. public *;
  125. protected *;
  126. private *;
  127. }
  128. ##---------------Begin: proguard configuration for Gson ----------
  129. # Gson uses generic type information stored in a class file when working with fields. Proguard
  130. # removes such information by default, so configure it to keep all of it.
  131. -keepattributes Signature
  132. # For using GSON @Expose annotation
  133. -keepattributes *Annotation*
  134. # Gson specific classes
  135. -keep class sun.misc.Unsafe
  136. -keep class sun.misc.Unsafe.**
  137. -dontnote sun.misc.Unsafe
  138. #-keep class com.google.gson.stream.** { *; }
  139. -keep class com.serenegiant.camera.Size
  140. -keep class com.serenegiant.camera.Size { *; }
  141. -keep public class com.serenegiant.aandusb.R
  142. -keep public class com.serenegiant.aandusb.R.**
  143. -keep public class com.serenegiant.aandusb.R.*$*
  144. -keep public class com.serenegiant.aandusb.R.$**
  145. -keep public class com.serenegiant.usb.R
  146. -keep public class com.serenegiant.usb.R.**
  147. -keep public class com.serenegiant.usb.R.*$*
  148. -keep public class com.serenegiant.usb.R.$**
  149. -keep public class com.serenegiant.uvcplugin.DeviceDetector {
  150. native <methods>;
  151. public *;
  152. }
  153. -keep public class com.serenegiant.uvcplugin.UVCHolder {
  154. native <methods>;
  155. public *;
  156. }
  157. -keep public class com.serenegiant.androidutils.AndroidUtils {
  158. native <methods>;
  159. public *;
  160. }