@quicktvui/ai 1.0.8 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1183) hide show
  1. package/package.json +1 -1
  2. package/rules/.clinerules +1 -0
  3. package/rules/.cursorrules +1 -0
  4. package/rules/.github/copilot-instructions.md +1 -0
  5. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/SampleApplication.java +1 -0
  6. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/base/BaseActivity.java +1 -0
  7. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/base/BaseApplication.java +1 -0
  8. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/Test2Module.java +1 -0
  9. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestALastpolloInit.java +1 -0
  10. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestApolloInit.java +1 -0
  11. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestCacheInit.java +1 -0
  12. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestComponent.java +1 -0
  13. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestKotlinInit.kt +1 -0
  14. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestModule.java +1 -0
  15. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestModule2.kt +1 -0
  16. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestModule3.java +1 -0
  17. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestViewController.java +25 -0
  18. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/test_reg/TestViewGroupController.java +24 -0
  19. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/ui/EsAppActivity.java +1 -0
  20. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/ui/FocusButton.java +1 -0
  21. package/rules/.source/sdk/app/src/main/java/com/quicktvui/sample/ui/MainActivity.java +1 -0
  22. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/Constants.java +13 -0
  23. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsCallback.java +6 -0
  24. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsEmptyCallback.java +9 -0
  25. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsEventPacket.java +19 -0
  26. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsException.java +55 -0
  27. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsNativeEventCallback.java +8 -0
  28. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsPromise.java +15 -0
  29. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsProvider.java +8 -0
  30. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsSimplePromise.java +27 -0
  31. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/EsSingleCallback.java +9 -0
  32. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/IDiskCacheManager.java +19 -0
  33. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/IEsAutoInit.java +1 -0
  34. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/IEsInfo.java +18 -0
  35. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/IEsRemoteEventCallback.java +11 -0
  36. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/IEsTraceable.java +7 -0
  37. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/ISoManager.java +31 -0
  38. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/ITakeOverKeyEventListener.java +17 -0
  39. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/PromiseHolder.java +66 -0
  40. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/args/EsArray.java +215 -0
  41. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/args/EsMap.java +287 -0
  42. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/component/EsComponent.java +14 -0
  43. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/component/EsComponentAttribute.java +15 -0
  44. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/component/IEsComponent.java +21 -0
  45. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/component/IEsComponentView.java +8 -0
  46. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/core/EsProxy.java +313 -0
  47. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/core/IEsProxy.java +243 -0
  48. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/cover/IEsCoverView.java +26 -0
  49. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/display/IDisplayManager.java +19 -0
  50. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/image/IEsImageLoader.java +17 -0
  51. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/model/LocalCacheInfo.java +88 -0
  52. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/model/ScreenInfo.java +12 -0
  53. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/model/ThirdEvent.java +13 -0
  54. package/rules/.source/sdk/base/sdk-base/src/main/java/com/quicktvui/sdk/base/module/IEsModule.java +15 -0
  55. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/EsAPIProvider.java +32 -0
  56. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/EsAppContext.java +13 -0
  57. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/EsData.java +597 -0
  58. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/EsKitInitCallback.java +15 -0
  59. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/EsKitInitCallbackProxy.java +41 -0
  60. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/EsKitStatus.java +14 -0
  61. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/EsManager.java +26 -0
  62. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/EsStartParam.java +17 -0
  63. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/IEsManager.java +83 -0
  64. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/InitConfig.java +287 -0
  65. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/adapter/DefaultHippyLogAdapter.java +27 -0
  66. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/adapter/DefaultRpkLoaderAdapter.java +1 -0
  67. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/adapter/EsApiAdapter.java +22 -0
  68. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/adapter/EsEngineExceptionHandlerAdapter.java +31 -0
  69. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/adapter/EsImageLoaderAdapter.java +141 -0
  70. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/adapter/EsSoLoaderAdapter.java +22 -0
  71. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/adapter/HttpsAdapter.java +1 -0
  72. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/adapter/ProxyHttpAdapter.java +36 -0
  73. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/assets/AssetBundleManager.java +347 -0
  74. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/assets/AssetData.java +39 -0
  75. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/assets/AssetLoadCallback.java +33 -0
  76. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/callback/EsAppLifeCallback.java +19 -0
  77. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/callback/EsAppLifeCallbackImpl.java +60 -0
  78. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/callback/EsAppLifeCallbackImplProxy.java +74 -0
  79. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardBean.java +35 -0
  80. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardCache.java +40 -0
  81. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardCallBack.java +40 -0
  82. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardCallBackAdapter.java +53 -0
  83. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardCallBackImpl.java +50 -0
  84. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardGroupController.java +187 -0
  85. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardGroupView.java +102 -0
  86. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardManager.java +102 -0
  87. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardView.java +716 -0
  88. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/ESCardViewComponent.java +190 -0
  89. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/card/WebFrameView.java +125 -0
  90. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/component/BaseHippyViewController.java +30 -0
  91. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/component/CommonViewController.java +290 -0
  92. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/component/EsCommonComponent.java +129 -0
  93. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/component/IOverrideMethods.java +60 -0
  94. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/db/EsDBHelper.java +119 -0
  95. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/db/Migration1_2.java +31 -0
  96. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/db/entity/RpkEntity.java +141 -0
  97. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/display/ESDisplayManager.java +41 -0
  98. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/engine/ESEvents.java +42 -0
  99. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/engine/ESInstanceContext.java +16 -0
  100. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/engine/EsEngine.java +212 -0
  101. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/engine/EsEnginePool.java +262 -0
  102. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/engine/RuntimeManager.java +94 -0
  103. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/entity/DeviceInfo.java +62 -0
  104. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/entity/InfoEntity.java +13 -0
  105. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ext/loadproxy/IEsRpkLoadProxy.java +43 -0
  106. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ext/log/ILogCallback.java +10 -0
  107. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ext/log/LogAdapterFactory.java +14 -0
  108. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ext/package.info +0 -0
  109. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/fragment/EsBaseFragment.java +11 -0
  110. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/fragment/EsFragment.java +181 -0
  111. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/fragment/EsFragmentManager.java +227 -0
  112. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/fragment/EsPageFragment.java +75 -0
  113. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/fragment/IEsFragmentMgr.java +41 -0
  114. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/interceptor/EsDefaultInterceptor.java +8 -0
  115. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/interceptor/IEsInterceptor.java +41 -0
  116. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/interceptor/LaunchEsPageInterceptor.java +15 -0
  117. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/AbsEsImageLoader.java +9 -0
  118. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/ApiProviderProxy.java +32 -0
  119. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/BaseHandlerThread.java +76 -0
  120. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/Constants.java +394 -0
  121. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsAppLoadHandlerImpl.java +221 -0
  122. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsAppLoadHandlerImplV2.java +326 -0
  123. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsComponentManager.java +347 -0
  124. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsConfigManager.java +81 -0
  125. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsContainerTaskV2.java +714 -0
  126. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsContentProvider.java +166 -0
  127. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsContext.java +354 -0
  128. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsContextFinder.java +61 -0
  129. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsDiskCacheManager.java +266 -0
  130. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsManagerInner.java +463 -0
  131. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsPromiseProxy.java +49 -0
  132. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsProxyImpl.java +474 -0
  133. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsViewManager.java +838 -0
  134. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/EsViewRecord.java +63 -0
  135. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/IEsAppLoadCallback.java +38 -0
  136. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/IEsAppLoadHandler.java +36 -0
  137. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/IEsViewer.java +32 -0
  138. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/SampleAnimatorListener.java +28 -0
  139. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/AbstractLoader.java +135 -0
  140. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/ApiRpkLoader.java +1 -0
  141. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/AssetsRpkLoader.java +79 -0
  142. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/DebugRpkLoader.java +43 -0
  143. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/FileRpkLoader.java +63 -0
  144. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/HttpRpkLoader.java +61 -0
  145. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/IRpkLoader.java +65 -0
  146. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/NexusRpkLoader.java +175 -0
  147. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/RecordInfo.java +37 -0
  148. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/RpkInfo.java +136 -0
  149. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/RpkLoaderFactory.java +60 -0
  150. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/RpkVersion.java +54 -0
  151. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/internal/loader/TaskEntity.java +57 -0
  152. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/JsSlotView.java +353 -0
  153. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/JsSlotViewManager.java +363 -0
  154. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/RecyclerViewHandlerImpl.java +60 -0
  155. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/SlotModule.java +1 -0
  156. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/chutil/GenericMotionUtil.java +26 -0
  157. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/chutil/MouseUtil.java +107 -0
  158. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/slot/SlotRootView.java +39 -0
  159. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/slot/SlotRootViewController.java +50 -0
  160. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/slot/SlotView.java +89 -0
  161. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/jsview/slot/SlotViewController.java +84 -0
  162. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mdns/NsdRegisterHelper.java +56 -0
  163. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mediasession/BaseMediaSessionPlayerService.java +104 -0
  164. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mediasession/EsMediaController.java +111 -0
  165. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mediasession/EsMediaPlayerService.java +39 -0
  166. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mediasession/callback/EsCommonMediaSessionCallback.java +374 -0
  167. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mediasession/manager/IServiceManager.java +16 -0
  168. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mediasession/manager/ServiceManagerFactory.java +21 -0
  169. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mediasession/manager/impl/MCommonServiceImpl.java +95 -0
  170. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/mediasession/module/EsMediaSessionModule.java +61 -0
  171. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/module/AppUsageModule.java +170 -0
  172. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/module/CommonModule.java +27 -0
  173. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/module/CommonModuleInfo.java +96 -0
  174. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/module/EsNativeModule.java +878 -0
  175. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/pm/EsPageController.java +49 -0
  176. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/pm/EsPageView.java +202 -0
  177. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/pm/EsRouterController.java +63 -0
  178. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/pm/EsRouterView.java +113 -0
  179. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/pm/IEsPageView.java +20 -0
  180. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/pm/InnerProvider.java +37 -0
  181. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/pm/PageModule.java +37 -0
  182. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/protocol/EsProtocolDispatcher.java +114 -0
  183. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/protocol/EsStartTarget.java +37 -0
  184. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/protocol/Protocol_1.java +78 -0
  185. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/protocol/Protocol_2.java +345 -0
  186. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/sf/UsageManager.java +98 -0
  187. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/sf/db/UsageDbHelper.java +97 -0
  188. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/sf/db/dao/UsageRecordDao.java +34 -0
  189. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/sf/db/entity/UsageRecord.java +96 -0
  190. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/sf/strategy/DefaultStrategyImpl.java +100 -0
  191. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/sf/strategy/IUsageStrategy.java +23 -0
  192. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/tookit/DefaultWindowManager.java +46 -0
  193. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/tookit/ESToolkitManager.java +182 -0
  194. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/tookit/IESToolkit.java +22 -0
  195. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/tookit/ToolkitUseCase.java +22 -0
  196. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/udp/AbstractUdpServer.java +102 -0
  197. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/udp/EsUdpServer.java +177 -0
  198. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/udp/UdpServerConfig.java +28 -0
  199. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/BrowserBaseActivity.java +224 -0
  200. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/BrowserBaseFullActivity.java +118 -0
  201. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/BrowserProxyActivity.java +122 -0
  202. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/BrowserStandardActivity.java +14 -0
  203. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/BrowserStandardNoThemeActivity.java +14 -0
  204. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/BrowserStandardTransparentActivity.java +14 -0
  205. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/IHippyManager.java +36 -0
  206. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/instance/BrowserSingleInstanceActivity0.java +9 -0
  207. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/instance/BrowserSingleInstanceActivity1.java +9 -0
  208. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/instance/BrowserSingleInstanceActivity2.java +9 -0
  209. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/instance/BrowserSingleInstanceActivity3.java +9 -0
  210. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/instance/BrowserSingleInstanceActivity4.java +9 -0
  211. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/task/BrowserSingleTaskActivity0.java +9 -0
  212. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/task/BrowserSingleTaskActivity1.java +9 -0
  213. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/task/BrowserSingleTaskActivity2.java +9 -0
  214. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/task/BrowserSingleTaskActivity3.java +9 -0
  215. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/task/BrowserSingleTaskActivity4.java +9 -0
  216. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/top/BrowserSingleTopActivity0.java +9 -0
  217. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/top/BrowserSingleTopActivity1.java +9 -0
  218. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/top/BrowserSingleTopActivity2.java +9 -0
  219. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/top/BrowserSingleTopActivity3.java +9 -0
  220. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/normal/single/top/BrowserSingleTopActivity4.java +9 -0
  221. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/instance/BrowserSingleInstanceActivity0.java +9 -0
  222. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/instance/BrowserSingleInstanceActivity1.java +9 -0
  223. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/instance/BrowserSingleInstanceActivity2.java +9 -0
  224. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/instance/BrowserSingleInstanceActivity3.java +9 -0
  225. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/instance/BrowserSingleInstanceActivity4.java +9 -0
  226. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/task/BrowserSingleTaskActivity0.java +9 -0
  227. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/task/BrowserSingleTaskActivity1.java +9 -0
  228. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/task/BrowserSingleTaskActivity2.java +9 -0
  229. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/task/BrowserSingleTaskActivity3.java +9 -0
  230. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/task/BrowserSingleTaskActivity4.java +9 -0
  231. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/top/BrowserSingleTopActivity0.java +9 -0
  232. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/top/BrowserSingleTopActivity1.java +9 -0
  233. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/top/BrowserSingleTopActivity2.java +9 -0
  234. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/top/BrowserSingleTopActivity3.java +9 -0
  235. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/notheme/single/top/BrowserSingleTopActivity4.java +9 -0
  236. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/pg/BasePageLoader.java +20 -0
  237. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/pg/FragmentPageLoader.java +273 -0
  238. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/pg/IPageLoader.java +44 -0
  239. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/pg/RootFragmentView.java +499 -0
  240. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/pg/SubFragmentView.java +85 -0
  241. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/result/PermissionActivityResultHandler.java +132 -0
  242. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/ui/wm/AbstractWindowManager.java +120 -0
  243. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/Am.java +397 -0
  244. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/AutoUtils.java +1 -0
  245. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/CommonUtils.java +150 -0
  246. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/CpuAbiUtils.java +280 -0
  247. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/CrashHandler.java +40 -0
  248. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/DebugLog.java +28 -0
  249. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/DefaultLifecycleObserver.java +35 -0
  250. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/DexUtil.java +75 -0
  251. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/ESExecutors.java +73 -0
  252. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/EsDataFactory.java +76 -0
  253. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/EsDecode.java +37 -0
  254. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/EsIntent.java +40 -0
  255. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/EsNativeEvent.java +63 -0
  256. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/EskitLazyInitHelper.java +20 -0
  257. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/FullScreenUtils.java +73 -0
  258. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/HomeKeyReceiver.java +52 -0
  259. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/HttpRequestUtils.java +30 -0
  260. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/KeyEventUtil.java +71 -0
  261. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/MapperUtils.java +491 -0
  262. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/NetworkSpeedMonitor.java +68 -0
  263. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/NexusRepo.java +70 -0
  264. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/ObjectUtils.java +49 -0
  265. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/ParameterizedTypeImpl.java +23 -0
  266. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/PathHelper.java +23 -0
  267. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/PermissionRequestHelper.java +81 -0
  268. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/PluginUtils.java +71 -0
  269. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/ReflectExecutor.java +77 -0
  270. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/SlotUtils.java +97 -0
  271. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/SpUtils.java +184 -0
  272. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/TaskProgressManager.java +104 -0
  273. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/TimeCheckUtil.java +45 -0
  274. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/UcDeviceUtils.java +95 -0
  275. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/utils/UploadLogKeyDispatcher.java +33 -0
  276. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/views/DebugFocusHelper.java +90 -0
  277. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/views/DebugFocusRoot.java +195 -0
  278. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/views/DebugFocusView.java +65 -0
  279. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/views/EsDefaultCoverView.java +726 -0
  280. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/views/EsGrayFrameLayout.java +65 -0
  281. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/views/EsProgressLoadingView.java +103 -0
  282. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/views/LoadingDrawable.java +1 -0
  283. package/rules/.source/sdk/core/sdk-core/src/main/java/com/quicktvui/sdk/core/views/MyButton.java +55 -0
  284. package/rules/.source/sdk/plugin/compiler/src/main/java/com/quicktvui/sdk/compiler/AnnotationProcessor.java +46 -0
  285. package/rules/.source/sdk/plugin/compiler/src/main/java/com/quicktvui/sdk/compiler/processor/AbstractProcessor.java +1 -0
  286. package/rules/.source/sdk/plugin/compiler/src/main/java/com/quicktvui/sdk/compiler/processor/ESKitAutoInitProcessor.java +1 -0
  287. package/rules/.source/sdk/plugin/compiler/src/main/java/com/quicktvui/sdk/compiler/processor/ESKitAutoRegisterProcessor.java +217 -0
  288. package/rules/.source/sdk/plugin/compiler/src/main/java/com/quicktvui/sdk/compiler/processor/IProcessor.java +12 -0
  289. package/rules/.source/sdk/plugin/compiler/src/main/java/com/quicktvui/sdk/compiler/utils/Utils.java +78 -0
  290. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/media/audio/mp3/AndroidMP3Encoder.java +19 -0
  291. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/media/audio/mp3/AudioRecorderHandler.java +128 -0
  292. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/media/audio/mp3/AudioRecorderMp3.java +267 -0
  293. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/media/audio/mp3/AudioRecorderMp3Manager.java +140 -0
  294. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/media/audio/mp3/EncodeBuffer.java +27 -0
  295. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/ESAudioRecordModule.java +231 -0
  296. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/assist/QueueProcessingType.java +8 -0
  297. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/assist/deque/BlockingDeque.java +617 -0
  298. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/assist/deque/Deque.java +550 -0
  299. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/assist/deque/LIFOLinkedBlockingDeque.java +42 -0
  300. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/assist/deque/LinkedBlockingDeque.java +1190 -0
  301. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/AudioRecordConfiguration.java +168 -0
  302. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/AudioRecorderListener.java +11 -0
  303. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/AudioRecorderStatus.java +49 -0
  304. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/AudioRecorderStatusEnum.java +14 -0
  305. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/AudioRecorderType.java +35 -0
  306. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/BaseAudioRecorderManager.java +90 -0
  307. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/DefaultConfigurationFactory.java +80 -0
  308. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/IAudioRecorder.java +23 -0
  309. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/naming/FileNameGenerator.java +9 -0
  310. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/naming/HashCodeFileNameGenerator.java +11 -0
  311. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/naming/Md5FileNameGenerator.java +32 -0
  312. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/core/naming/NoOpFileNameGenerator.java +14 -0
  313. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/pcm/PCMFormat.java +32 -0
  314. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/utils/Preconditions.java +442 -0
  315. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/utils/StorageUtils.java +162 -0
  316. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/wav/AudioRecordListener.java +11 -0
  317. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/wav/AudioRecordStreamListener.java +5 -0
  318. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/wav/AudioRecorder.java +360 -0
  319. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/wav/FileUtil.java +122 -0
  320. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/wav/PCMToWAVTask.java +63 -0
  321. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/wav/PcmToWav.java +193 -0
  322. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/wav/RecordTask.java +103 -0
  323. package/rules/.source/sdk/support/audio-record/src/main/java/com/quicktvui/support/record/wav/WaveHeader.java +66 -0
  324. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/AndroidMP3Encoder.cpp +57 -0
  325. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/AndroidMP3Encoder.h +20 -0
  326. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/CMakeLists.txt +18 -0
  327. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lame-3.100.tar.gz +0 -0
  328. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/VbrTag.c +1050 -0
  329. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/VbrTag.h +82 -0
  330. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/bitstream.c +1073 -0
  331. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/bitstream.h +44 -0
  332. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/encoder.c +555 -0
  333. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/encoder.h +153 -0
  334. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/fft.c +331 -0
  335. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/fft.h +35 -0
  336. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/gain_analysis.c +468 -0
  337. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/gain_analysis.h +113 -0
  338. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/id3tag.c +1839 -0
  339. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/id3tag.h +65 -0
  340. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/l3side.h +95 -0
  341. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/lame-analysis.h +95 -0
  342. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/lame.c +2602 -0
  343. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/lame.h +1400 -0
  344. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/lame_global_flags.h +186 -0
  345. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/lameerror.h +26 -0
  346. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/machine.h +196 -0
  347. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/mpglib_interface.c +477 -0
  348. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/newmdct.c +1073 -0
  349. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/newmdct.h +27 -0
  350. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/presets.c +390 -0
  351. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/psymodel.c +2111 -0
  352. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/psymodel.h +64 -0
  353. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/quantize.c +1974 -0
  354. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/quantize.h +38 -0
  355. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/quantize_pvt.c +1047 -0
  356. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/quantize_pvt.h +127 -0
  357. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/reservoir.c +289 -0
  358. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/reservoir.h +34 -0
  359. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/set_get.c +2181 -0
  360. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/set_get.h +119 -0
  361. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/tables.c +558 -0
  362. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/tables.h +95 -0
  363. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/takehiro.c +1322 -0
  364. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/util.c +968 -0
  365. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/util.h +635 -0
  366. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/vbrquantize.c +1525 -0
  367. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/vbrquantize.h +28 -0
  368. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/version.c +245 -0
  369. package/rules/.source/sdk/support/audio-record/src/main/java/cpp/lamemp3/version.h +68 -0
  370. package/rules/.source/sdk/support/brightness/src/main/java/com/quicktvui/support/brightness/ESBrightnessModule.java +133 -0
  371. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/Action.java +18 -0
  372. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasActionHandler.java +285 -0
  373. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasContext.java +184 -0
  374. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasImageLoadRenderAction.java +53 -0
  375. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasManager.java +468 -0
  376. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasNode.java +28 -0
  377. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasRenderAction.java +39 -0
  378. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasRenderActionProcessor.java +62 -0
  379. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasSyncRenderAction.java +23 -0
  380. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasView.java +19 -0
  381. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasViewContainer.java +49 -0
  382. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/CanvasWaitChannel.java +59 -0
  383. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/Constants.java +9 -0
  384. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/ESCanvasController.java +370 -0
  385. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/annotation/CanvasField.java +16 -0
  386. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/annotation/CanvasMethod.java +16 -0
  387. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/annotation/Extension.java +59 -0
  388. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/bridge/ActivityStateListener.java +21 -0
  389. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/bridge/ApplicationContext.java +118 -0
  390. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/bridge/Callback.java +37 -0
  391. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/bridge/IPage.java +13 -0
  392. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/bridge/RenderEventCallback.java +76 -0
  393. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/bridge/Response.java +191 -0
  394. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/bridge/SimpleActivityStateListener.java +32 -0
  395. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/CSSFont.java +246 -0
  396. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/CanvasContextRendering2D.java +1462 -0
  397. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/CanvasContextState.java +243 -0
  398. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/CanvasGradient.java +101 -0
  399. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/CanvasPath.java +196 -0
  400. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/CanvasView2D.java +186 -0
  401. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/Circle.java +65 -0
  402. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/LinearGradient.java +40 -0
  403. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/Parser.java +1564 -0
  404. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/canvas2d/RadialGradient.java +167 -0
  405. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/constants/Attributes.java +682 -0
  406. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/ConcurrentExecutor.java +59 -0
  407. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/DelayedExecutor.java +10 -0
  408. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/Executor.java +14 -0
  409. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/Executors.java +99 -0
  410. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/Future.java +17 -0
  411. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/FutureImpl.java +32 -0
  412. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/ScheduledExecutor.java +15 -0
  413. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/ScheduledExecutorImpl.java +49 -0
  414. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/executors/UiExecutor.java +102 -0
  415. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/image/CanvasBitmap.java +123 -0
  416. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/image/CanvasImage.java +109 -0
  417. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/image/CanvasImageCache.java +119 -0
  418. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/image/CanvasImageHelper.java +665 -0
  419. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/image/CanvasImageLoader.java +132 -0
  420. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/image/ImageData.java +12 -0
  421. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/render/DocAnimator.java +166 -0
  422. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/runtime/HapEngine.java +101 -0
  423. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/BitmapUtils.java +242 -0
  424. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/CardThemeUtils.java +79 -0
  425. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/ColorUtil.java +542 -0
  426. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/DigestUtils.java +27 -0
  427. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/DisplayUtil.java +157 -0
  428. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/FloatUtil.java +54 -0
  429. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/IntegerUtil.java +23 -0
  430. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/StringUtils.java +21 -0
  431. package/rules/.source/sdk/support/canvas/src/main/java/com/quicktvui/support/canvas/utils/ThreadUtils.java +47 -0
  432. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/BarChartView.java +170 -0
  433. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/ESBarChartViewComponent.java +162 -0
  434. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/ESLineChartViewComponent.java +209 -0
  435. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/LineChartView.java +160 -0
  436. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/BarChart.java +470 -0
  437. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/BaseBarChart.java +382 -0
  438. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/BaseLineChart.java +156 -0
  439. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/LinesChart.java +465 -0
  440. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/anim/AngleEvaluator.java +22 -0
  441. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/bean/BarBean.java +26 -0
  442. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/bean/DataPoint.java +49 -0
  443. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/bean/FocusInfo.java +35 -0
  444. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/utils/DensityUtil.java +60 -0
  445. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/utils/FontUtil.java +40 -0
  446. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/utils/LogUtil.java +85 -0
  447. package/rules/.source/sdk/support/chart/src/main/java/com/quicktvui/support/chart/chart/utils/NumberFormatUtil.java +60 -0
  448. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/AutoInit.java +1 -0
  449. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/animation/AnimationValueType.java +7 -0
  450. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/animation/AnimationView.java +1322 -0
  451. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/animation/AnimationViewComponent.java +1000 -0
  452. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/es/ESView.java +30 -0
  453. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/es/ESViewComponent.java +49 -0
  454. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/image/TransitionImageComponent.java +95 -0
  455. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/image/TransitionImageView.java +261 -0
  456. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/loading/LoadingDrawable.java +253 -0
  457. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/loading/LoadingView.java +13 -0
  458. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/loading/LoadingViewComponent.java +58 -0
  459. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/progress/ESProgressWheelComponent.java +422 -0
  460. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/progress/ProgressWheel.java +625 -0
  461. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/progressbar/ESProgressBarViewComponent.java +254 -0
  462. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/progressbar/TVProgressBarView.java +12 -0
  463. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/progressbar/TVProgressBarViewComponent.java +206 -0
  464. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/qr/QrCodeComponent.java +186 -0
  465. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/qr/QrCodeFactory.java +180 -0
  466. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/ESHorizontalSeekBarViewComponent.java +1424 -0
  467. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/ESVerticalSeekBarViewComponent.java +122 -0
  468. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/OnRangeChangedListener.java +9 -0
  469. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/OnRangeFocusListener.java +6 -0
  470. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/RangeSeekBar.java +1462 -0
  471. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/SavedState.java +49 -0
  472. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/SeekBar.java +833 -0
  473. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/SeekBarState.java +13 -0
  474. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/Utils.java +182 -0
  475. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/VerticalRangeSeekBar.java +267 -0
  476. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/rangeseekbar/VerticalSeekBar.java +139 -0
  477. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/seekbar/ESSeekBarViewComponent.java +374 -0
  478. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/seekbar/TVSeekBarView.java +49 -0
  479. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/seekbar/TVSeekBarViewComponent.java +229 -0
  480. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/surfaceview/ESSurfaceView.java +13 -0
  481. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/component/surfaceview/ESSurfaceViewComponent.java +31 -0
  482. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/device/DeviceIdGenerator.java +135 -0
  483. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/device/DeviceIdManager.java +61 -0
  484. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/device/DeviceTypeGenerator.java +19 -0
  485. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/device/DeviceTypeManager.java +63 -0
  486. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/device/ESRuntimeSPConstants.java +8 -0
  487. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/device/IDeviceGenerator.java +10 -0
  488. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/device/RuntimeDeviceModule.java +70 -0
  489. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/activity/AndroidActivityModule.java +46 -0
  490. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/audio/AndroidAudioModule.java +190 -0
  491. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/broadcast/ESBroadcastModule.java +369 -0
  492. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/develop/AndroidDevelopManager.java +62 -0
  493. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/develop/AndroidDevelopModule.java +103 -0
  494. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/develop/Develop.java +85 -0
  495. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/device/AndroidDevice.java +410 -0
  496. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/device/AndroidDeviceManager.java +166 -0
  497. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/device/AndroidDeviceModule.java +313 -0
  498. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/device/DeviceModule.java +75 -0
  499. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/es/ESModule.java +289 -0
  500. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/file/AndroidFileModule.java +622 -0
  501. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/log/ESLogModule.java +59 -0
  502. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/mmap/AndroidMMapModule.java +219 -0
  503. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/mmap/MMapManager.java +350 -0
  504. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/mmap/MMapMode.java +8 -0
  505. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/mmap/MMapSharedData.java +44 -0
  506. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/mmap/MMapSharedDataType.java +15 -0
  507. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/network/AndroidNetworkManager.java +168 -0
  508. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/network/AndroidNetworkModule.java +162 -0
  509. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/network/AndroidNetworkReceiver.java +52 -0
  510. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/permission/AndroidPermissionModule.java +224 -0
  511. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/power/AndroidPowerManager.java +48 -0
  512. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/power/AndroidPowerModule.java +61 -0
  513. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/sp/AndroidSharedPreferencesManager.java +119 -0
  514. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/sp/AndroidSharedPreferencesModule.java +197 -0
  515. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/sqlite/EsSqliteModule.java +380 -0
  516. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/storage/AndroidStorageManager.java +68 -0
  517. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/storage/AndroidStorageModule.java +252 -0
  518. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/toast/ESToastModule.java +62 -0
  519. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/toast/ToastModule.java +385 -0
  520. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/usb/AndroidUsbDeviceManager.java +233 -0
  521. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/usb/AndroidUsbDeviceModule.java +230 -0
  522. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/module/usb/AndroidUsbDeviceReceiver.java +31 -0
  523. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/nativeevent/BaseChangeObserver.java +54 -0
  524. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/nativeevent/BatteryChangeObserver.java +177 -0
  525. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/nativeevent/BluetoothChangeObserver.java +83 -0
  526. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/nativeevent/NativeEventReceiverManager.java +107 -0
  527. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/nativeevent/NetworkChangeObserver.java +134 -0
  528. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/nativeevent/TimeChangeObserver.java +46 -0
  529. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/nativeevent/UsbChangeObserver.java +168 -0
  530. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/utils/BundleMapper.java +215 -0
  531. package/rules/.source/sdk/support/core/src/main/java/com/quicktvui/support/core/utils/GradientDrawableUtils.java +105 -0
  532. package/rules/.source/sdk/support/data-group/src/main/java/com/quicktvui/support/data/group/ESGroupData.java +49 -0
  533. package/rules/.source/sdk/support/data-group/src/main/java/com/quicktvui/support/data/group/ESGroupDataModule.java +291 -0
  534. package/rules/.source/sdk/support/data-group/src/main/java/com/quicktvui/support/data/group/ESGroupDataType.java +15 -0
  535. package/rules/.source/sdk/support/data-group/src/main/java/com/quicktvui/support/data/group/ESGroupMode.java +8 -0
  536. package/rules/.source/sdk/support/data-group/src/main/java/com/quicktvui/support/data/group/ESSharedDataManager.java +526 -0
  537. package/rules/.source/sdk/support/data-shared/src/main/java/com/quicktvui/support/data/shared/ESSharedData.java +44 -0
  538. package/rules/.source/sdk/support/data-shared/src/main/java/com/quicktvui/support/data/shared/ESSharedDataManager.java +388 -0
  539. package/rules/.source/sdk/support/data-shared/src/main/java/com/quicktvui/support/data/shared/ESSharedDataModule.java +218 -0
  540. package/rules/.source/sdk/support/data-shared/src/main/java/com/quicktvui/support/data/shared/ESSharedDataType.java +15 -0
  541. package/rules/.source/sdk/support/data-shared/src/main/java/com/quicktvui/support/data/shared/ESSharedMode.java +8 -0
  542. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/ESDeviceInfoModule.java +988 -0
  543. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/SysInfo.java +24128 -0
  544. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/SysInfoSingleTon.java +98 -0
  545. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/beans/ApplicationBean.java +93 -0
  546. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/beans/CpuBean.java +41 -0
  547. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/beans/InputBean.java +69 -0
  548. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/beans/PartitionsBean.java +124 -0
  549. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/beans/SimBean.java +91 -0
  550. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/beans/StorageBean.java +180 -0
  551. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/beans/USBBean.java +48 -0
  552. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/beans/XposedHookBean.java +98 -0
  553. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/AppInfo.java +50 -0
  554. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/AppListInfo.java +42 -0
  555. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/BatteryInfo.java +26 -0
  556. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/BluetoothInfo.java +50 -0
  557. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/BuildInfo.java +35 -0
  558. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/CameraInfo.java +1327 -0
  559. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/DebugInfo.java +25 -0
  560. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/DeviceInfo.java +26 -0
  561. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/EmulatorInfo.java +57 -0
  562. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/HardwareInfo.java +32 -0
  563. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/HookInfo.java +26 -0
  564. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/InputInfo.java +170 -0
  565. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/MapsInfo.java +49 -0
  566. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/MediaCodecInfo.java +29 -0
  567. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/NetWorkInfo.java +150 -0
  568. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/OthersInfo.java +75 -0
  569. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/PartitionsInfo.java +93 -0
  570. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/RootInfo.java +25 -0
  571. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/SOCInfo.java +101 -0
  572. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/StoreInfo.java +31 -0
  573. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/SystemInfo.java +57 -0
  574. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/ThermalInfo.java +54 -0
  575. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/USBInfo.java +146 -0
  576. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/VirtualAppInfo.java +145 -0
  577. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/model/info/WifiInfo.java +52 -0
  578. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/ApplicationUtils.java +18 -0
  579. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/BatteryUtils.java +190 -0
  580. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/CommandUtils.java +173 -0
  581. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/Constants.java +12 -0
  582. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/DebugUtils.java +117 -0
  583. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/DecimalUtils.java +94 -0
  584. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/DensityUtils.java +427 -0
  585. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/DeviceUtils.java +315 -0
  586. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/EmulatorUtils.java +422 -0
  587. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/FileUtils.java +69 -0
  588. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/FormatTools.java +29 -0
  589. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/GatewayUtils.java +380 -0
  590. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/HashUtils.java +61 -0
  591. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/HexUtils.java +43 -0
  592. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/HookUtils.java +147 -0
  593. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/LogUtils.java +274 -0
  594. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/MemoryUtils.java +93 -0
  595. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/NetWorkUtils.java +579 -0
  596. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/OaidUtils.java +48 -0
  597. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/RootUtils.java +219 -0
  598. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/SdUtils.java +298 -0
  599. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/SocUtils.java +287 -0
  600. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/SystemConfigUtils.java +53 -0
  601. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/ThreadPoolUtils.java +89 -0
  602. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/TimeUtils.java +20 -0
  603. package/rules/.source/sdk/support/device-info/src/main/java/com/quicktvui/support/device/info/utils/XposedHookUtils.java +138 -0
  604. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DefaultConfigurationFactory.java +56 -0
  605. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/Download.java +111 -0
  606. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadConfiguration.java +74 -0
  607. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadError.java +9 -0
  608. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadListener.java +7 -0
  609. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadManager.java +201 -0
  610. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadMessage.java +34 -0
  611. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadParams.java +24 -0
  612. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadProgress.java +34 -0
  613. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadState.java +15 -0
  614. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadStatus.java +46 -0
  615. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/DownloadTask.java +370 -0
  616. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/ESDownloadModule.java +376 -0
  617. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/FileDigest.java +47 -0
  618. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/HttpRequest.java +3201 -0
  619. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/IDownloadTask.java +16 -0
  620. package/rules/.source/sdk/support/download/src/main/java/com/quicktvui/support/download/StorageUtils.java +162 -0
  621. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/giflibrary/GifDecoder.java +32 -0
  622. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/giflibrary/GifDrawableTranscoder.java +22 -0
  623. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/giflibrary/GifImageLoader.java +22 -0
  624. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/giflibrary/GifModule.java +28 -0
  625. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/giflibrary/GifSoftwareLayerSetter.java +45 -0
  626. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/rastermill/FrameSequence.java +148 -0
  627. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/rastermill/FrameSequenceDrawable.java +381 -0
  628. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/support/gif/ESGifViewComponent.java +49 -0
  629. package/rules/.source/sdk/support/gif-view/src/main/java/com/quicktvui/support/gif/GifView.java +24 -0
  630. package/rules/.source/sdk/support/install-manager/src/main/java/com/quicktvui/support/install/manager/ESInstallManagerModule.java +143 -0
  631. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/ESLog.java +1029 -0
  632. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/LogConfiguration.java +662 -0
  633. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/LogItem.java +72 -0
  634. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/LogLevel.java +168 -0
  635. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/LogUtils.java +173 -0
  636. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/Logger.java +1331 -0
  637. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/flattener/ClassicFlattener.java +36 -0
  638. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/flattener/DefaultFlattener.java +40 -0
  639. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/flattener/Flattener.java +37 -0
  640. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/flattener/Flattener2.java +37 -0
  641. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/flattener/PatternFlattener.java +372 -0
  642. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/FormatException.java +78 -0
  643. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/Formatter.java +34 -0
  644. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/border/BorderFormatter.java +36 -0
  645. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/border/DefaultBorderFormatter.java +99 -0
  646. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/json/DefaultJsonFormatter.java +55 -0
  647. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/json/JsonFormatter.java +25 -0
  648. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/object/BundleFormatter.java +40 -0
  649. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/object/IntentFormatter.java +40 -0
  650. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/object/ObjectFormatter.java +28 -0
  651. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/throwable/DefaultThrowableFormatter.java +31 -0
  652. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/throwable/ThrowableFormatter.java +25 -0
  653. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/xml/DefaultXmlFormatter.java +63 -0
  654. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/message/xml/XmlFormatter.java +25 -0
  655. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/stacktrace/DefaultStackTraceFormatter.java +50 -0
  656. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/stacktrace/StackTraceFormatter.java +25 -0
  657. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/thread/DefaultThreadFormatter.java +29 -0
  658. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/formatter/thread/ThreadFormatter.java +25 -0
  659. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/interceptor/AbstractFilterInterceptor.java +51 -0
  660. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/interceptor/BlacklistTagsFilterInterceptor.java +71 -0
  661. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/interceptor/Interceptor.java +46 -0
  662. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/interceptor/WhitelistTagsFilterInterceptor.java +71 -0
  663. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/internal/DefaultsFactory.java +157 -0
  664. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/internal/Platform.java +114 -0
  665. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/internal/SystemCompat.java +28 -0
  666. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/internal/printer/file/backup/BackupStrategyWrapper.java +50 -0
  667. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/internal/printer/file/backup/BackupUtil.java +77 -0
  668. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/internal/util/ObjectToStringUtil.java +238 -0
  669. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/internal/util/StackTraceUtil.java +120 -0
  670. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/module/ESLoggerModule.java +332 -0
  671. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/AndroidPrinter.java +145 -0
  672. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/ConsolePrinter.java +55 -0
  673. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/Printer.java +41 -0
  674. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/PrinterSet.java +42 -0
  675. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/RemotePrinter.java +32 -0
  676. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/SystemPrinter.java +24 -0
  677. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/FilePrinter.java +399 -0
  678. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/backup/AbstractBackupStrategy.java +33 -0
  679. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/backup/BackupStrategy.java +33 -0
  680. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/backup/BackupStrategy2.java +69 -0
  681. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/backup/FileSizeBackupStrategy.java +45 -0
  682. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/backup/FileSizeBackupStrategy2.java +52 -0
  683. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/backup/NeverBackupStrategy.java +32 -0
  684. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/clean/CleanStrategy.java +19 -0
  685. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/clean/FileLastModifiedCleanStrategy.java +29 -0
  686. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/clean/NeverCleanStrategy.java +16 -0
  687. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/naming/ChangelessFileNameGenerator.java +44 -0
  688. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/naming/DateFileNameGenerator.java +51 -0
  689. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/naming/FileNameGenerator.java +39 -0
  690. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/naming/LevelFileNameGenerator.java +38 -0
  691. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/writer/SimpleWriter.java +137 -0
  692. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/file/writer/Writer.java +72 -0
  693. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/flattener/DefaultLogFlattener.java +26 -0
  694. package/rules/.source/sdk/support/log/src/main/java/com/quicktvui/support/log/printer/flattener/LogFlattener.java +26 -0
  695. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/ESLongImageViewComponent.java +732 -0
  696. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/CompatDecoderFactory.java +49 -0
  697. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/DecoderFactory.java +23 -0
  698. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/ImageDecoder.java +31 -0
  699. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/ImageRegionDecoder.java +62 -0
  700. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/ImageSource.java +262 -0
  701. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/ImageViewState.java +42 -0
  702. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/SkiaImageDecoder.java +107 -0
  703. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/SkiaImageRegionDecoder.java +171 -0
  704. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/decoder/SkiaPooledImageRegionDecoder.java +476 -0
  705. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/LongImageEventUtils.java +34 -0
  706. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/LongImageLoader.java +180 -0
  707. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/luban/Checker.java +196 -0
  708. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/luban/CompressionPredicate.java +19 -0
  709. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/luban/Engine.java +90 -0
  710. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/luban/InputStreamAdapter.java +34 -0
  711. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/luban/InputStreamProvider.java +18 -0
  712. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/luban/Luban.java +388 -0
  713. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/luban/OnCompressListener.java +21 -0
  714. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/utils/luban/OnRenameListener.java +22 -0
  715. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/view/ESLongImageView.java +306 -0
  716. package/rules/.source/sdk/support/long-image/src/main/java/com/quicktvui/support/longimage/view/SubsamplingScaleImageView.java +3245 -0
  717. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/AsyncUpdates.java +54 -0
  718. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/Cancellable.java +6 -0
  719. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/FontAssetDelegate.java +40 -0
  720. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/ImageAssetDelegate.java +14 -0
  721. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/L.java +123 -0
  722. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/Lottie.java +26 -0
  723. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieAnimationView.java +1447 -0
  724. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieComposition.java +385 -0
  725. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieCompositionFactory.java +716 -0
  726. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieConfig.java +135 -0
  727. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieDrawable.java +1740 -0
  728. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieImageAsset.java +79 -0
  729. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieListener.java +8 -0
  730. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieLogger.java +17 -0
  731. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieOnCompositionLoadedListener.java +5 -0
  732. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieProperty.java +223 -0
  733. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieResult.java +55 -0
  734. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieTask.java +185 -0
  735. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/LottieTaskIdleListener.java +11 -0
  736. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/OnCompositionLoadedListener.java +15 -0
  737. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/PerformanceTracker.java +97 -0
  738. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/RenderMode.java +41 -0
  739. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/SimpleColorFilter.java +20 -0
  740. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/TextDelegate.java +116 -0
  741. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/AnimatorLister.java +35 -0
  742. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/LPaint.java +60 -0
  743. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/BaseStrokeContent.java +412 -0
  744. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/CompoundTrimPathContent.java +22 -0
  745. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/Content.java +9 -0
  746. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/ContentGroup.java +269 -0
  747. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/DrawingContent.java +11 -0
  748. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/EllipseContent.java +134 -0
  749. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/FillContent.java +194 -0
  750. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/GradientFillContent.java +316 -0
  751. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/GradientStrokeContent.java +181 -0
  752. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/GreedyContent.java +19 -0
  753. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/KeyPathElementContent.java +6 -0
  754. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/MergePathsContent.java +123 -0
  755. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/ModifierContent.java +4 -0
  756. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/PathContent.java +7 -0
  757. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/PolystarContent.java +332 -0
  758. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/RectangleContent.java +180 -0
  759. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/RepeaterContent.java +155 -0
  760. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/RoundedCornersContent.java +225 -0
  761. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/ShapeContent.java +98 -0
  762. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/ShapeModifierContent.java +7 -0
  763. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/StrokeContent.java +77 -0
  764. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/TrimPathContent.java +75 -0
  765. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/content/package-info.java +6 -0
  766. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/BaseKeyframeAnimation.java +356 -0
  767. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/ColorKeyframeAnimation.java +46 -0
  768. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/DropShadowKeyframeAnimation.java +100 -0
  769. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/FloatKeyframeAnimation.java +45 -0
  770. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/GradientColorKeyframeAnimation.java +22 -0
  771. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/IntegerKeyframeAnimation.java +46 -0
  772. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/KeyframeAnimation.java +11 -0
  773. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/MaskKeyframeAnimation.java +40 -0
  774. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/PathKeyframe.java +40 -0
  775. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/PathKeyframeAnimation.java +46 -0
  776. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/PointKeyframeAnimation.java +41 -0
  777. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/ScaleKeyframeAnimation.java +40 -0
  778. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/ShapeKeyframeAnimation.java +42 -0
  779. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/SplitDimensionPathKeyframeAnimation.java +105 -0
  780. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/TextKeyframeAnimation.java +47 -0
  781. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/TransformKeyframeAnimation.java +336 -0
  782. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/ValueCallbackKeyframeAnimation.java +49 -0
  783. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/keyframe/package-info.java +6 -0
  784. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/animation/package-info.java +6 -0
  785. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/manager/FontAssetManager.java +129 -0
  786. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/manager/ImageAssetManager.java +151 -0
  787. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/manager/package-info.java +6 -0
  788. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/CubicCurveData.java +91 -0
  789. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/DocumentData.java +76 -0
  790. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/Font.java +52 -0
  791. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/FontCharacter.java +49 -0
  792. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/KeyPath.java +243 -0
  793. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/KeyPathElement.java +41 -0
  794. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/LottieCompositionCache.java +50 -0
  795. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/Marker.java +37 -0
  796. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/MutablePair.java +57 -0
  797. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableColorValue.java +18 -0
  798. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableFloatValue.java +19 -0
  799. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableGradientColorValue.java +55 -0
  800. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableIntegerValue.java +18 -0
  801. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatablePathValue.java +36 -0
  802. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatablePointValue.java +20 -0
  803. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableScaleValue.java +24 -0
  804. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableShapeValue.java +21 -0
  805. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableSplitDimensionPathValue.java +37 -0
  806. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableTextFrame.java +18 -0
  807. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableTextProperties.java +20 -0
  808. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableTransform.java +111 -0
  809. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/AnimatableValue.java +15 -0
  810. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/BaseAnimatableValue.java +39 -0
  811. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/animatable/package-info.java +6 -0
  812. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/BlurEffect.java +16 -0
  813. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/CircleShape.java +52 -0
  814. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/ContentModel.java +14 -0
  815. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/GradientColor.java +70 -0
  816. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/GradientFill.java +84 -0
  817. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/GradientStroke.java +110 -0
  818. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/GradientType.java +6 -0
  819. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/Mask.java +42 -0
  820. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/MergePaths.java +74 -0
  821. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/PolystarShape.java +111 -0
  822. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/RectangleShape.java +58 -0
  823. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/Repeater.java +52 -0
  824. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/RoundedCorners.java +32 -0
  825. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/ShapeData.java +110 -0
  826. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/ShapeFill.java +63 -0
  827. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/ShapeGroup.java +42 -0
  828. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/ShapePath.java +45 -0
  829. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/ShapeStroke.java +125 -0
  830. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/ShapeTrimPath.java +76 -0
  831. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/content/package-info.java +6 -0
  832. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/BaseLayer.java +693 -0
  833. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/CompositionLayer.java +236 -0
  834. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/ImageLayer.java +112 -0
  835. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/Layer.java +227 -0
  836. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/NullLayer.java +22 -0
  837. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/ShapeLayer.java +66 -0
  838. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/SolidLayer.java +93 -0
  839. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/TextLayer.java +619 -0
  840. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/model/layer/package-info.java +6 -0
  841. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/network/DefaultLottieFetchResult.java +73 -0
  842. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/network/DefaultLottieNetworkFetcher.java +21 -0
  843. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/network/FileExtension.java +27 -0
  844. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/network/LottieFetchResult.java +36 -0
  845. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/network/LottieNetworkCacheProvider.java +21 -0
  846. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/network/LottieNetworkFetcher.java +20 -0
  847. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/network/NetworkCache.java +200 -0
  848. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/network/NetworkFetcher.java +152 -0
  849. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/AnimatablePathValueParser.java +96 -0
  850. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/AnimatableTextPropertiesParser.java +78 -0
  851. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/AnimatableTransformParser.java +167 -0
  852. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/AnimatableValueParser.java +88 -0
  853. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/BlurEffectParser.java +69 -0
  854. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/CircleShapeParser.java +60 -0
  855. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ColorParser.java +47 -0
  856. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ContentModelParser.java +109 -0
  857. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/DocumentDataParser.java +110 -0
  858. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/DropShadowEffect.java +42 -0
  859. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/DropShadowEffectParser.java +88 -0
  860. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/FloatParser.java +17 -0
  861. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/FontCharacterParser.java +81 -0
  862. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/FontParser.java +49 -0
  863. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/GradientColorParser.java +267 -0
  864. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/GradientFillParser.java +100 -0
  865. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/GradientStrokeParser.java +163 -0
  866. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/IntegerParser.java +16 -0
  867. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/JsonUtils.java +121 -0
  868. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/KeyframeParser.java +373 -0
  869. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/KeyframesParser.java +84 -0
  870. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/LayerParser.java +292 -0
  871. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/LottieCompositionMoshiParser.java +270 -0
  872. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/MaskParser.java +68 -0
  873. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/MergePathsParser.java +42 -0
  874. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/PathKeyframeParser.java +27 -0
  875. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/PathParser.java +18 -0
  876. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/PointFParser.java +35 -0
  877. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/PolystarShapeParser.java +91 -0
  878. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/RectangleShapeParser.java +59 -0
  879. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/RepeaterParser.java +57 -0
  880. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/RoundedCornersParser.java +47 -0
  881. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ScaleXYParser.java +31 -0
  882. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ShapeDataParser.java +103 -0
  883. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ShapeFillParser.java +69 -0
  884. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ShapeGroupParser.java +55 -0
  885. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ShapePathParser.java +52 -0
  886. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ShapeStrokeParser.java +130 -0
  887. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ShapeTrimPathParser.java +61 -0
  888. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/ValueParser.java +10 -0
  889. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/moshi/JsonDataException.java +39 -0
  890. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/moshi/JsonEncodingException.java +30 -0
  891. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/moshi/JsonReader.java +493 -0
  892. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/moshi/JsonScope.java +99 -0
  893. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/moshi/JsonUtf8Reader.java +1046 -0
  894. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/moshi/LinkedHashTreeMap.java +868 -0
  895. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/moshi/package-info.java +6 -0
  896. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/parser/package-info.java +6 -0
  897. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/BaseLottieAnimator.java +117 -0
  898. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/GammaEvaluator.java +64 -0
  899. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/LogcatLogger.java +52 -0
  900. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/Logger.java +36 -0
  901. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/LottieThreadFactory.java +27 -0
  902. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/LottieTrace.java +42 -0
  903. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/LottieValueAnimator.java +330 -0
  904. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/MeanCalculator.java +26 -0
  905. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/MiscUtils.java +113 -0
  906. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/Utils.java +321 -0
  907. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/utils/package-info.java +6 -0
  908. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/Keyframe.java +199 -0
  909. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieFrameInfo.java +65 -0
  910. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieInterpolatedFloatValue.java +22 -0
  911. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieInterpolatedIntegerValue.java +22 -0
  912. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieInterpolatedPointValue.java +27 -0
  913. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieInterpolatedValue.java +28 -0
  914. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieRelativeFloatValueCallback.java +39 -0
  915. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieRelativeIntegerValueCallback.java +32 -0
  916. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieRelativePointValueCallback.java +52 -0
  917. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/LottieValueCallback.java +90 -0
  918. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/ScaleXY.java +36 -0
  919. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottie/value/SimpleLottieValueCallback.java +10 -0
  920. package/rules/.source/sdk/support/lottie-view/src/main/java/quicktvui/support/lottieview/ESLottieViewComponent.java +373 -0
  921. package/rules/.source/sdk/support/network-speed/src/main/java/com/quicktvui/support/network/speed/ESNetworkSpeedModule.java +134 -0
  922. package/rules/.source/sdk/support/network-speed/src/main/java/com/quicktvui/support/network/speed/util/FormatTools.java +29 -0
  923. package/rules/.source/sdk/support/player-async/src/main/java/com/quicktvui/support/asyncplayer/ESAsyncPlayerModule.java +96 -0
  924. package/rules/.source/sdk/support/player-audio-android/src/main/java/com/quicktvui/support/player/audio/android/ESAndroidAudioPlayer.java +484 -0
  925. package/rules/.source/sdk/support/player-audio-android/src/main/java/com/quicktvui/support/player/audio/android/ESAndroidAudioPlayerModule.java +346 -0
  926. package/rules/.source/sdk/support/player-audio-android/src/main/java/com/quicktvui/support/player/audio/android/ESAndroidAudioPlayerServiceModule.java +638 -0
  927. package/rules/.source/sdk/support/player-audio-android/src/main/java/com/quicktvui/support/player/audio/android/ESAudioPlayerService.java +470 -0
  928. package/rules/.source/sdk/support/player-audio-ijk/src/main/java/com/quicktvui/support/player/audio/bean/PlayInfoBean.java +48 -0
  929. package/rules/.source/sdk/support/player-audio-ijk/src/main/java/com/quicktvui/support/player/audio/ijk/ESAudioPlayerService.java +528 -0
  930. package/rules/.source/sdk/support/player-audio-ijk/src/main/java/com/quicktvui/support/player/audio/ijk/ESIJKAudioPlayer.java +827 -0
  931. package/rules/.source/sdk/support/player-audio-ijk/src/main/java/com/quicktvui/support/player/audio/ijk/ESIJKAudioPlayerModule.java +438 -0
  932. package/rules/.source/sdk/support/player-audio-ijk/src/main/java/com/quicktvui/support/player/audio/ijk/ESIJKAudioPlayerModule2.java +498 -0
  933. package/rules/.source/sdk/support/player-audio-ijk/src/main/java/com/quicktvui/support/player/audio/ijk/ESIJKAudioPlayerServiceModule.java +655 -0
  934. package/rules/.source/sdk/support/player-audio-ijk/src/main/java/com/quicktvui/support/player/audio/utils/Settings.java +28 -0
  935. package/rules/.source/sdk/support/player-audio-soundpool/src/main/java/com/quicktvui/support/player/audio/soundpool/ESSoundPoolAudioPlayerModule.java +191 -0
  936. package/rules/.source/sdk/support/player-audio-soundpool/src/main/java/com/quicktvui/support/player/audio/soundpool/Sound.java +52 -0
  937. package/rules/.source/sdk/support/player-audio-soundpool/src/main/java/com/quicktvui/support/player/audio/soundpool/SoundCache.java +125 -0
  938. package/rules/.source/sdk/support/player-audio-soundpool/src/main/java/com/quicktvui/support/player/audio/soundpool/SoundPoolManager.java +567 -0
  939. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/aspect/IJKAspectRatioMapper.java +78 -0
  940. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/component/ADPlayerComponent.java +46 -0
  941. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/component/IJKPlayerComponent.java +323 -0
  942. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/module/ESPlayerIJKModule.java +96 -0
  943. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/module/VideoModule.java +181 -0
  944. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/AssetDataSource.java +67 -0
  945. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/FileMediaDataSource.java +56 -0
  946. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/IRenderView.java +97 -0
  947. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/IjkLibManager.java +215 -0
  948. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/IjkMediaOption.java +64 -0
  949. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/IjkVideoPlayer.java +1487 -0
  950. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/IjkVideoView.java +1796 -0
  951. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/MeasureHelper.java +420 -0
  952. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/MediaPlayerCompat.java +66 -0
  953. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/RawDataSourceProvider.java +66 -0
  954. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/SurfaceRenderView.java +308 -0
  955. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/player/TextureRenderView.java +364 -0
  956. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/service/MediaPlayerService.java +67 -0
  957. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/setting/Settings.java +162 -0
  958. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/AudioChannelType.java +24 -0
  959. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/CommonUtils.java +53 -0
  960. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/DeviceUtil.java +98 -0
  961. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/DisplayAndDecodeTools.java +166 -0
  962. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/FFConcatUtils.java +102 -0
  963. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/FormatTools.java +32 -0
  964. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/MetadataUtils.java +150 -0
  965. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/PlayerThreadTools.java +97 -0
  966. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/StorageUtils.java +159 -0
  967. package/rules/.source/sdk/support/player-ijk/src/main/java/com/quicktvui/support/player/ijk/utils/TimedHelper.java +233 -0
  968. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/Constants.java +6 -0
  969. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/aspect/AspectRatio.java +46 -0
  970. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/aspect/AspectRatioManager.java +105 -0
  971. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/aspect/AspectRatioSettingMapper.java +44 -0
  972. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/base/ESBaseFrameLayout.java +82 -0
  973. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/base/IPlayerRootView.java +10 -0
  974. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/base/PlayerBaseView.java +750 -0
  975. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/callback/CallbackNotifier.java +277 -0
  976. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/component/PlayerBaseComponent.java +1150 -0
  977. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/decode/Decode.java +45 -0
  978. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/definition/Definition.java +48 -0
  979. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/log/PLog.java +497 -0
  980. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/log/PLogDefaultLoggingDelegate.java +149 -0
  981. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/log/PLoggingDelegate.java +161 -0
  982. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/log/logging.pro +5 -0
  983. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/log/package-info.java +11 -0
  984. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/manager/PlayerConfiguration.java +494 -0
  985. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/model/ADPositionType.java +32 -0
  986. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/model/IPlayerDimension.java +25 -0
  987. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/model/IVideoUrl.java +51 -0
  988. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/model/PlayerDimensionModel.java +166 -0
  989. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/model/VideoUrlModel.java +113 -0
  990. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/IPlayer.java +308 -0
  991. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/IPlayerCallback.java +127 -0
  992. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/PlayerConstant.java +30 -0
  993. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/PlayerError.java +85 -0
  994. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/PlayerInfo.java +70 -0
  995. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/PlayerStatus.java +56 -0
  996. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/PlayerStatusEnum.java +54 -0
  997. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/PlayerStatusParams.java +21 -0
  998. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/player/PlayerType.java +15 -0
  999. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/setting/PlayerSetting.java +146 -0
  1000. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/utils/Preconditions.java +442 -0
  1001. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/utils/ScreenUtils.java +121 -0
  1002. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/volume/IPlayerVolume.java +12 -0
  1003. package/rules/.source/sdk/support/player-manager/src/main/java/com/quicktvui/support/player/manager/volume/PlayerVolumeModel.java +69 -0
  1004. package/rules/.source/sdk/support/rippleview/src/main/java/com/quicktvui/support/rippleview/ESRippleViewComponent.java +40 -0
  1005. package/rules/.source/sdk/support/rippleview/src/main/java/com/quicktvui/support/rippleview/RippleView.java +208 -0
  1006. package/rules/.source/sdk/support/socket-io/src/main/java/com/quicktvui/support/socketio/IEsSocketIOModule.java +24 -0
  1007. package/rules/.source/sdk/support/socket-io/src/main/java/com/quicktvui/support/socketio/SocketIOClientImpl.java +165 -0
  1008. package/rules/.source/sdk/support/socket-io/src/main/java/com/quicktvui/support/socketio/SocketIoModule.java +161 -0
  1009. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/ESSubtitleModule.java +567 -0
  1010. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/FileUtils.java +1259 -0
  1011. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/IOClass.java +134 -0
  1012. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/ISubtitleControl.java +64 -0
  1013. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/SubtitleClickListener.java +16 -0
  1014. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/Caption.java +27 -0
  1015. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/FatalParsingException.java +25 -0
  1016. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/FormatASS.java +613 -0
  1017. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/FormatSCC.java +1063 -0
  1018. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/FormatSRT.java +209 -0
  1019. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/FormatSTL.java +654 -0
  1020. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/FormatTTML.java +539 -0
  1021. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/FormatVTT.java +227 -0
  1022. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/Region.java +5 -0
  1023. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/Style.java +161 -0
  1024. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/SubtitleResult.java +16 -0
  1025. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/SubtitleText.java +42 -0
  1026. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/Time.java +209 -0
  1027. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/TimedTextFileFormat.java +65 -0
  1028. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/subtitleFile/TimedTextObject.java +161 -0
  1029. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/ui/ESSubtitleView.java +152 -0
  1030. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/ui/ESSubtitleViewComponent.java +189 -0
  1031. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/ui/ESSubtitleViewController.java +172 -0
  1032. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/ui/StrokeTextView.java +116 -0
  1033. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/ui/SubtitleTextView.java +70 -0
  1034. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/ui/SubtitleView.java +299 -0
  1035. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/CharsetListener.java +51 -0
  1036. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/Constants.java +74 -0
  1037. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/EncodingDetectorInputStream.java +118 -0
  1038. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/EncodingDetectorOutputStream.java +82 -0
  1039. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/FileCharsetConverter.java +30 -0
  1040. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/ReaderFactory.java +144 -0
  1041. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/UnicodeBOMInputStream.java +297 -0
  1042. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/UniversalDetector.java +394 -0
  1043. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/Big5Prober.java +137 -0
  1044. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/CharsetProber.java +181 -0
  1045. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/EUCJPProber.java +145 -0
  1046. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/EUCKRProber.java +135 -0
  1047. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/EUCTWProber.java +136 -0
  1048. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/EscCharsetProber.java +136 -0
  1049. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/GB18030Prober.java +135 -0
  1050. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/HebrewProber.java +212 -0
  1051. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/Latin1Prober.java +201 -0
  1052. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/MBCSGroupProber.java +173 -0
  1053. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/SBCSGroupProber.java +185 -0
  1054. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/SJISProber.java +144 -0
  1055. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/SingleByteCharsetProber.java +187 -0
  1056. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/UTF8Prober.java +133 -0
  1057. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/contextanalysis/EUCJPContextAnalysis.java +97 -0
  1058. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/contextanalysis/JapaneseContextAnalysis.java +255 -0
  1059. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/contextanalysis/SJISContextAnalysis.java +93 -0
  1060. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/distributionanalysis/Big5DistributionAnalysis.java +962 -0
  1061. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/distributionanalysis/CharDistributionAnalysis.java +116 -0
  1062. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/distributionanalysis/EUCJPDistributionAnalysis.java +67 -0
  1063. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/distributionanalysis/EUCKRDistributionAnalysis.java +630 -0
  1064. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/distributionanalysis/EUCTWDistributionAnalysis.java +459 -0
  1065. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/distributionanalysis/GB2312DistributionAnalysis.java +508 -0
  1066. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/distributionanalysis/JISDistributionAnalysis.java +585 -0
  1067. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/distributionanalysis/SJISDistributionAnalysis.java +79 -0
  1068. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/BulgarianModel.java +193 -0
  1069. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/CyrillicModel.java +194 -0
  1070. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/GreekModel.java +194 -0
  1071. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/HebrewModel.java +217 -0
  1072. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Ibm855Model.java +73 -0
  1073. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Ibm866Model.java +73 -0
  1074. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Koi8rModel.java +73 -0
  1075. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Latin5BulgarianModel.java +72 -0
  1076. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Latin5Model.java +73 -0
  1077. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Latin7Model.java +73 -0
  1078. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/MacCyrillicModel.java +73 -0
  1079. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/SequenceModel.java +95 -0
  1080. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/ThaiModel.java +239 -0
  1081. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Win1251BulgarianModel.java +73 -0
  1082. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Win1251Model.java +72 -0
  1083. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/sequence/Win1253Model.java +72 -0
  1084. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/Big5SMModel.java +111 -0
  1085. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/CodingStateMachine.java +75 -0
  1086. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/EUCJPSMModel.java +115 -0
  1087. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/EUCKRSMModel.java +111 -0
  1088. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/EUCTWSMModel.java +115 -0
  1089. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/GB18030SMModel.java +114 -0
  1090. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/HZSMModel.java +113 -0
  1091. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/ISO2022CNSMModel.java +116 -0
  1092. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/ISO2022JPSMModel.java +118 -0
  1093. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/ISO2022KRSMModel.java +117 -0
  1094. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/PkgInt.java +117 -0
  1095. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/SJISSMModel.java +114 -0
  1096. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/SMModel.java +93 -0
  1097. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/UCS2BESMModel.java +120 -0
  1098. package/rules/.source/sdk/support/subtitle-converter/src/main/java/com/quicktvui/support/subtitle/converter/universalchardet/prober/statemachine/UTF8SMModel.java +141 -0
  1099. package/rules/.source/sdk/support/swiper-view/src/main/java/com/quicktvui/support/swiper/ESSwiperSlideViewComponent.java +46 -0
  1100. package/rules/.source/sdk/support/swiper-view/src/main/java/com/quicktvui/support/swiper/SwiperView.java +48 -0
  1101. package/rules/.source/sdk/support/ui/icon-view/src/main/java/quicktvui/support/ui/icon/ESAppIconView.java +42 -0
  1102. package/rules/.source/sdk/support/ui/icon-view/src/main/java/quicktvui/support/ui/icon/ESAppIconViewComponent.java +112 -0
  1103. package/rules/.source/sdk/support/ui/image/src/main/java/com/quicktvui/support/ui/image/canvas/ESCanvasParamsUtils.java +117 -0
  1104. package/rules/.source/sdk/support/ui/image/src/main/java/com/quicktvui/support/ui/image/canvas/ESPaint.java +60 -0
  1105. package/rules/.source/sdk/support/ui/image/src/main/java/com/quicktvui/support/ui/image/canvas/ESPaintAction.java +7 -0
  1106. package/rules/.source/sdk/support/ui/image/src/main/java/com/quicktvui/support/ui/image/canvas/ESPath.java +109 -0
  1107. package/rules/.source/sdk/support/ui/image/src/main/java/com/quicktvui/support/ui/image/canvas/ESPathAction.java +10 -0
  1108. package/rules/.source/sdk/support/ui/image/src/main/java/com/quicktvui/support/ui/image/canvas/PorterDuffUtils.java +49 -0
  1109. package/rules/.source/sdk/support/ui/image/src/main/java/com/quicktvui/support/ui/image/crop/ESCroppedImageView.java +285 -0
  1110. package/rules/.source/sdk/support/ui/image/src/main/java/com/quicktvui/support/ui/image/crop/ESCroppedImageViewComponent.java +102 -0
  1111. package/rules/.source/sdk/support/ui/playmarkview/src/main/java/com/quicktvui/support/ui/playmarkview/ESPlayMarkViewComponent.java +104 -0
  1112. package/rules/.source/sdk/support/ui/playmarkview/src/main/java/com/quicktvui/support/ui/playmarkview/PlayMarkView.java +319 -0
  1113. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/DensityUtils.java +57 -0
  1114. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/ScreenAdapt.java +33 -0
  1115. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/ScreenUtils.java +112 -0
  1116. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/ViewUtil.java +17 -0
  1117. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/HippyBaseFrameLayout.java +97 -0
  1118. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/HomeItemView.java +1564 -0
  1119. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/ItemFrame.java +188 -0
  1120. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/ItemFrameComponent.java +58 -0
  1121. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/ItemViewComponent.java +157 -0
  1122. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/RippleView.java +257 -0
  1123. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/RippleViewComponent.java +91 -0
  1124. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/TitleFocusComponent.java +42 -0
  1125. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/TitleNormalComponent.java +46 -0
  1126. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/TitleView.java +522 -0
  1127. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/item/TitleViewFocus.java +370 -0
  1128. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/AdvanceCenterScroller.java +132 -0
  1129. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/EasyListView.java +420 -0
  1130. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/EventSender.java +89 -0
  1131. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/FocusWatcher.java +66 -0
  1132. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/GroupItem.java +40 -0
  1133. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/GroupItemPresenter.kt +90 -0
  1134. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/ItemView.java +218 -0
  1135. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/LargeListComponent.java +115 -0
  1136. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/LargeListViewGroup.java +1383 -0
  1137. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/LazyDataItem.java +10 -0
  1138. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/LoadingItem.java +8 -0
  1139. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/LoadingPresenter.java +59 -0
  1140. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/MyTemplateHelper.kt +35 -0
  1141. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/NumberEpisodeItemPresenter.java +160 -0
  1142. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/PendingItemView.java +7 -0
  1143. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/StandItemViewPresenter.java +108 -0
  1144. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/Template.java +44 -0
  1145. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/TemplateBean.java +6 -0
  1146. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/TemplateHelper.kt +128 -0
  1147. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/TemplateItem.kt +83 -0
  1148. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/TemplateItemPresenterSelector.java +36 -0
  1149. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/TemplatePresenter.java +13 -0
  1150. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/TemplateUtil.java +339 -0
  1151. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/largelist/TextEpisodeItemHostView.java +128 -0
  1152. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/ESSelectSeriesController.java +156 -0
  1153. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/EventSender.java +89 -0
  1154. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/SelectSeriesViewGroup.java +1024 -0
  1155. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/bean/LazyDataItem.java +10 -0
  1156. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/bean/MyData.java +33 -0
  1157. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/bean/PageData.java +5 -0
  1158. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/bean/Param.java +192 -0
  1159. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/bean/TemplateItem.kt +31 -0
  1160. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/components/GroupListView.java +49 -0
  1161. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/components/LargeListView.java +402 -0
  1162. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/presenters/CustomItemViewPresenter.java +133 -0
  1163. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/presenters/GroupItemPresenter.kt +123 -0
  1164. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/utils/MyCustomHelper.java +468 -0
  1165. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/utils/MyTemplateHelper.kt +18 -0
  1166. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/utils/TemplateHelper.kt +88 -0
  1167. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/selectseries/utils/TemplateUtil.java +415 -0
  1168. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/swiftlist/SwiftListComponent.java +104 -0
  1169. package/rules/.source/sdk/support/ui/src/main/java/com/quicktvui/support/ui/swiftlist/SwiftListView.java +563 -0
  1170. package/rules/.source/sdk/support/upload/src/main/java/quicktvui/support/upload/ESUploadModule.java +307 -0
  1171. package/rules/.source/sdk/support/upload/src/main/java/quicktvui/support/upload/UploadManager.java +136 -0
  1172. package/rules/.source/sdk/support/websocket/src/main/java/quicktvui/support/websocket/IEsWebSocketModule.java +24 -0
  1173. package/rules/.source/sdk/support/websocket/src/main/java/quicktvui/support/websocket/WebSocketClient.java +63 -0
  1174. package/rules/.source/sdk/support/websocket/src/main/java/quicktvui/support/websocket/WebSocketImpl.java +55 -0
  1175. package/rules/.source/sdk/support/websocket/src/main/java/quicktvui/support/websocket/WebSocketModule.java +114 -0
  1176. package/rules/.source/sdk/support/webview/src/main/java/com/quicktvui/support/webview/ESWebView.java +235 -0
  1177. package/rules/.source/sdk/support/webview/src/main/java/com/quicktvui/support/webview/ESWebViewComponent.java +1181 -0
  1178. package/rules/.source/sdk/support/x5webview/src/main/java/com/quicktvui/support/x5webview/ESX5WebView.java +352 -0
  1179. package/rules/.source/sdk/support/x5webview/src/main/java/com/quicktvui/support/x5webview/ESX5WebViewComponent.java +1190 -0
  1180. package/rules/.windsurfrules +1 -0
  1181. package/rules/AGENTS.md +1 -0
  1182. package/rules/CLAUDE.md +1 -0
  1183. package/rules/GEMINI.md +1 -0
@@ -0,0 +1,2602 @@
1
+ /* -*- mode: C; mode: fold -*- */
2
+ /*
3
+ * LAME MP3 encoding engine
4
+ *
5
+ * Copyright (c) 1999-2000 Mark Taylor
6
+ * Copyright (c) 2000-2005 Takehiro Tominaga
7
+ * Copyright (c) 2000-2017 Robert Hegemann
8
+ * Copyright (c) 2000-2005 Gabriel Bouvigne
9
+ * Copyright (c) 2000-2004 Alexander Leidinger
10
+ *
11
+ * This library is free software; you can redistribute it and/or
12
+ * modify it under the terms of the GNU Library General Public
13
+ * License as published by the Free Software Foundation; either
14
+ * version 2 of the License, or (at your option) any later version.
15
+ *
16
+ * This library is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
+ * Library General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU Library General Public
22
+ * License along with this library; if not, write to the
23
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24
+ * Boston, MA 02111-1307, USA.
25
+ */
26
+
27
+ /* $Id: lame.c,v 1.377 2017/09/26 12:14:02 robert Exp $ */
28
+
29
+ #ifdef HAVE_CONFIG_H
30
+ # include <config.h>
31
+ #endif
32
+
33
+
34
+ #include "lame.h"
35
+ #include "machine.h"
36
+
37
+ #include "encoder.h"
38
+ #include "util.h"
39
+ #include "lame_global_flags.h"
40
+ #include "gain_analysis.h"
41
+ #include "bitstream.h"
42
+ #include "quantize_pvt.h"
43
+ #include "set_get.h"
44
+ #include "quantize.h"
45
+ #include "psymodel.h"
46
+ #include "version.h"
47
+ #include "VbrTag.h"
48
+ #include "tables.h"
49
+
50
+
51
+ #if defined(__FreeBSD__) && !defined(__alpha__)
52
+ #include <floatingpoint.h>
53
+ #endif
54
+ #ifdef __riscos__
55
+ #include "asmstuff.h"
56
+ #endif
57
+
58
+ #ifdef __sun__
59
+ /* woraround for SunOS 4.x, it has SEEK_* defined here */
60
+ #include <unistd.h>
61
+ #endif
62
+
63
+
64
+ #define LAME_DEFAULT_QUALITY 3
65
+
66
+
67
+ int
68
+ is_lame_global_flags_valid(const lame_global_flags *gfp) {
69
+ if (gfp == NULL)
70
+ return 0;
71
+ if (gfp->class_id != LAME_ID)
72
+ return 0;
73
+ return 1;
74
+ }
75
+
76
+
77
+ int
78
+ is_lame_internal_flags_valid(const lame_internal_flags *gfc) {
79
+ if (gfc == NULL)
80
+ return 0;
81
+ if (gfc->class_id != LAME_ID)
82
+ return 0;
83
+ if (gfc->lame_init_params_successful <= 0)
84
+ return 0;
85
+ return 1;
86
+ }
87
+
88
+
89
+ static FLOAT
90
+ filter_coef(FLOAT x) {
91
+ if (x > 1.0)
92
+ return 0.0;
93
+ if (x <= 0.0)
94
+ return 1.0;
95
+
96
+ return cos(PI / 2 * x);
97
+ }
98
+
99
+ static void
100
+ lame_init_params_ppflt(lame_internal_flags *gfc) {
101
+ SessionConfig_t *const cfg = &gfc->cfg;
102
+
103
+ /***************************************************************/
104
+ /* compute info needed for polyphase filter (filter type==0, default) */
105
+ /***************************************************************/
106
+
107
+ int band, maxband, minband;
108
+ FLOAT freq;
109
+ int lowpass_band = 32;
110
+ int highpass_band = -1;
111
+
112
+ if (cfg->lowpass1 > 0) {
113
+ minband = 999;
114
+ for (band = 0; band <= 31; band++) {
115
+ freq = band / 31.0;
116
+ /* this band and above will be zeroed: */
117
+ if (freq >= cfg->lowpass2) {
118
+ lowpass_band = Min(lowpass_band, band);
119
+ }
120
+ if (cfg->lowpass1 < freq && freq < cfg->lowpass2) {
121
+ minband = Min(minband, band);
122
+ }
123
+ }
124
+
125
+ /* compute the *actual* transition band implemented by
126
+ * the polyphase filter */
127
+ if (minband == 999) {
128
+ cfg->lowpass1 = (lowpass_band - .75) / 31.0;
129
+ } else {
130
+ cfg->lowpass1 = (minband - .75) / 31.0;
131
+ }
132
+ cfg->lowpass2 = lowpass_band / 31.0;
133
+ }
134
+
135
+ /* make sure highpass filter is within 90% of what the effective
136
+ * highpass frequency will be */
137
+ if (cfg->highpass2 > 0) {
138
+ if (cfg->highpass2 < .9 * (.75 / 31.0)) {
139
+ cfg->highpass1 = 0;
140
+ cfg->highpass2 = 0;
141
+ MSGF(gfc, "Warning: highpass filter disabled. " "highpass frequency too small\n");
142
+ }
143
+ }
144
+
145
+ if (cfg->highpass2 > 0) {
146
+ maxband = -1;
147
+ for (band = 0; band <= 31; band++) {
148
+ freq = band / 31.0;
149
+ /* this band and below will be zereod */
150
+ if (freq <= cfg->highpass1) {
151
+ highpass_band = Max(highpass_band, band);
152
+ }
153
+ if (cfg->highpass1 < freq && freq < cfg->highpass2) {
154
+ maxband = Max(maxband, band);
155
+ }
156
+ }
157
+ /* compute the *actual* transition band implemented by
158
+ * the polyphase filter */
159
+ cfg->highpass1 = highpass_band / 31.0;
160
+ if (maxband == -1) {
161
+ cfg->highpass2 = (highpass_band + .75) / 31.0;
162
+ } else {
163
+ cfg->highpass2 = (maxband + .75) / 31.0;
164
+ }
165
+ }
166
+
167
+ for (band = 0; band < 32; band++) {
168
+ FLOAT fc1, fc2;
169
+ freq = band / 31.0f;
170
+ if (cfg->highpass2 > cfg->highpass1) {
171
+ fc1 = filter_coef((cfg->highpass2 - freq) / (cfg->highpass2 - cfg->highpass1 + 1e-20));
172
+ } else {
173
+ fc1 = 1.0f;
174
+ }
175
+ if (cfg->lowpass2 > cfg->lowpass1) {
176
+ fc2 = filter_coef((freq - cfg->lowpass1) / (cfg->lowpass2 - cfg->lowpass1 + 1e-20));
177
+ } else {
178
+ fc2 = 1.0f;
179
+ }
180
+ gfc->sv_enc.amp_filter[band] = fc1 * fc2;
181
+ }
182
+ }
183
+
184
+
185
+ static void
186
+ optimum_bandwidth(double *const lowerlimit, double *const upperlimit, const unsigned bitrate) {
187
+ /*
188
+ * Input:
189
+ * bitrate total bitrate in kbps
190
+ *
191
+ * Output:
192
+ * lowerlimit: best lowpass frequency limit for input filter in Hz
193
+ * upperlimit: best highpass frequency limit for input filter in Hz
194
+ */
195
+ int table_index;
196
+
197
+ typedef struct {
198
+ int bitrate; /* only indicative value */
199
+ int lowpass;
200
+ } band_pass_t;
201
+
202
+ const band_pass_t freq_map[] = {
203
+ {8, 2000},
204
+ {16, 3700},
205
+ {24, 3900},
206
+ {32, 5500},
207
+ {40, 7000},
208
+ {48, 7500},
209
+ {56, 10000},
210
+ {64, 11000},
211
+ {80, 13500},
212
+ {96, 15100},
213
+ {112, 15600},
214
+ {128, 17000},
215
+ {160, 17500},
216
+ {192, 18600},
217
+ {224, 19400},
218
+ {256, 19700},
219
+ {320, 20500}
220
+ };
221
+
222
+
223
+ table_index = nearestBitrateFullIndex(bitrate);
224
+
225
+ (void) freq_map[table_index].bitrate;
226
+ *lowerlimit = freq_map[table_index].lowpass;
227
+
228
+
229
+ /*
230
+ * Now we try to choose a good high pass filtering frequency.
231
+ * This value is currently not used.
232
+ * For fu < 16 kHz: sqrt(fu*fl) = 560 Hz
233
+ * For fu = 18 kHz: no high pass filtering
234
+ * This gives:
235
+ *
236
+ * 2 kHz => 160 Hz
237
+ * 3 kHz => 107 Hz
238
+ * 4 kHz => 80 Hz
239
+ * 8 kHz => 40 Hz
240
+ * 16 kHz => 20 Hz
241
+ * 17 kHz => 10 Hz
242
+ * 18 kHz => 0 Hz
243
+ *
244
+ * These are ad hoc values and these can be optimized if a high pass is available.
245
+ */
246
+ /* if (f_low <= 16000)
247
+ f_high = 16000. * 20. / f_low;
248
+ else if (f_low <= 18000)
249
+ f_high = 180. - 0.01 * f_low;
250
+ else
251
+ f_high = 0.;*/
252
+
253
+ /*
254
+ * When we sometimes have a good highpass filter, we can add the highpass
255
+ * frequency to the lowpass frequency
256
+ */
257
+
258
+ /*if (upperlimit != NULL)
259
+ *upperlimit = f_high;*/
260
+ (void) upperlimit;
261
+ }
262
+
263
+
264
+ static int
265
+ optimum_samplefreq(int lowpassfreq, int input_samplefreq) {
266
+ /*
267
+ * Rules:
268
+ * - if possible, sfb21 should NOT be used
269
+ *
270
+ */
271
+ int suggested_samplefreq = 44100;
272
+
273
+ if (input_samplefreq >= 48000)
274
+ suggested_samplefreq = 48000;
275
+ else if (input_samplefreq >= 44100)
276
+ suggested_samplefreq = 44100;
277
+ else if (input_samplefreq >= 32000)
278
+ suggested_samplefreq = 32000;
279
+ else if (input_samplefreq >= 24000)
280
+ suggested_samplefreq = 24000;
281
+ else if (input_samplefreq >= 22050)
282
+ suggested_samplefreq = 22050;
283
+ else if (input_samplefreq >= 16000)
284
+ suggested_samplefreq = 16000;
285
+ else if (input_samplefreq >= 12000)
286
+ suggested_samplefreq = 12000;
287
+ else if (input_samplefreq >= 11025)
288
+ suggested_samplefreq = 11025;
289
+ else if (input_samplefreq >= 8000)
290
+ suggested_samplefreq = 8000;
291
+
292
+ if (lowpassfreq == -1)
293
+ return suggested_samplefreq;
294
+
295
+ if (lowpassfreq <= 15960)
296
+ suggested_samplefreq = 44100;
297
+ if (lowpassfreq <= 15250)
298
+ suggested_samplefreq = 32000;
299
+ if (lowpassfreq <= 11220)
300
+ suggested_samplefreq = 24000;
301
+ if (lowpassfreq <= 9970)
302
+ suggested_samplefreq = 22050;
303
+ if (lowpassfreq <= 7230)
304
+ suggested_samplefreq = 16000;
305
+ if (lowpassfreq <= 5420)
306
+ suggested_samplefreq = 12000;
307
+ if (lowpassfreq <= 4510)
308
+ suggested_samplefreq = 11025;
309
+ if (lowpassfreq <= 3970)
310
+ suggested_samplefreq = 8000;
311
+
312
+ if (input_samplefreq < suggested_samplefreq) {
313
+ /* choose a valid MPEG sample frequency above the input sample frequency
314
+ to avoid SFB21/12 bitrate bloat
315
+ rh 061115
316
+ */
317
+ if (input_samplefreq > 44100) {
318
+ return 48000;
319
+ }
320
+ if (input_samplefreq > 32000) {
321
+ return 44100;
322
+ }
323
+ if (input_samplefreq > 24000) {
324
+ return 32000;
325
+ }
326
+ if (input_samplefreq > 22050) {
327
+ return 24000;
328
+ }
329
+ if (input_samplefreq > 16000) {
330
+ return 22050;
331
+ }
332
+ if (input_samplefreq > 12000) {
333
+ return 16000;
334
+ }
335
+ if (input_samplefreq > 11025) {
336
+ return 12000;
337
+ }
338
+ if (input_samplefreq > 8000) {
339
+ return 11025;
340
+ }
341
+ return 8000;
342
+ }
343
+ return suggested_samplefreq;
344
+ }
345
+
346
+
347
+ /* set internal feature flags. USER should not access these since
348
+ * some combinations will produce strange results */
349
+ static void
350
+ lame_init_qval(lame_global_flags *gfp) {
351
+ lame_internal_flags *const gfc = gfp->internal_flags;
352
+ SessionConfig_t *const cfg = &gfc->cfg;
353
+
354
+ switch (gfp->quality) {
355
+ default:
356
+ case 9: /* no psymodel, no noise shaping */
357
+ cfg->noise_shaping = 0;
358
+ cfg->noise_shaping_amp = 0;
359
+ cfg->noise_shaping_stop = 0;
360
+ cfg->use_best_huffman = 0;
361
+ cfg->full_outer_loop = 0;
362
+ break;
363
+
364
+ case 8:
365
+ gfp->quality = 7;
366
+ /*lint --fallthrough */
367
+ case 7: /* use psymodel (for short block and m/s switching), but no noise shapping */
368
+ cfg->noise_shaping = 0;
369
+ cfg->noise_shaping_amp = 0;
370
+ cfg->noise_shaping_stop = 0;
371
+ cfg->use_best_huffman = 0;
372
+ cfg->full_outer_loop = 0;
373
+ if (cfg->vbr == vbr_mt || cfg->vbr == vbr_mtrh) {
374
+ cfg->full_outer_loop = -1;
375
+ }
376
+ break;
377
+
378
+ case 6:
379
+ if (cfg->noise_shaping == 0)
380
+ cfg->noise_shaping = 1;
381
+ cfg->noise_shaping_amp = 0;
382
+ cfg->noise_shaping_stop = 0;
383
+ if (cfg->subblock_gain == -1)
384
+ cfg->subblock_gain = 1;
385
+ cfg->use_best_huffman = 0;
386
+ cfg->full_outer_loop = 0;
387
+ break;
388
+
389
+ case 5:
390
+ if (cfg->noise_shaping == 0)
391
+ cfg->noise_shaping = 1;
392
+ cfg->noise_shaping_amp = 0;
393
+ cfg->noise_shaping_stop = 0;
394
+ if (cfg->subblock_gain == -1)
395
+ cfg->subblock_gain = 1;
396
+ cfg->use_best_huffman = 0;
397
+ cfg->full_outer_loop = 0;
398
+ break;
399
+
400
+ case 4:
401
+ if (cfg->noise_shaping == 0)
402
+ cfg->noise_shaping = 1;
403
+ cfg->noise_shaping_amp = 0;
404
+ cfg->noise_shaping_stop = 0;
405
+ if (cfg->subblock_gain == -1)
406
+ cfg->subblock_gain = 1;
407
+ cfg->use_best_huffman = 1;
408
+ cfg->full_outer_loop = 0;
409
+ break;
410
+
411
+ case 3:
412
+ if (cfg->noise_shaping == 0)
413
+ cfg->noise_shaping = 1;
414
+ cfg->noise_shaping_amp = 1;
415
+ cfg->noise_shaping_stop = 1;
416
+ if (cfg->subblock_gain == -1)
417
+ cfg->subblock_gain = 1;
418
+ cfg->use_best_huffman = 1;
419
+ cfg->full_outer_loop = 0;
420
+ break;
421
+
422
+ case 2:
423
+ if (cfg->noise_shaping == 0)
424
+ cfg->noise_shaping = 1;
425
+ if (gfc->sv_qnt.substep_shaping == 0)
426
+ gfc->sv_qnt.substep_shaping = 2;
427
+ cfg->noise_shaping_amp = 1;
428
+ cfg->noise_shaping_stop = 1;
429
+ if (cfg->subblock_gain == -1)
430
+ cfg->subblock_gain = 1;
431
+ cfg->use_best_huffman = 1; /* inner loop */
432
+ cfg->full_outer_loop = 0;
433
+ break;
434
+
435
+ case 1:
436
+ if (cfg->noise_shaping == 0)
437
+ cfg->noise_shaping = 1;
438
+ if (gfc->sv_qnt.substep_shaping == 0)
439
+ gfc->sv_qnt.substep_shaping = 2;
440
+ cfg->noise_shaping_amp = 2;
441
+ cfg->noise_shaping_stop = 1;
442
+ if (cfg->subblock_gain == -1)
443
+ cfg->subblock_gain = 1;
444
+ cfg->use_best_huffman = 1;
445
+ cfg->full_outer_loop = 0;
446
+ break;
447
+
448
+ case 0:
449
+ if (cfg->noise_shaping == 0)
450
+ cfg->noise_shaping = 1;
451
+ if (gfc->sv_qnt.substep_shaping == 0)
452
+ gfc->sv_qnt.substep_shaping = 2;
453
+ cfg->noise_shaping_amp = 2;
454
+ cfg->noise_shaping_stop = 1;
455
+ if (cfg->subblock_gain == -1)
456
+ cfg->subblock_gain = 1;
457
+ cfg->use_best_huffman = 1; /*type 2 disabled because of it slowness,
458
+ in favor of full outer loop search */
459
+ cfg->full_outer_loop = 1;
460
+ break;
461
+ }
462
+
463
+ }
464
+
465
+
466
+ static double
467
+ linear_int(double a, double b, double m) {
468
+ return a + m * (b - a);
469
+ }
470
+
471
+
472
+ /********************************************************************
473
+ * initialize internal params based on data in gf
474
+ * (globalflags struct filled in by calling program)
475
+ *
476
+ * OUTLINE:
477
+ *
478
+ * We first have some complex code to determine bitrate,
479
+ * output samplerate and mode. It is complicated by the fact
480
+ * that we allow the user to set some or all of these parameters,
481
+ * and need to determine best possible values for the rest of them:
482
+ *
483
+ * 1. set some CPU related flags
484
+ * 2. check if we are mono->mono, stereo->mono or stereo->stereo
485
+ * 3. compute bitrate and output samplerate:
486
+ * user may have set compression ratio
487
+ * user may have set a bitrate
488
+ * user may have set a output samplerate
489
+ * 4. set some options which depend on output samplerate
490
+ * 5. compute the actual compression ratio
491
+ * 6. set mode based on compression ratio
492
+ *
493
+ * The remaining code is much simpler - it just sets options
494
+ * based on the mode & compression ratio:
495
+ *
496
+ * set allow_diff_short based on mode
497
+ * select lowpass filter based on compression ratio & mode
498
+ * set the bitrate index, and min/max bitrates for VBR modes
499
+ * disable VBR tag if it is not appropriate
500
+ * initialize the bitstream
501
+ * initialize scalefac_band data
502
+ * set sideinfo_len (based on channels, CRC, out_samplerate)
503
+ * write an id3v2 tag into the bitstream
504
+ * write VBR tag into the bitstream
505
+ * set mpeg1/2 flag
506
+ * estimate the number of frames (based on a lot of data)
507
+ *
508
+ * now we set more flags:
509
+ * nspsytune:
510
+ * see code
511
+ * VBR modes
512
+ * see code
513
+ * CBR/ABR
514
+ * see code
515
+ *
516
+ * Finally, we set the algorithm flags based on the gfp->quality value
517
+ * lame_init_qval(gfp);
518
+ *
519
+ ********************************************************************/
520
+ int
521
+ lame_init_params(lame_global_flags *gfp) {
522
+
523
+ int i;
524
+ int j;
525
+ lame_internal_flags *gfc;
526
+ SessionConfig_t *cfg;
527
+
528
+ if (!is_lame_global_flags_valid(gfp))
529
+ return -1;
530
+
531
+ gfc = gfp->internal_flags;
532
+ if (gfc == 0)
533
+ return -1;
534
+
535
+ if (is_lame_internal_flags_valid(gfc))
536
+ return -1; /* already initialized */
537
+
538
+ /* start updating lame internal flags */
539
+ gfc->class_id = LAME_ID;
540
+ gfc->lame_init_params_successful = 0; /* will be set to one, when we get through until the end */
541
+
542
+ if (gfp->samplerate_in < 1)
543
+ return -1; /* input sample rate makes no sense */
544
+ if (gfp->num_channels < 1 || 2 < gfp->num_channels)
545
+ return -1; /* number of input channels makes no sense */
546
+ if (gfp->samplerate_out != 0) {
547
+ int v = 0;
548
+ if (SmpFrqIndex(gfp->samplerate_out, &v) < 0)
549
+ return -1; /* output sample rate makes no sense */
550
+ }
551
+
552
+ cfg = &gfc->cfg;
553
+
554
+ cfg->enforce_min_bitrate = gfp->VBR_hard_min;
555
+ cfg->analysis = gfp->analysis;
556
+ if (cfg->analysis)
557
+ gfp->write_lame_tag = 0;
558
+
559
+ /* some file options not allowed if output is: not specified or stdout */
560
+ if (gfc->pinfo != NULL)
561
+ gfp->write_lame_tag = 0; /* disable Xing VBR tag */
562
+
563
+ /* report functions */
564
+ gfc->report_msg = gfp->report.msgf;
565
+ gfc->report_dbg = gfp->report.debugf;
566
+ gfc->report_err = gfp->report.errorf;
567
+
568
+ if (gfp->asm_optimizations.amd3dnow)
569
+ gfc->CPU_features.AMD_3DNow = has_3DNow();
570
+ else
571
+ gfc->CPU_features.AMD_3DNow = 0;
572
+
573
+ if (gfp->asm_optimizations.mmx)
574
+ gfc->CPU_features.MMX = has_MMX();
575
+ else
576
+ gfc->CPU_features.MMX = 0;
577
+
578
+ if (gfp->asm_optimizations.sse) {
579
+ gfc->CPU_features.SSE = has_SSE();
580
+ gfc->CPU_features.SSE2 = has_SSE2();
581
+ } else {
582
+ gfc->CPU_features.SSE = 0;
583
+ gfc->CPU_features.SSE2 = 0;
584
+ }
585
+
586
+
587
+ cfg->vbr = gfp->VBR;
588
+ cfg->error_protection = gfp->error_protection;
589
+ cfg->copyright = gfp->copyright;
590
+ cfg->original = gfp->original;
591
+ cfg->extension = gfp->extension;
592
+ cfg->emphasis = gfp->emphasis;
593
+
594
+ cfg->channels_in = gfp->num_channels;
595
+ if (cfg->channels_in == 1)
596
+ gfp->mode = MONO;
597
+ cfg->channels_out = (gfp->mode == MONO) ? 1 : 2;
598
+ if (gfp->mode != JOINT_STEREO)
599
+ gfp->force_ms = 0; /* forced mid/side stereo for j-stereo only */
600
+ cfg->force_ms = gfp->force_ms;
601
+
602
+ if (cfg->vbr == vbr_off && gfp->VBR_mean_bitrate_kbps != 128 && gfp->brate == 0)
603
+ gfp->brate = gfp->VBR_mean_bitrate_kbps;
604
+
605
+ switch (cfg->vbr) {
606
+ case vbr_off:
607
+ case vbr_mtrh:
608
+ case vbr_mt:
609
+ /* these modes can handle free format condition */
610
+ break;
611
+ default:
612
+ gfp->free_format = 0; /* mode can't be mixed with free format */
613
+ break;
614
+ }
615
+
616
+ cfg->free_format = gfp->free_format;
617
+
618
+ if (cfg->vbr == vbr_off && gfp->brate == 0) {
619
+ /* no bitrate or compression ratio specified, use 11.025 */
620
+ if (EQ(gfp->compression_ratio, 0))
621
+ gfp->compression_ratio = 11.025; /* rate to compress a CD down to exactly 128000 bps */
622
+ }
623
+
624
+ /* find bitrate if user specify a compression ratio */
625
+ if (cfg->vbr == vbr_off && gfp->compression_ratio > 0) {
626
+
627
+ if (gfp->samplerate_out == 0)
628
+ gfp->samplerate_out = map2MP3Frequency(
629
+ (int) (0.97 * gfp->samplerate_in)); /* round up with a margin of 3% */
630
+
631
+ /* choose a bitrate for the output samplerate which achieves
632
+ * specified compression ratio
633
+ */
634
+ gfp->brate = gfp->samplerate_out * 16 * cfg->channels_out / (1.e3 * gfp->compression_ratio);
635
+
636
+ /* we need the version for the bitrate table look up */
637
+ cfg->samplerate_index = SmpFrqIndex(gfp->samplerate_out, &cfg->version);
638
+ assert(cfg->samplerate_index >= 0);
639
+
640
+ if (!cfg->free_format) /* for non Free Format find the nearest allowed bitrate */
641
+ gfp->brate = FindNearestBitrate(gfp->brate, cfg->version, gfp->samplerate_out);
642
+ }
643
+ if (gfp->samplerate_out) {
644
+ if (gfp->samplerate_out < 16000) {
645
+ gfp->VBR_mean_bitrate_kbps = Max(gfp->VBR_mean_bitrate_kbps, 8);
646
+ gfp->VBR_mean_bitrate_kbps = Min(gfp->VBR_mean_bitrate_kbps, 64);
647
+ } else if (gfp->samplerate_out < 32000) {
648
+ gfp->VBR_mean_bitrate_kbps = Max(gfp->VBR_mean_bitrate_kbps, 8);
649
+ gfp->VBR_mean_bitrate_kbps = Min(gfp->VBR_mean_bitrate_kbps, 160);
650
+ } else {
651
+ gfp->VBR_mean_bitrate_kbps = Max(gfp->VBR_mean_bitrate_kbps, 32);
652
+ gfp->VBR_mean_bitrate_kbps = Min(gfp->VBR_mean_bitrate_kbps, 320);
653
+ }
654
+ }
655
+ /* WORK IN PROGRESS */
656
+ /* mapping VBR scale to internal VBR quality settings */
657
+ if (gfp->samplerate_out == 0 && (cfg->vbr == vbr_mt || cfg->vbr == vbr_mtrh)) {
658
+ float const qval = gfp->VBR_q + gfp->VBR_q_frac;
659
+ struct q_map {
660
+ int sr_a;
661
+ float qa, qb, ta, tb;
662
+ int lp;
663
+ };
664
+ struct q_map const m[9]
665
+ = {{48000, 0.0, 6.5, 0.0, 6.5, 23700},
666
+ {44100, 0.0, 6.5, 0.0, 6.5, 21780},
667
+ {32000, 6.5, 8.0, 5.2, 6.5, 15800},
668
+ {24000, 8.0, 8.5, 5.2, 6.0, 11850},
669
+ {22050, 8.5, 9.01, 5.2, 6.5, 10892},
670
+ {16000, 9.01, 9.4, 4.9, 6.5, 7903},
671
+ {12000, 9.4, 9.6, 4.5, 6.0, 5928},
672
+ {11025, 9.6, 9.9, 5.1, 6.5, 5446},
673
+ {8000, 9.9, 10., 4.9, 6.5, 3952}
674
+ };
675
+ for (i = 2; i < 9; ++i) {
676
+ if (gfp->samplerate_in == m[i].sr_a) {
677
+ if (qval < m[i].qa) {
678
+ double d = qval / m[i].qa;
679
+ d = d * m[i].ta;
680
+ gfp->VBR_q = (int) d;
681
+ gfp->VBR_q_frac = d - gfp->VBR_q;
682
+ }
683
+ }
684
+ if (gfp->samplerate_in >= m[i].sr_a) {
685
+ if (m[i].qa <= qval && qval < m[i].qb) {
686
+ float const q_ = m[i].qb - m[i].qa;
687
+ float const t_ = m[i].tb - m[i].ta;
688
+ double d = m[i].ta + t_ * (qval - m[i].qa) / q_;
689
+ gfp->VBR_q = (int) d;
690
+ gfp->VBR_q_frac = d - gfp->VBR_q;
691
+ gfp->samplerate_out = m[i].sr_a;
692
+ if (gfp->lowpassfreq == 0) {
693
+ gfp->lowpassfreq = -1;
694
+ }
695
+ break;
696
+ }
697
+ }
698
+ }
699
+ }
700
+
701
+ /****************************************************************/
702
+ /* if a filter has not been enabled, see if we should add one: */
703
+ /****************************************************************/
704
+ if (gfp->lowpassfreq == 0) {
705
+ double lowpass = 16000;
706
+ double highpass;
707
+
708
+ switch (cfg->vbr) {
709
+ case vbr_off: {
710
+ optimum_bandwidth(&lowpass, &highpass, gfp->brate);
711
+ break;
712
+ }
713
+ case vbr_abr: {
714
+ optimum_bandwidth(&lowpass, &highpass, gfp->VBR_mean_bitrate_kbps);
715
+ break;
716
+ }
717
+ case vbr_rh: {
718
+ int const x[11] = {
719
+ 19500, 19000, 18600, 18000, 17500, 16000, 15600, 14900, 12500, 10000, 3950
720
+ };
721
+ if (0 <= gfp->VBR_q && gfp->VBR_q <= 9) {
722
+ double a = x[gfp->VBR_q], b = x[gfp->VBR_q + 1], m = gfp->VBR_q_frac;
723
+ lowpass = linear_int(a, b, m);
724
+ } else {
725
+ lowpass = 19500;
726
+ }
727
+ break;
728
+ }
729
+ case vbr_mtrh:
730
+ case vbr_mt: {
731
+ int const x[11] = {
732
+ 24000, 19500, 18500, 18000, 17500, 17000, 16500, 15600, 15200, 7230, 3950
733
+ };
734
+ if (0 <= gfp->VBR_q && gfp->VBR_q <= 9) {
735
+ double a = x[gfp->VBR_q], b = x[gfp->VBR_q + 1], m = gfp->VBR_q_frac;
736
+ lowpass = linear_int(a, b, m);
737
+ } else {
738
+ lowpass = 21500;
739
+ }
740
+ break;
741
+ }
742
+ default: {
743
+ int const x[11] = {
744
+ 19500, 19000, 18500, 18000, 17500, 16500, 15500, 14500, 12500, 9500, 3950
745
+ };
746
+ if (0 <= gfp->VBR_q && gfp->VBR_q <= 9) {
747
+ double a = x[gfp->VBR_q], b = x[gfp->VBR_q + 1], m = gfp->VBR_q_frac;
748
+ lowpass = linear_int(a, b, m);
749
+ } else {
750
+ lowpass = 19500;
751
+ }
752
+ }
753
+ }
754
+
755
+ if (gfp->mode == MONO && (cfg->vbr == vbr_off || cfg->vbr == vbr_abr))
756
+ lowpass *= 1.5;
757
+
758
+ gfp->lowpassfreq = lowpass;
759
+ }
760
+
761
+ if (gfp->samplerate_out == 0) {
762
+ if (2 * gfp->lowpassfreq > gfp->samplerate_in) {
763
+ gfp->lowpassfreq = gfp->samplerate_in / 2;
764
+ }
765
+ gfp->samplerate_out = optimum_samplefreq((int) gfp->lowpassfreq, gfp->samplerate_in);
766
+ }
767
+ if (cfg->vbr == vbr_mt || cfg->vbr == vbr_mtrh) {
768
+ gfp->lowpassfreq = Min(24000, gfp->lowpassfreq);
769
+ } else {
770
+ gfp->lowpassfreq = Min(20500, gfp->lowpassfreq);
771
+ }
772
+ gfp->lowpassfreq = Min(gfp->samplerate_out / 2, gfp->lowpassfreq);
773
+
774
+ if (cfg->vbr == vbr_off) {
775
+ gfp->compression_ratio = gfp->samplerate_out * 16 * cfg->channels_out / (1.e3 * gfp->brate);
776
+ }
777
+ if (cfg->vbr == vbr_abr) {
778
+ gfp->compression_ratio =
779
+ gfp->samplerate_out * 16 * cfg->channels_out / (1.e3 * gfp->VBR_mean_bitrate_kbps);
780
+ }
781
+
782
+ cfg->disable_reservoir = gfp->disable_reservoir;
783
+ cfg->lowpassfreq = gfp->lowpassfreq;
784
+ cfg->highpassfreq = gfp->highpassfreq;
785
+ cfg->samplerate_in = gfp->samplerate_in;
786
+ cfg->samplerate_out = gfp->samplerate_out;
787
+ cfg->mode_gr = cfg->samplerate_out <= 24000 ? 1 : 2; /* Number of granules per frame */
788
+
789
+
790
+ /*
791
+ * sample freq bitrate compression ratio
792
+ * [kHz] [kbps/channel] for 16 bit input
793
+ * 44.1 56 12.6
794
+ * 44.1 64 11.025
795
+ * 44.1 80 8.82
796
+ * 22.05 24 14.7
797
+ * 22.05 32 11.025
798
+ * 22.05 40 8.82
799
+ * 16 16 16.0
800
+ * 16 24 10.667
801
+ *
802
+ */
803
+ /*
804
+ * For VBR, take a guess at the compression_ratio.
805
+ * For example:
806
+ *
807
+ * VBR_q compression like
808
+ * - 4.4 320 kbps/44 kHz
809
+ * 0...1 5.5 256 kbps/44 kHz
810
+ * 2 7.3 192 kbps/44 kHz
811
+ * 4 8.8 160 kbps/44 kHz
812
+ * 6 11 128 kbps/44 kHz
813
+ * 9 14.7 96 kbps
814
+ *
815
+ * for lower bitrates, downsample with --resample
816
+ */
817
+
818
+ switch (cfg->vbr) {
819
+ case vbr_mt:
820
+ case vbr_rh:
821
+ case vbr_mtrh: {
822
+ /*numbers are a bit strange, but they determine the lowpass value */
823
+ FLOAT const cmp[] = {5.7, 6.5, 7.3, 8.2, 10, 11.9, 13, 14, 15, 16.5};
824
+ gfp->compression_ratio = cmp[gfp->VBR_q];
825
+ }
826
+ break;
827
+ case vbr_abr:
828
+ gfp->compression_ratio =
829
+ cfg->samplerate_out * 16 * cfg->channels_out /
830
+ (1.e3 * gfp->VBR_mean_bitrate_kbps);
831
+ break;
832
+ default:
833
+ gfp->compression_ratio =
834
+ cfg->samplerate_out * 16 * cfg->channels_out / (1.e3 * gfp->brate);
835
+ break;
836
+ }
837
+
838
+
839
+ /* mode = -1 (not set by user) or
840
+ * mode = MONO (because of only 1 input channel).
841
+ * If mode has not been set, then select J-STEREO
842
+ */
843
+ if (gfp->mode == NOT_SET) {
844
+ gfp->mode = JOINT_STEREO;
845
+ }
846
+
847
+ cfg->mode = gfp->mode;
848
+
849
+
850
+ /* apply user driven high pass filter */
851
+ if (cfg->highpassfreq > 0) {
852
+ cfg->highpass1 = 2. * cfg->highpassfreq;
853
+
854
+ if (gfp->highpasswidth >= 0)
855
+ cfg->highpass2 = 2. * (cfg->highpassfreq + gfp->highpasswidth);
856
+ else /* 0% above on default */
857
+ cfg->highpass2 = (1 + 0.00) * 2. * cfg->highpassfreq;
858
+
859
+ cfg->highpass1 /= cfg->samplerate_out;
860
+ cfg->highpass2 /= cfg->samplerate_out;
861
+ } else {
862
+ cfg->highpass1 = 0;
863
+ cfg->highpass2 = 0;
864
+ }
865
+ /* apply user driven low pass filter */
866
+ cfg->lowpass1 = 0;
867
+ cfg->lowpass2 = 0;
868
+ if (cfg->lowpassfreq > 0 && cfg->lowpassfreq < (cfg->samplerate_out / 2)) {
869
+ cfg->lowpass2 = 2. * cfg->lowpassfreq;
870
+ if (gfp->lowpasswidth >= 0) {
871
+ cfg->lowpass1 = 2. * (cfg->lowpassfreq - gfp->lowpasswidth);
872
+ if (cfg->lowpass1 < 0) /* has to be >= 0 */
873
+ cfg->lowpass1 = 0;
874
+ } else { /* 0% below on default */
875
+ cfg->lowpass1 = (1 - 0.00) * 2. * cfg->lowpassfreq;
876
+ }
877
+ cfg->lowpass1 /= cfg->samplerate_out;
878
+ cfg->lowpass2 /= cfg->samplerate_out;
879
+ }
880
+
881
+
882
+
883
+
884
+ /**********************************************************************/
885
+ /* compute info needed for polyphase filter (filter type==0, default) */
886
+ /**********************************************************************/
887
+ lame_init_params_ppflt(gfc);
888
+
889
+
890
+ /*******************************************************
891
+ * samplerate and bitrate index
892
+ *******************************************************/
893
+ cfg->samplerate_index = SmpFrqIndex(cfg->samplerate_out, &cfg->version);
894
+ assert(cfg->samplerate_index >= 0);
895
+
896
+ if (cfg->vbr == vbr_off) {
897
+ if (cfg->free_format) {
898
+ gfc->ov_enc.bitrate_index = 0;
899
+ } else {
900
+ gfp->brate = FindNearestBitrate(gfp->brate, cfg->version, cfg->samplerate_out);
901
+ gfc->ov_enc.bitrate_index = BitrateIndex(gfp->brate, cfg->version, cfg->samplerate_out);
902
+ if (gfc->ov_enc.bitrate_index <= 0) {
903
+ /* This never happens, because of preceding FindNearestBitrate!
904
+ * But, set a sane value, just in case
905
+ */
906
+ assert(0);
907
+ gfc->ov_enc.bitrate_index = 8;
908
+ }
909
+ }
910
+ } else {
911
+ gfc->ov_enc.bitrate_index = 1;
912
+ }
913
+
914
+ init_bit_stream_w(gfc);
915
+
916
+ j = cfg->samplerate_index + (3 * cfg->version) + 6 * (cfg->samplerate_out < 16000);
917
+ for (i = 0; i < SBMAX_l + 1; i++)
918
+ gfc->scalefac_band.l[i] = sfBandIndex[j].l[i];
919
+
920
+ for (i = 0; i < PSFB21 + 1; i++) {
921
+ int const size = (gfc->scalefac_band.l[22] - gfc->scalefac_band.l[21]) / PSFB21;
922
+ int const start = gfc->scalefac_band.l[21] + i * size;
923
+ gfc->scalefac_band.psfb21[i] = start;
924
+ }
925
+ gfc->scalefac_band.psfb21[PSFB21] = 576;
926
+
927
+ for (i = 0; i < SBMAX_s + 1; i++)
928
+ gfc->scalefac_band.s[i] = sfBandIndex[j].s[i];
929
+
930
+ for (i = 0; i < PSFB12 + 1; i++) {
931
+ int const size = (gfc->scalefac_band.s[13] - gfc->scalefac_band.s[12]) / PSFB12;
932
+ int const start = gfc->scalefac_band.s[12] + i * size;
933
+ gfc->scalefac_band.psfb12[i] = start;
934
+ }
935
+ gfc->scalefac_band.psfb12[PSFB12] = 192;
936
+
937
+ /* determine the mean bitrate for main data */
938
+ if (cfg->mode_gr == 2) /* MPEG 1 */
939
+ cfg->sideinfo_len = (cfg->channels_out == 1) ? 4 + 17 : 4 + 32;
940
+ else /* MPEG 2 */
941
+ cfg->sideinfo_len = (cfg->channels_out == 1) ? 4 + 9 : 4 + 17;
942
+
943
+ if (cfg->error_protection)
944
+ cfg->sideinfo_len += 2;
945
+
946
+ {
947
+ int k;
948
+
949
+ for (k = 0; k < 19; k++)
950
+ gfc->sv_enc.pefirbuf[k] = 700 * cfg->mode_gr * cfg->channels_out;
951
+
952
+ if (gfp->ATHtype == -1)
953
+ gfp->ATHtype = 4;
954
+ }
955
+
956
+ assert(gfp->VBR_q <= 9);
957
+ assert(gfp->VBR_q >= 0);
958
+
959
+ switch (cfg->vbr) {
960
+
961
+ case vbr_mt:
962
+ case vbr_mtrh: {
963
+ if (gfp->strict_ISO < 0) {
964
+ gfp->strict_ISO = MDB_MAXIMUM;
965
+ }
966
+ if (gfp->useTemporal < 0) {
967
+ gfp->useTemporal = 0; /* off by default for this VBR mode */
968
+ }
969
+
970
+ (void) apply_preset(gfp, 500 - (gfp->VBR_q * 10), 0);
971
+ /* The newer VBR code supports only a limited
972
+ subset of quality levels:
973
+ 9-5=5 are the same, uses x^3/4 quantization
974
+ 4-0=0 are the same 5 plus best huffman divide code
975
+ */
976
+ if (gfp->quality < 0)
977
+ gfp->quality = LAME_DEFAULT_QUALITY;
978
+ if (gfp->quality < 5)
979
+ gfp->quality = 0;
980
+ if (gfp->quality > 7)
981
+ gfp->quality = 7;
982
+
983
+ /* sfb21 extra only with MPEG-1 at higher sampling rates
984
+ */
985
+ if (gfp->experimentalY)
986
+ gfc->sv_qnt.sfb21_extra = 0;
987
+ else
988
+ gfc->sv_qnt.sfb21_extra = (cfg->samplerate_out > 44000);
989
+
990
+ break;
991
+
992
+ }
993
+ case vbr_rh: {
994
+
995
+ (void) apply_preset(gfp, 500 - (gfp->VBR_q * 10), 0);
996
+
997
+ /* sfb21 extra only with MPEG-1 at higher sampling rates
998
+ */
999
+ if (gfp->experimentalY)
1000
+ gfc->sv_qnt.sfb21_extra = 0;
1001
+ else
1002
+ gfc->sv_qnt.sfb21_extra = (cfg->samplerate_out > 44000);
1003
+
1004
+ /* VBR needs at least the output of GPSYCHO,
1005
+ * so we have to garantee that by setting a minimum
1006
+ * quality level, actually level 6 does it.
1007
+ * down to level 6
1008
+ */
1009
+ if (gfp->quality > 6)
1010
+ gfp->quality = 6;
1011
+
1012
+
1013
+ if (gfp->quality < 0)
1014
+ gfp->quality = LAME_DEFAULT_QUALITY;
1015
+
1016
+ break;
1017
+ }
1018
+
1019
+ default: /* cbr/abr */ {
1020
+
1021
+ /* no sfb21 extra with CBR code
1022
+ */
1023
+ gfc->sv_qnt.sfb21_extra = 0;
1024
+
1025
+ if (gfp->quality < 0)
1026
+ gfp->quality = LAME_DEFAULT_QUALITY;
1027
+
1028
+
1029
+ if (cfg->vbr == vbr_off)
1030
+ (void) lame_set_VBR_mean_bitrate_kbps(gfp, gfp->brate);
1031
+ /* second, set parameters depending on bitrate */
1032
+ (void) apply_preset(gfp, gfp->VBR_mean_bitrate_kbps, 0);
1033
+ gfp->VBR = cfg->vbr;
1034
+
1035
+ break;
1036
+ }
1037
+ }
1038
+
1039
+ /*initialize default values common for all modes */
1040
+
1041
+ gfc->sv_qnt.mask_adjust = gfp->maskingadjust;
1042
+ gfc->sv_qnt.mask_adjust_short = gfp->maskingadjust_short;
1043
+
1044
+ /* just another daily changing developer switch */
1045
+ if (gfp->tune) {
1046
+ gfc->sv_qnt.mask_adjust += gfp->tune_value_a;
1047
+ gfc->sv_qnt.mask_adjust_short += gfp->tune_value_a;
1048
+ }
1049
+
1050
+
1051
+ if (cfg->vbr != vbr_off) { /* choose a min/max bitrate for VBR */
1052
+ /* if the user didn't specify VBR_max_bitrate: */
1053
+ cfg->vbr_min_bitrate_index = 1; /* default: allow 8 kbps (MPEG-2) or 32 kbps (MPEG-1) */
1054
+ cfg->vbr_max_bitrate_index = 14; /* default: allow 160 kbps (MPEG-2) or 320 kbps (MPEG-1) */
1055
+ if (cfg->samplerate_out < 16000)
1056
+ cfg->vbr_max_bitrate_index = 8; /* default: allow 64 kbps (MPEG-2.5) */
1057
+ if (gfp->VBR_min_bitrate_kbps) {
1058
+ gfp->VBR_min_bitrate_kbps =
1059
+ FindNearestBitrate(gfp->VBR_min_bitrate_kbps, cfg->version,
1060
+ cfg->samplerate_out);
1061
+ cfg->vbr_min_bitrate_index =
1062
+ BitrateIndex(gfp->VBR_min_bitrate_kbps, cfg->version, cfg->samplerate_out);
1063
+ if (cfg->vbr_min_bitrate_index < 0) {
1064
+ /* This never happens, because of preceding FindNearestBitrate!
1065
+ * But, set a sane value, just in case
1066
+ */
1067
+ assert(0);
1068
+ cfg->vbr_min_bitrate_index = 1;
1069
+ }
1070
+ }
1071
+ if (gfp->VBR_max_bitrate_kbps) {
1072
+ gfp->VBR_max_bitrate_kbps =
1073
+ FindNearestBitrate(gfp->VBR_max_bitrate_kbps, cfg->version,
1074
+ cfg->samplerate_out);
1075
+ cfg->vbr_max_bitrate_index =
1076
+ BitrateIndex(gfp->VBR_max_bitrate_kbps, cfg->version, cfg->samplerate_out);
1077
+ if (cfg->vbr_max_bitrate_index < 0) {
1078
+ /* This never happens, because of preceding FindNearestBitrate!
1079
+ * But, set a sane value, just in case
1080
+ */
1081
+ assert(0);
1082
+ cfg->vbr_max_bitrate_index = cfg->samplerate_out < 16000 ? 8 : 14;
1083
+ }
1084
+ }
1085
+ gfp->VBR_min_bitrate_kbps = bitrate_table[cfg->version][cfg->vbr_min_bitrate_index];
1086
+ gfp->VBR_max_bitrate_kbps = bitrate_table[cfg->version][cfg->vbr_max_bitrate_index];
1087
+ gfp->VBR_mean_bitrate_kbps =
1088
+ Min(bitrate_table[cfg->version][cfg->vbr_max_bitrate_index],
1089
+ gfp->VBR_mean_bitrate_kbps);
1090
+ gfp->VBR_mean_bitrate_kbps =
1091
+ Max(bitrate_table[cfg->version][cfg->vbr_min_bitrate_index],
1092
+ gfp->VBR_mean_bitrate_kbps);
1093
+ }
1094
+
1095
+ cfg->preset = gfp->preset;
1096
+ cfg->write_lame_tag = gfp->write_lame_tag;
1097
+ gfc->sv_qnt.substep_shaping = gfp->substep_shaping;
1098
+ cfg->noise_shaping = gfp->noise_shaping;
1099
+ cfg->subblock_gain = gfp->subblock_gain;
1100
+ cfg->use_best_huffman = gfp->use_best_huffman;
1101
+ cfg->avg_bitrate = gfp->brate;
1102
+ cfg->vbr_avg_bitrate_kbps = gfp->VBR_mean_bitrate_kbps;
1103
+ cfg->compression_ratio = gfp->compression_ratio;
1104
+
1105
+ /* initialize internal qval settings */
1106
+ lame_init_qval(gfp);
1107
+
1108
+
1109
+ /* automatic ATH adjustment on
1110
+ */
1111
+ if (gfp->athaa_type < 0)
1112
+ gfc->ATH->use_adjust = 3;
1113
+ else
1114
+ gfc->ATH->use_adjust = gfp->athaa_type;
1115
+
1116
+
1117
+ /* initialize internal adaptive ATH settings -jd */
1118
+ gfc->ATH->aa_sensitivity_p = pow(10.0, gfp->athaa_sensitivity / -10.0);
1119
+
1120
+
1121
+ if (gfp->short_blocks == short_block_not_set) {
1122
+ gfp->short_blocks = short_block_allowed;
1123
+ }
1124
+
1125
+ /*Note Jan/2003: Many hardware decoders cannot handle short blocks in regular
1126
+ stereo mode unless they are coupled (same type in both channels)
1127
+ it is a rare event (1 frame per min. or so) that LAME would use
1128
+ uncoupled short blocks, so lets turn them off until we decide
1129
+ how to handle this. No other encoders allow uncoupled short blocks,
1130
+ even though it is in the standard. */
1131
+ /* rh 20040217: coupling makes no sense for mono and dual-mono streams
1132
+ */
1133
+ if (gfp->short_blocks == short_block_allowed
1134
+ && (cfg->mode == JOINT_STEREO || cfg->mode == STEREO)) {
1135
+ gfp->short_blocks = short_block_coupled;
1136
+ }
1137
+
1138
+ cfg->short_blocks = gfp->short_blocks;
1139
+
1140
+
1141
+ if (lame_get_quant_comp(gfp) < 0)
1142
+ (void) lame_set_quant_comp(gfp, 1);
1143
+ if (lame_get_quant_comp_short(gfp) < 0)
1144
+ (void) lame_set_quant_comp_short(gfp, 0);
1145
+
1146
+ if (lame_get_msfix(gfp) < 0)
1147
+ lame_set_msfix(gfp, 0);
1148
+
1149
+ /* select psychoacoustic model */
1150
+ (void) lame_set_exp_nspsytune(gfp, lame_get_exp_nspsytune(gfp) | 1);
1151
+
1152
+ if (gfp->ATHtype < 0)
1153
+ gfp->ATHtype = 4;
1154
+
1155
+ if (gfp->ATHcurve < 0)
1156
+ gfp->ATHcurve = 4;
1157
+
1158
+ if (gfp->interChRatio < 0)
1159
+ gfp->interChRatio = 0;
1160
+
1161
+ if (gfp->useTemporal < 0)
1162
+ gfp->useTemporal = 1; /* on by default */
1163
+
1164
+
1165
+ cfg->interChRatio = gfp->interChRatio;
1166
+ cfg->msfix = gfp->msfix;
1167
+ cfg->ATH_offset_db = 0 - gfp->ATH_lower_db;
1168
+ cfg->ATH_offset_factor = powf(10.f, cfg->ATH_offset_db * 0.1f);
1169
+ cfg->ATHcurve = gfp->ATHcurve;
1170
+ cfg->ATHtype = gfp->ATHtype;
1171
+ cfg->ATHonly = gfp->ATHonly;
1172
+ cfg->ATHshort = gfp->ATHshort;
1173
+ cfg->noATH = gfp->noATH;
1174
+
1175
+ cfg->quant_comp = gfp->quant_comp;
1176
+ cfg->quant_comp_short = gfp->quant_comp_short;
1177
+
1178
+ cfg->use_temporal_masking_effect = gfp->useTemporal;
1179
+ if (cfg->mode == JOINT_STEREO) {
1180
+ cfg->use_safe_joint_stereo = gfp->exp_nspsytune & 2;
1181
+ } else {
1182
+ cfg->use_safe_joint_stereo = 0;
1183
+ }
1184
+ {
1185
+ cfg->adjust_bass_db = (gfp->exp_nspsytune >> 2) & 63;
1186
+ if (cfg->adjust_bass_db >= 32.f)
1187
+ cfg->adjust_bass_db -= 64.f;
1188
+ cfg->adjust_bass_db *= 0.25f;
1189
+
1190
+ cfg->adjust_alto_db = (gfp->exp_nspsytune >> 8) & 63;
1191
+ if (cfg->adjust_alto_db >= 32.f)
1192
+ cfg->adjust_alto_db -= 64.f;
1193
+ cfg->adjust_alto_db *= 0.25f;
1194
+
1195
+ cfg->adjust_treble_db = (gfp->exp_nspsytune >> 14) & 63;
1196
+ if (cfg->adjust_treble_db >= 32.f)
1197
+ cfg->adjust_treble_db -= 64.f;
1198
+ cfg->adjust_treble_db *= 0.25f;
1199
+
1200
+ /* to be compatible with Naoki's original code, the next 6 bits
1201
+ * define only the amount of changing treble for sfb21 */
1202
+ cfg->adjust_sfb21_db = (gfp->exp_nspsytune >> 20) & 63;
1203
+ if (cfg->adjust_sfb21_db >= 32.f)
1204
+ cfg->adjust_sfb21_db -= 64.f;
1205
+ cfg->adjust_sfb21_db *= 0.25f;
1206
+ cfg->adjust_sfb21_db += cfg->adjust_treble_db;
1207
+ }
1208
+
1209
+ /* Setting up the PCM input data transform matrix, to apply
1210
+ * user defined re-scaling, and or two-to-one channel downmix.
1211
+ */
1212
+ {
1213
+ FLOAT m[2][2] = {{1.0f, 0.0f},
1214
+ {0.0f, 1.0f}};
1215
+
1216
+ /* user selected scaling of the samples */
1217
+ m[0][0] *= gfp->scale;
1218
+ m[0][1] *= gfp->scale;
1219
+ m[1][0] *= gfp->scale;
1220
+ m[1][1] *= gfp->scale;
1221
+ /* user selected scaling of the channel 0 (left) samples */
1222
+ m[0][0] *= gfp->scale_left;
1223
+ m[0][1] *= gfp->scale_left;
1224
+ /* user selected scaling of the channel 1 (right) samples */
1225
+ m[1][0] *= gfp->scale_right;
1226
+ m[1][1] *= gfp->scale_right;
1227
+ /* Downsample to Mono if 2 channels in and 1 channel out */
1228
+ if (cfg->channels_in == 2 && cfg->channels_out == 1) {
1229
+ m[0][0] = 0.5f * (m[0][0] + m[1][0]);
1230
+ m[0][1] = 0.5f * (m[0][1] + m[1][1]);
1231
+ m[1][0] = 0;
1232
+ m[1][1] = 0;
1233
+ }
1234
+ cfg->pcm_transform[0][0] = m[0][0];
1235
+ cfg->pcm_transform[0][1] = m[0][1];
1236
+ cfg->pcm_transform[1][0] = m[1][0];
1237
+ cfg->pcm_transform[1][1] = m[1][1];
1238
+ }
1239
+
1240
+ /* padding method as described in
1241
+ * "MPEG-Layer3 / Bitstream Syntax and Decoding"
1242
+ * by Martin Sieler, Ralph Sperschneider
1243
+ *
1244
+ * note: there is no padding for the very first frame
1245
+ *
1246
+ * Robert Hegemann 2000-06-22
1247
+ */
1248
+ gfc->sv_enc.slot_lag = gfc->sv_enc.frac_SpF = 0;
1249
+ if (cfg->vbr == vbr_off)
1250
+ gfc->sv_enc.slot_lag = gfc->sv_enc.frac_SpF
1251
+ = ((cfg->version + 1) * 72000L * cfg->avg_bitrate) % cfg->samplerate_out;
1252
+
1253
+ (void) lame_init_bitstream(gfp);
1254
+
1255
+ iteration_init(gfc);
1256
+ (void) psymodel_init(gfp);
1257
+
1258
+ cfg->buffer_constraint = get_max_frame_buffer_size_by_constraint(cfg, gfp->strict_ISO);
1259
+
1260
+
1261
+ cfg->findReplayGain = gfp->findReplayGain;
1262
+ cfg->decode_on_the_fly = gfp->decode_on_the_fly;
1263
+
1264
+ if (cfg->decode_on_the_fly)
1265
+ cfg->findPeakSample = 1;
1266
+
1267
+ if (cfg->findReplayGain) {
1268
+ if (InitGainAnalysis(gfc->sv_rpg.rgdata, cfg->samplerate_out) == INIT_GAIN_ANALYSIS_ERROR) {
1269
+ /* Actually this never happens, our samplerates are the ones RG accepts!
1270
+ * But just in case, turn RG off
1271
+ */
1272
+ assert(0);
1273
+ cfg->findReplayGain = 0;
1274
+ }
1275
+ }
1276
+
1277
+ #ifdef DECODE_ON_THE_FLY
1278
+ if (cfg->decode_on_the_fly && !gfp->decode_only) {
1279
+ if (gfc->hip) {
1280
+ hip_decode_exit(gfc->hip);
1281
+ }
1282
+ gfc->hip = hip_decode_init();
1283
+ /* report functions */
1284
+ hip_set_errorf(gfc->hip, gfp->report.errorf);
1285
+ hip_set_debugf(gfc->hip, gfp->report.debugf);
1286
+ hip_set_msgf(gfc->hip, gfp->report.msgf);
1287
+ }
1288
+ #endif
1289
+ /* updating lame internal flags finished successful */
1290
+ gfc->lame_init_params_successful = 1;
1291
+ return 0;
1292
+ }
1293
+
1294
+ static void
1295
+ concatSep(char *dest, char const *sep, char const *str) {
1296
+ if (*dest != 0) strcat(dest, sep);
1297
+ strcat(dest, str);
1298
+ }
1299
+
1300
+ /*
1301
+ * print_config
1302
+ *
1303
+ * Prints some selected information about the coding parameters via
1304
+ * the macro command MSGF(), which is currently mapped to lame_errorf
1305
+ * (reports via a error function?), which is a printf-like function
1306
+ * for <stderr>.
1307
+ */
1308
+
1309
+ void
1310
+ lame_print_config(const lame_global_flags *gfp) {
1311
+ lame_internal_flags const *const gfc = gfp->internal_flags;
1312
+ SessionConfig_t const *const cfg = &gfc->cfg;
1313
+ double const out_samplerate = cfg->samplerate_out;
1314
+ double const in_samplerate = cfg->samplerate_in;
1315
+
1316
+ MSGF(gfc, "LAME %s %s (%s)\n", get_lame_version(), get_lame_os_bitness(), get_lame_url());
1317
+
1318
+ #if (LAME_ALPHA_VERSION)
1319
+ MSGF(gfc, "warning: alpha versions should be used for testing only\n");
1320
+ #endif
1321
+ if (gfc->CPU_features.MMX
1322
+ || gfc->CPU_features.AMD_3DNow || gfc->CPU_features.SSE || gfc->CPU_features.SSE2) {
1323
+ char text[256] = {0};
1324
+ int fft_asm_used = 0;
1325
+ #ifdef HAVE_NASM
1326
+ if (gfc->CPU_features.AMD_3DNow) {
1327
+ fft_asm_used = 1;
1328
+ }
1329
+ else if (gfc->CPU_features.SSE) {
1330
+ fft_asm_used = 2;
1331
+ }
1332
+ #else
1333
+ # if defined( HAVE_XMMINTRIN_H ) && defined( MIN_ARCH_SSE )
1334
+ {
1335
+ fft_asm_used = 3;
1336
+ }
1337
+ # endif
1338
+ #endif
1339
+ if (gfc->CPU_features.MMX) {
1340
+ #ifdef MMX_choose_table
1341
+ concatSep(text, ", ", "MMX (ASM used)");
1342
+ #else
1343
+ concatSep(text, ", ", "MMX");
1344
+ #endif
1345
+ }
1346
+ if (gfc->CPU_features.AMD_3DNow) {
1347
+ concatSep(text, ", ", (fft_asm_used == 1) ? "3DNow! (ASM used)" : "3DNow!");
1348
+ }
1349
+ if (gfc->CPU_features.SSE) {
1350
+ #if defined(HAVE_XMMINTRIN_H)
1351
+ concatSep(text, ", ", "SSE (ASM used)");
1352
+ #else
1353
+ concatSep(text, ", ", (fft_asm_used == 2) ? "SSE (ASM used)" : "SSE");
1354
+ #endif
1355
+ }
1356
+ if (gfc->CPU_features.SSE2) {
1357
+ concatSep(text, ", ", (fft_asm_used == 3) ? "SSE2 (ASM used)" : "SSE2");
1358
+ }
1359
+ MSGF(gfc, "CPU features: %s\n", text);
1360
+ }
1361
+
1362
+ if (cfg->channels_in == 2 && cfg->channels_out == 1 /* mono */ ) {
1363
+ MSGF(gfc, "Autoconverting from stereo to mono. Setting encoding to mono mode.\n");
1364
+ }
1365
+
1366
+ if (isResamplingNecessary(cfg)) {
1367
+ MSGF(gfc, "Resampling: input %g kHz output %g kHz\n",
1368
+ 1.e-3 * in_samplerate, 1.e-3 * out_samplerate);
1369
+ }
1370
+
1371
+ if (cfg->highpass2 > 0.)
1372
+ MSGF(gfc,
1373
+ "Using polyphase highpass filter, transition band: %5.0f Hz - %5.0f Hz\n",
1374
+ 0.5 * cfg->highpass1 * out_samplerate, 0.5 * cfg->highpass2 * out_samplerate);
1375
+ if (0. < cfg->lowpass1 || 0. < cfg->lowpass2) {
1376
+ MSGF(gfc,
1377
+ "Using polyphase lowpass filter, transition band: %5.0f Hz - %5.0f Hz\n",
1378
+ 0.5 * cfg->lowpass1 * out_samplerate, 0.5 * cfg->lowpass2 * out_samplerate);
1379
+ } else {
1380
+ MSGF(gfc, "polyphase lowpass filter disabled\n");
1381
+ }
1382
+
1383
+ if (cfg->free_format) {
1384
+ MSGF(gfc, "Warning: many decoders cannot handle free format bitstreams\n");
1385
+ if (cfg->avg_bitrate > 320) {
1386
+ MSGF(gfc,
1387
+ "Warning: many decoders cannot handle free format bitrates >320 kbps (see documentation)\n");
1388
+ }
1389
+ }
1390
+ }
1391
+
1392
+
1393
+ /** rh:
1394
+ * some pretty printing is very welcome at this point!
1395
+ * so, if someone is willing to do so, please do it!
1396
+ * add more, if you see more...
1397
+ */
1398
+ void
1399
+ lame_print_internals(const lame_global_flags *gfp) {
1400
+ lame_internal_flags const *const gfc = gfp->internal_flags;
1401
+ SessionConfig_t const *const cfg = &gfc->cfg;
1402
+ const char *pc = "";
1403
+
1404
+ /* compiler/processor optimizations, operational, etc.
1405
+ */
1406
+ MSGF(gfc, "\nmisc:\n\n");
1407
+
1408
+ MSGF(gfc, "\tscaling: %g\n", gfp->scale);
1409
+ MSGF(gfc, "\tch0 (left) scaling: %g\n", gfp->scale_left);
1410
+ MSGF(gfc, "\tch1 (right) scaling: %g\n", gfp->scale_right);
1411
+ switch (cfg->use_best_huffman) {
1412
+ default:
1413
+ pc = "normal";
1414
+ break;
1415
+ case 1:
1416
+ pc = "best (outside loop)";
1417
+ break;
1418
+ case 2:
1419
+ pc = "best (inside loop, slow)";
1420
+ break;
1421
+ }
1422
+ MSGF(gfc, "\thuffman search: %s\n", pc);
1423
+ MSGF(gfc, "\texperimental Y=%d\n", gfp->experimentalY);
1424
+ MSGF(gfc, "\t...\n");
1425
+
1426
+ /* everything controlling the stream format
1427
+ */
1428
+ MSGF(gfc, "\nstream format:\n\n");
1429
+ switch (cfg->version) {
1430
+ case 0:
1431
+ pc = "2.5";
1432
+ break;
1433
+ case 1:
1434
+ pc = "1";
1435
+ break;
1436
+ case 2:
1437
+ pc = "2";
1438
+ break;
1439
+ default:
1440
+ pc = "?";
1441
+ break;
1442
+ }
1443
+ MSGF(gfc, "\tMPEG-%s Layer 3\n", pc);
1444
+ switch (cfg->mode) {
1445
+ case JOINT_STEREO:
1446
+ pc = "joint stereo";
1447
+ break;
1448
+ case STEREO:
1449
+ pc = "stereo";
1450
+ break;
1451
+ case DUAL_CHANNEL:
1452
+ pc = "dual channel";
1453
+ break;
1454
+ case MONO:
1455
+ pc = "mono";
1456
+ break;
1457
+ case NOT_SET:
1458
+ pc = "not set (error)";
1459
+ break;
1460
+ default:
1461
+ pc = "unknown (error)";
1462
+ break;
1463
+ }
1464
+ MSGF(gfc, "\t%d channel - %s\n", cfg->channels_out, pc);
1465
+
1466
+ switch (cfg->vbr) {
1467
+ case vbr_off:
1468
+ pc = "off";
1469
+ break;
1470
+ default:
1471
+ pc = "all";
1472
+ break;
1473
+ }
1474
+ MSGF(gfc, "\tpadding: %s\n", pc);
1475
+
1476
+ if (vbr_default == cfg->vbr)
1477
+ pc = "(default)";
1478
+ else if (cfg->free_format)
1479
+ pc = "(free format)";
1480
+ else
1481
+ pc = "";
1482
+ switch (cfg->vbr) {
1483
+ case vbr_off:
1484
+ MSGF(gfc, "\tconstant bitrate - CBR %s\n", pc);
1485
+ break;
1486
+ case vbr_abr:
1487
+ MSGF(gfc, "\tvariable bitrate - ABR %s\n", pc);
1488
+ break;
1489
+ case vbr_rh:
1490
+ MSGF(gfc, "\tvariable bitrate - VBR rh %s\n", pc);
1491
+ break;
1492
+ case vbr_mt:
1493
+ MSGF(gfc, "\tvariable bitrate - VBR mt %s\n", pc);
1494
+ break;
1495
+ case vbr_mtrh:
1496
+ MSGF(gfc, "\tvariable bitrate - VBR mtrh %s\n", pc);
1497
+ break;
1498
+ default:
1499
+ MSGF(gfc, "\t ?? oops, some new one ?? \n");
1500
+ break;
1501
+ }
1502
+ if (cfg->write_lame_tag)
1503
+ MSGF(gfc, "\tusing LAME Tag\n");
1504
+ MSGF(gfc, "\t...\n");
1505
+
1506
+ /* everything controlling psychoacoustic settings, like ATH, etc.
1507
+ */
1508
+ MSGF(gfc, "\npsychoacoustic:\n\n");
1509
+
1510
+ switch (cfg->short_blocks) {
1511
+ default:
1512
+ case short_block_not_set:
1513
+ pc = "?";
1514
+ break;
1515
+ case short_block_allowed:
1516
+ pc = "allowed";
1517
+ break;
1518
+ case short_block_coupled:
1519
+ pc = "channel coupled";
1520
+ break;
1521
+ case short_block_dispensed:
1522
+ pc = "dispensed";
1523
+ break;
1524
+ case short_block_forced:
1525
+ pc = "forced";
1526
+ break;
1527
+ }
1528
+ MSGF(gfc, "\tusing short blocks: %s\n", pc);
1529
+ MSGF(gfc, "\tsubblock gain: %d\n", cfg->subblock_gain);
1530
+ MSGF(gfc, "\tadjust masking: %g dB\n", gfc->sv_qnt.mask_adjust);
1531
+ MSGF(gfc, "\tadjust masking short: %g dB\n", gfc->sv_qnt.mask_adjust_short);
1532
+ MSGF(gfc, "\tquantization comparison: %d\n", cfg->quant_comp);
1533
+ MSGF(gfc, "\t ^ comparison short blocks: %d\n", cfg->quant_comp_short);
1534
+ MSGF(gfc, "\tnoise shaping: %d\n", cfg->noise_shaping);
1535
+ MSGF(gfc, "\t ^ amplification: %d\n", cfg->noise_shaping_amp);
1536
+ MSGF(gfc, "\t ^ stopping: %d\n", cfg->noise_shaping_stop);
1537
+
1538
+ pc = "using";
1539
+ if (cfg->ATHshort)
1540
+ pc = "the only masking for short blocks";
1541
+ if (cfg->ATHonly)
1542
+ pc = "the only masking";
1543
+ if (cfg->noATH)
1544
+ pc = "not used";
1545
+ MSGF(gfc, "\tATH: %s\n", pc);
1546
+ MSGF(gfc, "\t ^ type: %d\n", cfg->ATHtype);
1547
+ MSGF(gfc, "\t ^ shape: %g%s\n", cfg->ATHcurve, " (only for type 4)");
1548
+ MSGF(gfc, "\t ^ level adjustement: %g dB\n", cfg->ATH_offset_db);
1549
+ MSGF(gfc, "\t ^ adjust type: %d\n", gfc->ATH->use_adjust);
1550
+ MSGF(gfc, "\t ^ adjust sensitivity power: %f\n", gfc->ATH->aa_sensitivity_p);
1551
+
1552
+ MSGF(gfc, "\texperimental psy tunings by Naoki Shibata\n");
1553
+ MSGF(gfc, "\t adjust masking bass=%g dB, alto=%g dB, treble=%g dB, sfb21=%g dB\n",
1554
+ 10 * log10(gfc->sv_qnt.longfact[0]),
1555
+ 10 * log10(gfc->sv_qnt.longfact[7]),
1556
+ 10 * log10(gfc->sv_qnt.longfact[14]), 10 * log10(gfc->sv_qnt.longfact[21]));
1557
+
1558
+ pc = cfg->use_temporal_masking_effect ? "yes" : "no";
1559
+ MSGF(gfc, "\tusing temporal masking effect: %s\n", pc);
1560
+ MSGF(gfc, "\tinterchannel masking ratio: %g\n", cfg->interChRatio);
1561
+ MSGF(gfc, "\t...\n");
1562
+
1563
+ /* that's all ?
1564
+ */
1565
+ MSGF(gfc, "\n");
1566
+ return;
1567
+ }
1568
+
1569
+
1570
+ static void
1571
+ save_gain_values(lame_internal_flags *gfc) {
1572
+ SessionConfig_t const *const cfg = &gfc->cfg;
1573
+ RpgStateVar_t const *const rsv = &gfc->sv_rpg;
1574
+ RpgResult_t *const rov = &gfc->ov_rpg;
1575
+ /* save the ReplayGain value */
1576
+ if (cfg->findReplayGain) {
1577
+ FLOAT const RadioGain = (FLOAT) GetTitleGain(rsv->rgdata);
1578
+ if (NEQ(RadioGain, GAIN_NOT_ENOUGH_SAMPLES)) {
1579
+ rov->RadioGain = (int) floor(RadioGain * 10.0 + 0.5); /* round to nearest */
1580
+ } else {
1581
+ rov->RadioGain = 0;
1582
+ }
1583
+ }
1584
+
1585
+ /* find the gain and scale change required for no clipping */
1586
+ if (cfg->findPeakSample) {
1587
+ rov->noclipGainChange = (int) ceil(
1588
+ log10(rov->PeakSample / 32767.0) * 20.0 * 10.0); /* round up */
1589
+
1590
+ if (rov->noclipGainChange > 0) { /* clipping occurs */
1591
+ rov->noclipScale =
1592
+ floor((32767.0f / rov->PeakSample) * 100.0f) / 100.0f; /* round down */
1593
+ } else /* no clipping */
1594
+ rov->noclipScale = -1.0f;
1595
+ }
1596
+ }
1597
+
1598
+
1599
+ static int
1600
+ update_inbuffer_size(lame_internal_flags *gfc, const int nsamples) {
1601
+ EncStateVar_t *const esv = &gfc->sv_enc;
1602
+ if (esv->in_buffer_0 == 0 || esv->in_buffer_nsamples < nsamples) {
1603
+ if (esv->in_buffer_0) {
1604
+ free(esv->in_buffer_0);
1605
+ }
1606
+ if (esv->in_buffer_1) {
1607
+ free(esv->in_buffer_1);
1608
+ }
1609
+ esv->in_buffer_0 = lame_calloc(sample_t, nsamples);
1610
+ esv->in_buffer_1 = lame_calloc(sample_t, nsamples);
1611
+ esv->in_buffer_nsamples = nsamples;
1612
+ }
1613
+ if (esv->in_buffer_0 == NULL || esv->in_buffer_1 == NULL) {
1614
+ if (esv->in_buffer_0) {
1615
+ free(esv->in_buffer_0);
1616
+ }
1617
+ if (esv->in_buffer_1) {
1618
+ free(esv->in_buffer_1);
1619
+ }
1620
+ esv->in_buffer_0 = 0;
1621
+ esv->in_buffer_1 = 0;
1622
+ esv->in_buffer_nsamples = 0;
1623
+ ERRORF(gfc, "Error: can't allocate in_buffer buffer\n");
1624
+ return -2;
1625
+ }
1626
+ return 0;
1627
+ }
1628
+
1629
+
1630
+ static int
1631
+ calcNeeded(SessionConfig_t const *cfg) {
1632
+ int mf_needed;
1633
+ int pcm_samples_per_frame = 576 * cfg->mode_gr;
1634
+
1635
+ /* some sanity checks */
1636
+ #if ENCDELAY < MDCTDELAY
1637
+ # error ENCDELAY is less than MDCTDELAY, see encoder.h
1638
+ #endif
1639
+ #if FFTOFFSET > BLKSIZE
1640
+ # error FFTOFFSET is greater than BLKSIZE, see encoder.h
1641
+ #endif
1642
+
1643
+ mf_needed = BLKSIZE + pcm_samples_per_frame - FFTOFFSET; /* amount needed for FFT */
1644
+ /*mf_needed = Max(mf_needed, 286 + 576 * (1 + gfc->mode_gr)); */
1645
+ mf_needed = Max(mf_needed, 512 + pcm_samples_per_frame - 32);
1646
+
1647
+ assert(MFSIZE >= mf_needed);
1648
+
1649
+ return mf_needed;
1650
+ }
1651
+
1652
+
1653
+ /*
1654
+ * THE MAIN LAME ENCODING INTERFACE
1655
+ * mt 3/00
1656
+ *
1657
+ * input pcm data, output (maybe) mp3 frames.
1658
+ * This routine handles all buffering, resampling and filtering for you.
1659
+ * The required mp3buffer_size can be computed from num_samples,
1660
+ * samplerate and encoding rate, but here is a worst case estimate:
1661
+ *
1662
+ * mp3buffer_size in bytes = 1.25*num_samples + 7200
1663
+ *
1664
+ * return code = number of bytes output in mp3buffer. can be 0
1665
+ *
1666
+ * NOTE: this routine uses LAME's internal PCM data representation,
1667
+ * 'sample_t'. It should not be used by any application.
1668
+ * applications should use lame_encode_buffer(),
1669
+ * lame_encode_buffer_float()
1670
+ * lame_encode_buffer_int()
1671
+ * etc... depending on what type of data they are working with.
1672
+ */
1673
+ static int
1674
+ lame_encode_buffer_sample_t(lame_internal_flags *gfc,
1675
+ int nsamples, unsigned char *mp3buf, const int mp3buf_size) {
1676
+ SessionConfig_t const *const cfg = &gfc->cfg;
1677
+ EncStateVar_t *const esv = &gfc->sv_enc;
1678
+ int pcm_samples_per_frame = 576 * cfg->mode_gr;
1679
+ int mp3size = 0, ret, i, ch, mf_needed;
1680
+ int mp3out;
1681
+ sample_t *mfbuf[2];
1682
+ sample_t *in_buffer[2];
1683
+
1684
+ if (gfc->class_id != LAME_ID)
1685
+ return -3;
1686
+
1687
+ if (nsamples == 0)
1688
+ return 0;
1689
+
1690
+ /* copy out any tags that may have been written into bitstream */
1691
+ { /* if user specifed buffer size = 0, dont check size */
1692
+ int const buf_size = mp3buf_size == 0 ? INT_MAX : mp3buf_size;
1693
+ mp3out = copy_buffer(gfc, mp3buf, buf_size, 0);
1694
+ }
1695
+ if (mp3out < 0)
1696
+ return mp3out; /* not enough buffer space */
1697
+ mp3buf += mp3out;
1698
+ mp3size += mp3out;
1699
+
1700
+ in_buffer[0] = esv->in_buffer_0;
1701
+ in_buffer[1] = esv->in_buffer_1;
1702
+
1703
+ mf_needed = calcNeeded(cfg);
1704
+
1705
+ mfbuf[0] = esv->mfbuf[0];
1706
+ mfbuf[1] = esv->mfbuf[1];
1707
+
1708
+ while (nsamples > 0) {
1709
+ sample_t const *in_buffer_ptr[2];
1710
+ int n_in = 0; /* number of input samples processed with fill_buffer */
1711
+ int n_out = 0; /* number of samples output with fill_buffer */
1712
+ /* n_in <> n_out if we are resampling */
1713
+
1714
+ in_buffer_ptr[0] = in_buffer[0];
1715
+ in_buffer_ptr[1] = in_buffer[1];
1716
+ /* copy in new samples into mfbuf, with resampling */
1717
+ fill_buffer(gfc, mfbuf, &in_buffer_ptr[0], nsamples, &n_in, &n_out);
1718
+
1719
+ /* compute ReplayGain of resampled input if requested */
1720
+ if (cfg->findReplayGain && !cfg->decode_on_the_fly)
1721
+ if (AnalyzeSamples
1722
+ (gfc->sv_rpg.rgdata, &mfbuf[0][esv->mf_size], &mfbuf[1][esv->mf_size],
1723
+ n_out,
1724
+ cfg->channels_out) == GAIN_ANALYSIS_ERROR)
1725
+ return -6;
1726
+
1727
+
1728
+
1729
+ /* update in_buffer counters */
1730
+ nsamples -= n_in;
1731
+ in_buffer[0] += n_in;
1732
+ if (cfg->channels_out == 2)
1733
+ in_buffer[1] += n_in;
1734
+
1735
+ /* update mfbuf[] counters */
1736
+ esv->mf_size += n_out;
1737
+ assert(esv->mf_size <= MFSIZE);
1738
+
1739
+ /* lame_encode_flush may have set gfc->mf_sample_to_encode to 0
1740
+ * so we have to reinitialize it here when that happened.
1741
+ */
1742
+ if (esv->mf_samples_to_encode < 1) {
1743
+ esv->mf_samples_to_encode = ENCDELAY + POSTDELAY;
1744
+ }
1745
+ esv->mf_samples_to_encode += n_out;
1746
+
1747
+
1748
+ if (esv->mf_size >= mf_needed) {
1749
+ /* encode the frame. */
1750
+ /* mp3buf = pointer to current location in buffer */
1751
+ /* mp3buf_size = size of original mp3 output buffer */
1752
+ /* = 0 if we should not worry about the */
1753
+ /* buffer size because calling program is */
1754
+ /* to lazy to compute it */
1755
+ /* mp3size = size of data written to buffer so far */
1756
+ /* mp3buf_size-mp3size = amount of space avalable */
1757
+
1758
+ int buf_size = mp3buf_size - mp3size;
1759
+ if (mp3buf_size == 0)
1760
+ buf_size = INT_MAX;
1761
+
1762
+ ret = lame_encode_mp3_frame(gfc, mfbuf[0], mfbuf[1], mp3buf, buf_size);
1763
+
1764
+ if (ret < 0)
1765
+ return ret;
1766
+ mp3buf += ret;
1767
+ mp3size += ret;
1768
+
1769
+ /* shift out old samples */
1770
+ esv->mf_size -= pcm_samples_per_frame;
1771
+ esv->mf_samples_to_encode -= pcm_samples_per_frame;
1772
+ for (ch = 0; ch < cfg->channels_out; ch++)
1773
+ for (i = 0; i < esv->mf_size; i++)
1774
+ mfbuf[ch][i] = mfbuf[ch][i + pcm_samples_per_frame];
1775
+ }
1776
+ }
1777
+ assert(nsamples == 0);
1778
+
1779
+ return mp3size;
1780
+ }
1781
+
1782
+ enum PCMSampleType {
1783
+ pcm_short_type, pcm_int_type, pcm_long_type, pcm_float_type, pcm_double_type
1784
+ };
1785
+
1786
+ static void
1787
+ lame_copy_inbuffer(lame_internal_flags *gfc,
1788
+ void const *l, void const *r, int nsamples,
1789
+ enum PCMSampleType pcm_type, int jump, FLOAT s) {
1790
+ SessionConfig_t const *const cfg = &gfc->cfg;
1791
+ EncStateVar_t *const esv = &gfc->sv_enc;
1792
+ sample_t *ib0 = esv->in_buffer_0;
1793
+ sample_t *ib1 = esv->in_buffer_1;
1794
+ FLOAT m[2][2];
1795
+
1796
+ /* Apply user defined re-scaling */
1797
+ m[0][0] = s * cfg->pcm_transform[0][0];
1798
+ m[0][1] = s * cfg->pcm_transform[0][1];
1799
+ m[1][0] = s * cfg->pcm_transform[1][0];
1800
+ m[1][1] = s * cfg->pcm_transform[1][1];
1801
+
1802
+ /* make a copy of input buffer, changing type to sample_t */
1803
+ #define COPY_AND_TRANSFORM(T) \
1804
+ { \
1805
+ T const *bl = l, *br = r; \
1806
+ int i; \
1807
+ for (i = 0; i < nsamples; i++) { \
1808
+ sample_t const xl = *bl; \
1809
+ sample_t const xr = *br; \
1810
+ sample_t const u = xl * m[0][0] + xr * m[0][1]; \
1811
+ sample_t const v = xl * m[1][0] + xr * m[1][1]; \
1812
+ ib0[i] = u; \
1813
+ ib1[i] = v; \
1814
+ bl += jump; \
1815
+ br += jump; \
1816
+ } \
1817
+ }
1818
+ switch (pcm_type) {
1819
+ case pcm_short_type: COPY_AND_TRANSFORM(short int);
1820
+ break;
1821
+ case pcm_int_type: COPY_AND_TRANSFORM(int);
1822
+ break;
1823
+ case pcm_long_type: COPY_AND_TRANSFORM(long int);
1824
+ break;
1825
+ case pcm_float_type: COPY_AND_TRANSFORM(float);
1826
+ break;
1827
+ case pcm_double_type: COPY_AND_TRANSFORM(double);
1828
+ break;
1829
+ }
1830
+ }
1831
+
1832
+
1833
+ static int
1834
+ lame_encode_buffer_template(lame_global_flags *gfp,
1835
+ void const *buffer_l, void const *buffer_r, const int nsamples,
1836
+ unsigned char *mp3buf, const int mp3buf_size,
1837
+ enum PCMSampleType pcm_type, int aa, FLOAT norm) {
1838
+ if (is_lame_global_flags_valid(gfp)) {
1839
+ lame_internal_flags *const gfc = gfp->internal_flags;
1840
+ if (is_lame_internal_flags_valid(gfc)) {
1841
+ SessionConfig_t const *const cfg = &gfc->cfg;
1842
+
1843
+ if (nsamples == 0)
1844
+ return 0;
1845
+
1846
+ if (update_inbuffer_size(gfc, nsamples) != 0) {
1847
+ return -2;
1848
+ }
1849
+ /* make a copy of input buffer, changing type to sample_t */
1850
+ if (cfg->channels_in > 1) {
1851
+ if (buffer_l == 0 || buffer_r == 0) {
1852
+ return 0;
1853
+ }
1854
+ lame_copy_inbuffer(gfc, buffer_l, buffer_r, nsamples, pcm_type, aa, norm);
1855
+ } else {
1856
+ if (buffer_l == 0) {
1857
+ return 0;
1858
+ }
1859
+ lame_copy_inbuffer(gfc, buffer_l, buffer_l, nsamples, pcm_type, aa, norm);
1860
+ }
1861
+
1862
+ return lame_encode_buffer_sample_t(gfc, nsamples, mp3buf, mp3buf_size);
1863
+ }
1864
+ }
1865
+ return -3;
1866
+ }
1867
+
1868
+ int
1869
+ lame_encode_buffer(lame_global_flags *gfp,
1870
+ const short int pcm_l[], const short int pcm_r[], const int nsamples,
1871
+ unsigned char *mp3buf, const int mp3buf_size) {
1872
+ return lame_encode_buffer_template(gfp, pcm_l, pcm_r, nsamples, mp3buf, mp3buf_size,
1873
+ pcm_short_type, 1, 1.0);
1874
+ }
1875
+
1876
+
1877
+ int
1878
+ lame_encode_buffer_float(lame_global_flags *gfp,
1879
+ const float pcm_l[], const float pcm_r[], const int nsamples,
1880
+ unsigned char *mp3buf, const int mp3buf_size) {
1881
+ /* input is assumed to be normalized to +/- 32768 for full scale */
1882
+ return lame_encode_buffer_template(gfp, pcm_l, pcm_r, nsamples, mp3buf, mp3buf_size,
1883
+ pcm_float_type, 1, 1.0);
1884
+ }
1885
+
1886
+
1887
+ int
1888
+ lame_encode_buffer_ieee_float(lame_t gfp,
1889
+ const float pcm_l[], const float pcm_r[], const int nsamples,
1890
+ unsigned char *mp3buf, const int mp3buf_size) {
1891
+ /* input is assumed to be normalized to +/- 1.0 for full scale */
1892
+ return lame_encode_buffer_template(gfp, pcm_l, pcm_r, nsamples, mp3buf, mp3buf_size,
1893
+ pcm_float_type, 1, 32767.0);
1894
+ }
1895
+
1896
+
1897
+ int
1898
+ lame_encode_buffer_interleaved_ieee_float(lame_t gfp,
1899
+ const float pcm[], const int nsamples,
1900
+ unsigned char *mp3buf, const int mp3buf_size) {
1901
+ /* input is assumed to be normalized to +/- 1.0 for full scale */
1902
+ return lame_encode_buffer_template(gfp, pcm, pcm + 1, nsamples, mp3buf, mp3buf_size,
1903
+ pcm_float_type, 2, 32767.0);
1904
+ }
1905
+
1906
+
1907
+ int
1908
+ lame_encode_buffer_ieee_double(lame_t gfp,
1909
+ const double pcm_l[], const double pcm_r[], const int nsamples,
1910
+ unsigned char *mp3buf, const int mp3buf_size) {
1911
+ /* input is assumed to be normalized to +/- 1.0 for full scale */
1912
+ return lame_encode_buffer_template(gfp, pcm_l, pcm_r, nsamples, mp3buf, mp3buf_size,
1913
+ pcm_double_type, 1, 32767.0);
1914
+ }
1915
+
1916
+
1917
+ int
1918
+ lame_encode_buffer_interleaved_ieee_double(lame_t gfp,
1919
+ const double pcm[], const int nsamples,
1920
+ unsigned char *mp3buf, const int mp3buf_size) {
1921
+ /* input is assumed to be normalized to +/- 1.0 for full scale */
1922
+ return lame_encode_buffer_template(gfp, pcm, pcm + 1, nsamples, mp3buf, mp3buf_size,
1923
+ pcm_double_type, 2, 32767.0);
1924
+ }
1925
+
1926
+
1927
+ int
1928
+ lame_encode_buffer_int(lame_global_flags *gfp,
1929
+ const int pcm_l[], const int pcm_r[], const int nsamples,
1930
+ unsigned char *mp3buf, const int mp3buf_size) {
1931
+ /* input is assumed to be normalized to +/- MAX_INT for full scale */
1932
+ FLOAT const norm = (1.0 / (1L << (8 * sizeof(int) - 16)));
1933
+ return lame_encode_buffer_template(gfp, pcm_l, pcm_r, nsamples, mp3buf, mp3buf_size,
1934
+ pcm_int_type, 1, norm);
1935
+ }
1936
+
1937
+
1938
+ int
1939
+ lame_encode_buffer_long2(lame_global_flags *gfp,
1940
+ const long pcm_l[], const long pcm_r[], const int nsamples,
1941
+ unsigned char *mp3buf, const int mp3buf_size) {
1942
+ /* input is assumed to be normalized to +/- MAX_LONG for full scale */
1943
+ FLOAT const norm = (1.0 / (1L << (8 * sizeof(long) - 16)));
1944
+ return lame_encode_buffer_template(gfp, pcm_l, pcm_r, nsamples, mp3buf, mp3buf_size,
1945
+ pcm_long_type, 1, norm);
1946
+ }
1947
+
1948
+
1949
+ int
1950
+ lame_encode_buffer_long(lame_global_flags *gfp,
1951
+ const long pcm_l[], const long pcm_r[], const int nsamples,
1952
+ unsigned char *mp3buf, const int mp3buf_size) {
1953
+ /* input is assumed to be normalized to +/- 32768 for full scale */
1954
+ return lame_encode_buffer_template(gfp, pcm_l, pcm_r, nsamples, mp3buf, mp3buf_size,
1955
+ pcm_long_type, 1, 1.0);
1956
+ }
1957
+
1958
+
1959
+ int
1960
+ lame_encode_buffer_interleaved(lame_global_flags *gfp,
1961
+ short int pcm[], int nsamples,
1962
+ unsigned char *mp3buf, int mp3buf_size) {
1963
+ /* input is assumed to be normalized to +/- MAX_SHORT for full scale */
1964
+ return lame_encode_buffer_template(gfp, pcm, pcm + 1, nsamples, mp3buf, mp3buf_size,
1965
+ pcm_short_type, 2, 1.0);
1966
+ }
1967
+
1968
+
1969
+ int
1970
+ lame_encode_buffer_interleaved_int(lame_t gfp,
1971
+ const int pcm[], const int nsamples,
1972
+ unsigned char *mp3buf, const int mp3buf_size) {
1973
+ /* input is assumed to be normalized to +/- MAX(int) for full scale */
1974
+ FLOAT const norm = (1.0 / (1L << (8 * sizeof(int) - 16)));
1975
+ return lame_encode_buffer_template(gfp, pcm, pcm + 1, nsamples, mp3buf, mp3buf_size,
1976
+ pcm_int_type, 2, norm);
1977
+ }
1978
+
1979
+
1980
+ /*****************************************************************
1981
+ Flush mp3 buffer, pad with ancillary data so last frame is complete.
1982
+ Reset reservoir size to 0
1983
+ but keep all PCM samples and MDCT data in memory
1984
+ This option is used to break a large file into several mp3 files
1985
+ that when concatenated together will decode with no gaps
1986
+ Because we set the reservoir=0, they will also decode seperately
1987
+ with no errors.
1988
+ *********************************************************************/
1989
+ int
1990
+ lame_encode_flush_nogap(lame_global_flags *gfp, unsigned char *mp3buffer, int mp3buffer_size) {
1991
+ int rc = -3;
1992
+ if (is_lame_global_flags_valid(gfp)) {
1993
+ lame_internal_flags *const gfc = gfp->internal_flags;
1994
+ if (is_lame_internal_flags_valid(gfc)) {
1995
+ flush_bitstream(gfc);
1996
+ /* if user specifed buffer size = 0, dont check size */
1997
+ if (mp3buffer_size == 0)
1998
+ mp3buffer_size = INT_MAX;
1999
+ rc = copy_buffer(gfc, mp3buffer, mp3buffer_size, 1);
2000
+ save_gain_values(gfc);
2001
+ }
2002
+ }
2003
+ return rc;
2004
+ }
2005
+
2006
+
2007
+ /* called by lame_init_params. You can also call this after flush_nogap
2008
+ if you want to write new id3v2 and Xing VBR tags into the bitstream */
2009
+ int
2010
+ lame_init_bitstream(lame_global_flags *gfp) {
2011
+ if (is_lame_global_flags_valid(gfp)) {
2012
+ lame_internal_flags *const gfc = gfp->internal_flags;
2013
+ if (gfc != 0) {
2014
+ gfc->ov_enc.frame_number = 0;
2015
+
2016
+ if (gfp->write_id3tag_automatic) {
2017
+ (void) id3tag_write_v2(gfp);
2018
+ }
2019
+ /* initialize histogram data optionally used by frontend */
2020
+ memset(gfc->ov_enc.bitrate_channelmode_hist, 0,
2021
+ sizeof(gfc->ov_enc.bitrate_channelmode_hist));
2022
+ memset(gfc->ov_enc.bitrate_blocktype_hist, 0,
2023
+ sizeof(gfc->ov_enc.bitrate_blocktype_hist));
2024
+
2025
+ gfc->ov_rpg.PeakSample = 0.0;
2026
+
2027
+ /* Write initial VBR Header to bitstream and init VBR data */
2028
+ if (gfc->cfg.write_lame_tag)
2029
+ (void) InitVbrTag(gfp);
2030
+
2031
+
2032
+ return 0;
2033
+ }
2034
+ }
2035
+ return -3;
2036
+ }
2037
+
2038
+
2039
+ /*****************************************************************/
2040
+ /* flush internal PCM sample buffers, then mp3 buffers */
2041
+ /* then write id3 v1 tags into bitstream. */
2042
+ /*****************************************************************/
2043
+
2044
+ int
2045
+ lame_encode_flush(lame_global_flags *gfp, unsigned char *mp3buffer, int mp3buffer_size) {
2046
+ lame_internal_flags *gfc;
2047
+ SessionConfig_t const *cfg;
2048
+ EncStateVar_t *esv;
2049
+ short int buffer[2][1152];
2050
+ int imp3 = 0, mp3count, mp3buffer_size_remaining;
2051
+
2052
+ /* we always add POSTDELAY=288 padding to make sure granule with real
2053
+ * data can be complety decoded (because of 50% overlap with next granule */
2054
+ int end_padding;
2055
+ int frames_left;
2056
+ int samples_to_encode;
2057
+ int pcm_samples_per_frame;
2058
+ int mf_needed;
2059
+ int is_resampling_necessary;
2060
+ double resample_ratio = 1;
2061
+
2062
+ if (!is_lame_global_flags_valid(gfp)) {
2063
+ return -3;
2064
+ }
2065
+ gfc = gfp->internal_flags;
2066
+ if (!is_lame_internal_flags_valid(gfc)) {
2067
+ return -3;
2068
+ }
2069
+ cfg = &gfc->cfg;
2070
+ esv = &gfc->sv_enc;
2071
+
2072
+ /* Was flush already called? */
2073
+ if (esv->mf_samples_to_encode < 1) {
2074
+ return 0;
2075
+ }
2076
+ pcm_samples_per_frame = 576 * cfg->mode_gr;
2077
+ mf_needed = calcNeeded(cfg);
2078
+
2079
+ samples_to_encode = esv->mf_samples_to_encode - POSTDELAY;
2080
+
2081
+ memset(buffer, 0, sizeof(buffer));
2082
+ mp3count = 0;
2083
+
2084
+ is_resampling_necessary = isResamplingNecessary(cfg);
2085
+ if (is_resampling_necessary) {
2086
+ resample_ratio = (double) cfg->samplerate_in / (double) cfg->samplerate_out;
2087
+ /* delay due to resampling; needs to be fixed, if resampling code gets changed */
2088
+ samples_to_encode += 16. / resample_ratio;
2089
+ }
2090
+ end_padding = pcm_samples_per_frame - (samples_to_encode % pcm_samples_per_frame);
2091
+ if (end_padding < 576)
2092
+ end_padding += pcm_samples_per_frame;
2093
+ gfc->ov_enc.encoder_padding = end_padding;
2094
+
2095
+ frames_left = (samples_to_encode + end_padding) / pcm_samples_per_frame;
2096
+ while (frames_left > 0 && imp3 >= 0) {
2097
+ int const frame_num = gfc->ov_enc.frame_number;
2098
+ int bunch = mf_needed - esv->mf_size;
2099
+
2100
+ bunch *= resample_ratio;
2101
+ if (bunch > 1152) bunch = 1152;
2102
+ if (bunch < 1) bunch = 1;
2103
+
2104
+ mp3buffer_size_remaining = mp3buffer_size - mp3count;
2105
+
2106
+ /* if user specifed buffer size = 0, dont check size */
2107
+ if (mp3buffer_size == 0)
2108
+ mp3buffer_size_remaining = 0;
2109
+
2110
+ /* send in a frame of 0 padding until all internal sample buffers
2111
+ * are flushed
2112
+ */
2113
+ imp3 = lame_encode_buffer(gfp, buffer[0], buffer[1], bunch,
2114
+ mp3buffer, mp3buffer_size_remaining);
2115
+
2116
+ mp3buffer += imp3;
2117
+ mp3count += imp3;
2118
+ { /* even a single pcm sample can produce several frames!
2119
+ * for example: 1 Hz input file resampled to 8 kHz mpeg2.5
2120
+ */
2121
+ int const new_frames = gfc->ov_enc.frame_number - frame_num;
2122
+ if (new_frames > 0)
2123
+ frames_left -= new_frames;
2124
+ }
2125
+ }
2126
+ /* Set esv->mf_samples_to_encode to 0, so we may detect
2127
+ * and break loops calling it more than once in a row.
2128
+ */
2129
+ esv->mf_samples_to_encode = 0;
2130
+
2131
+ if (imp3 < 0) {
2132
+ /* some type of fatal error */
2133
+ return imp3;
2134
+ }
2135
+
2136
+ mp3buffer_size_remaining = mp3buffer_size - mp3count;
2137
+ /* if user specifed buffer size = 0, dont check size */
2138
+ if (mp3buffer_size == 0)
2139
+ mp3buffer_size_remaining = INT_MAX;
2140
+
2141
+ /* mp3 related stuff. bit buffer might still contain some mp3 data */
2142
+ flush_bitstream(gfc);
2143
+ imp3 = copy_buffer(gfc, mp3buffer, mp3buffer_size_remaining, 1);
2144
+ save_gain_values(gfc);
2145
+ if (imp3 < 0) {
2146
+ /* some type of fatal error */
2147
+ return imp3;
2148
+ }
2149
+ mp3buffer += imp3;
2150
+ mp3count += imp3;
2151
+ mp3buffer_size_remaining = mp3buffer_size - mp3count;
2152
+ /* if user specifed buffer size = 0, dont check size */
2153
+ if (mp3buffer_size == 0)
2154
+ mp3buffer_size_remaining = INT_MAX;
2155
+
2156
+ if (gfp->write_id3tag_automatic) {
2157
+ /* write a id3 tag to the bitstream */
2158
+ (void) id3tag_write_v1(gfp);
2159
+
2160
+ imp3 = copy_buffer(gfc, mp3buffer, mp3buffer_size_remaining, 0);
2161
+
2162
+ if (imp3 < 0) {
2163
+ return imp3;
2164
+ }
2165
+ mp3count += imp3;
2166
+ }
2167
+ #if 0
2168
+ {
2169
+ int const ed = gfc->ov_enc.encoder_delay;
2170
+ int const ep = gfc->ov_enc.encoder_padding;
2171
+ int const ns = (gfc->ov_enc.frame_number * pcm_samples_per_frame) - (ed + ep);
2172
+ double duration = ns;
2173
+ duration /= cfg->samplerate_out;
2174
+ MSGF(gfc, "frames=%d\n", gfc->ov_enc.frame_number);
2175
+ MSGF(gfc, "pcm_samples_per_frame=%d\n", pcm_samples_per_frame);
2176
+ MSGF(gfc, "encoder delay=%d\n", ed);
2177
+ MSGF(gfc, "encoder padding=%d\n", ep);
2178
+ MSGF(gfc, "sample count=%d (%g)\n", ns, cfg->samplerate_in * duration);
2179
+ MSGF(gfc, "duration=%g sec\n", duration);
2180
+ }
2181
+ #endif
2182
+ return mp3count;
2183
+ }
2184
+
2185
+ /***********************************************************************
2186
+ *
2187
+ * lame_close ()
2188
+ *
2189
+ * frees internal buffers
2190
+ *
2191
+ ***********************************************************************/
2192
+
2193
+ int
2194
+ lame_close(lame_global_flags *gfp) {
2195
+ int ret = 0;
2196
+ if (gfp && gfp->class_id == LAME_ID) {
2197
+ lame_internal_flags *const gfc = gfp->internal_flags;
2198
+ gfp->class_id = 0;
2199
+ if (NULL == gfc || gfc->class_id != LAME_ID) {
2200
+ ret = -3;
2201
+ }
2202
+ if (NULL != gfc) {
2203
+ gfc->lame_init_params_successful = 0;
2204
+ gfc->class_id = 0;
2205
+ /* this routine will free all malloc'd data in gfc, and then free gfc: */
2206
+ freegfc(gfc);
2207
+ gfp->internal_flags = NULL;
2208
+ }
2209
+ if (gfp->lame_allocated_gfp) {
2210
+ gfp->lame_allocated_gfp = 0;
2211
+ free(gfp);
2212
+ }
2213
+ }
2214
+ return ret;
2215
+ }
2216
+
2217
+ /*****************************************************************/
2218
+ /* flush internal mp3 buffers, and free internal buffers */
2219
+ /*****************************************************************/
2220
+ #if DEPRECATED_OR_OBSOLETE_CODE_REMOVED
2221
+
2222
+ int CDECL
2223
+ lame_encode_finish(lame_global_flags *gfp, unsigned char *mp3buffer, int mp3buffer_size);
2224
+
2225
+ #else
2226
+ #endif
2227
+
2228
+ int
2229
+ lame_encode_finish(lame_global_flags *gfp, unsigned char *mp3buffer, int mp3buffer_size) {
2230
+ int const ret = lame_encode_flush(gfp, mp3buffer, mp3buffer_size);
2231
+
2232
+ (void) lame_close(gfp);
2233
+
2234
+ return ret;
2235
+ }
2236
+
2237
+ /*****************************************************************/
2238
+ /* write VBR Xing header, and ID3 version 1 tag, if asked for */
2239
+ /*****************************************************************/
2240
+ void lame_mp3_tags_fid(lame_global_flags *gfp, FILE *fpStream);
2241
+
2242
+ void
2243
+ lame_mp3_tags_fid(lame_global_flags *gfp, FILE *fpStream) {
2244
+ lame_internal_flags *gfc;
2245
+ SessionConfig_t const *cfg;
2246
+ if (!is_lame_global_flags_valid(gfp)) {
2247
+ return;
2248
+ }
2249
+ gfc = gfp->internal_flags;
2250
+ if (!is_lame_internal_flags_valid(gfc)) {
2251
+ return;
2252
+ }
2253
+ cfg = &gfc->cfg;
2254
+ if (!cfg->write_lame_tag) {
2255
+ return;
2256
+ }
2257
+ /* Write Xing header again */
2258
+ if (fpStream && !fseek(fpStream, 0, SEEK_SET)) {
2259
+ int rc = PutVbrTag(gfp, fpStream);
2260
+ switch (rc) {
2261
+ default:
2262
+ /* OK */
2263
+ break;
2264
+
2265
+ case -1:
2266
+ ERRORF(gfc, "Error: could not update LAME tag.\n");
2267
+ break;
2268
+
2269
+ case -2:
2270
+ ERRORF(gfc, "Error: could not update LAME tag, file not seekable.\n");
2271
+ break;
2272
+
2273
+ case -3:
2274
+ ERRORF(gfc, "Error: could not update LAME tag, file not readable.\n");
2275
+ break;
2276
+ }
2277
+ }
2278
+ }
2279
+
2280
+
2281
+ static int
2282
+ lame_init_internal_flags(lame_internal_flags *gfc) {
2283
+ if (NULL == gfc)
2284
+ return -1;
2285
+
2286
+ gfc->cfg.vbr_min_bitrate_index = 1; /* not 0 ????? */
2287
+ gfc->cfg.vbr_max_bitrate_index = 13; /* not 14 ????? */
2288
+ gfc->cfg.decode_on_the_fly = 0;
2289
+ gfc->cfg.findReplayGain = 0;
2290
+ gfc->cfg.findPeakSample = 0;
2291
+
2292
+ gfc->sv_qnt.OldValue[0] = 180;
2293
+ gfc->sv_qnt.OldValue[1] = 180;
2294
+ gfc->sv_qnt.CurrentStep[0] = 4;
2295
+ gfc->sv_qnt.CurrentStep[1] = 4;
2296
+ gfc->sv_qnt.masking_lower = 1;
2297
+
2298
+ /* The reason for
2299
+ * int mf_samples_to_encode = ENCDELAY + POSTDELAY;
2300
+ * ENCDELAY = internal encoder delay. And then we have to add POSTDELAY=288
2301
+ * because of the 50% MDCT overlap. A 576 MDCT granule decodes to
2302
+ * 1152 samples. To synthesize the 576 samples centered under this granule
2303
+ * we need the previous granule for the first 288 samples (no problem), and
2304
+ * the next granule for the next 288 samples (not possible if this is last
2305
+ * granule). So we need to pad with 288 samples to make sure we can
2306
+ * encode the 576 samples we are interested in.
2307
+ */
2308
+ gfc->sv_enc.mf_samples_to_encode = ENCDELAY + POSTDELAY;
2309
+ gfc->sv_enc.mf_size = ENCDELAY - MDCTDELAY; /* we pad input with this many 0's */
2310
+ gfc->ov_enc.encoder_padding = 0;
2311
+ gfc->ov_enc.encoder_delay = ENCDELAY;
2312
+
2313
+ gfc->ov_rpg.RadioGain = 0;
2314
+ gfc->ov_rpg.noclipGainChange = 0;
2315
+ gfc->ov_rpg.noclipScale = -1.0;
2316
+
2317
+ gfc->ATH = lame_calloc(ATH_t, 1);
2318
+ if (NULL == gfc->ATH)
2319
+ return -2; /* maybe error codes should be enumerated in lame.h ?? */
2320
+
2321
+ gfc->sv_rpg.rgdata = lame_calloc(replaygain_t, 1);
2322
+ if (NULL == gfc->sv_rpg.rgdata) {
2323
+ return -2;
2324
+ }
2325
+ return 0;
2326
+ }
2327
+
2328
+ /* initialize mp3 encoder */
2329
+ #if DEPRECATED_OR_OBSOLETE_CODE_REMOVED
2330
+
2331
+ static
2332
+ #else
2333
+ #endif
2334
+ int
2335
+ lame_init_old(lame_global_flags *gfp) {
2336
+ disable_FPE(); /* disable floating point exceptions */
2337
+
2338
+ memset(gfp, 0, sizeof(lame_global_flags));
2339
+
2340
+ gfp->class_id = LAME_ID;
2341
+
2342
+ /* Global flags. set defaults here for non-zero values */
2343
+ /* see lame.h for description */
2344
+ /* set integer values to -1 to mean that LAME will compute the
2345
+ * best value, UNLESS the calling program as set it
2346
+ * (and the value is no longer -1)
2347
+ */
2348
+ gfp->strict_ISO = MDB_MAXIMUM;
2349
+
2350
+ gfp->mode = NOT_SET;
2351
+ gfp->original = 1;
2352
+ gfp->samplerate_in = 44100;
2353
+ gfp->num_channels = 2;
2354
+ gfp->num_samples = MAX_U_32_NUM;
2355
+
2356
+ gfp->write_lame_tag = 1;
2357
+ gfp->quality = -1;
2358
+ gfp->short_blocks = short_block_not_set;
2359
+ gfp->subblock_gain = -1;
2360
+
2361
+ gfp->lowpassfreq = 0;
2362
+ gfp->highpassfreq = 0;
2363
+ gfp->lowpasswidth = -1;
2364
+ gfp->highpasswidth = -1;
2365
+
2366
+ gfp->VBR = vbr_off;
2367
+ gfp->VBR_q = 4;
2368
+ gfp->VBR_mean_bitrate_kbps = 128;
2369
+ gfp->VBR_min_bitrate_kbps = 0;
2370
+ gfp->VBR_max_bitrate_kbps = 0;
2371
+ gfp->VBR_hard_min = 0;
2372
+
2373
+ gfp->quant_comp = -1;
2374
+ gfp->quant_comp_short = -1;
2375
+
2376
+ gfp->msfix = -1;
2377
+
2378
+ gfp->attackthre = -1;
2379
+ gfp->attackthre_s = -1;
2380
+
2381
+ gfp->scale = 1;
2382
+ gfp->scale_left = 1;
2383
+ gfp->scale_right = 1;
2384
+
2385
+ gfp->ATHcurve = -1;
2386
+ gfp->ATHtype = -1; /* default = -1 = set in lame_init_params */
2387
+ /* 2 = equal loudness curve */
2388
+ gfp->athaa_sensitivity = 0.0; /* no offset */
2389
+ gfp->athaa_type = -1;
2390
+ gfp->useTemporal = -1;
2391
+ gfp->interChRatio = -1;
2392
+
2393
+ gfp->findReplayGain = 0;
2394
+ gfp->decode_on_the_fly = 0;
2395
+
2396
+ gfp->asm_optimizations.mmx = 1;
2397
+ gfp->asm_optimizations.amd3dnow = 1;
2398
+ gfp->asm_optimizations.sse = 1;
2399
+
2400
+ gfp->preset = 0;
2401
+
2402
+ gfp->write_id3tag_automatic = 1;
2403
+
2404
+ gfp->report.debugf = &lame_report_def;
2405
+ gfp->report.errorf = &lame_report_def;
2406
+ gfp->report.msgf = &lame_report_def;
2407
+
2408
+ gfp->internal_flags = lame_calloc(lame_internal_flags, 1);
2409
+
2410
+ if (lame_init_internal_flags(gfp->internal_flags) < 0) {
2411
+ freegfc(gfp->internal_flags);
2412
+ gfp->internal_flags = 0;
2413
+ return -1;
2414
+ }
2415
+ return 0;
2416
+ }
2417
+
2418
+
2419
+ lame_global_flags *
2420
+ lame_init(void) {
2421
+ lame_global_flags *gfp;
2422
+ int ret;
2423
+
2424
+ init_log_table();
2425
+
2426
+ gfp = lame_calloc(lame_global_flags, 1);
2427
+ if (gfp == NULL)
2428
+ return NULL;
2429
+
2430
+ ret = lame_init_old(gfp);
2431
+ if (ret != 0) {
2432
+ free(gfp);
2433
+ return NULL;
2434
+ }
2435
+
2436
+ gfp->lame_allocated_gfp = 1;
2437
+ return gfp;
2438
+ }
2439
+
2440
+
2441
+ /***********************************************************************
2442
+ *
2443
+ * some simple statistics
2444
+ *
2445
+ * Robert Hegemann 2000-10-11
2446
+ *
2447
+ ***********************************************************************/
2448
+
2449
+ /* histogram of used bitrate indexes:
2450
+ * One has to weight them to calculate the average bitrate in kbps
2451
+ *
2452
+ * bitrate indices:
2453
+ * there are 14 possible bitrate indices, 0 has the special meaning
2454
+ * "free format" which is not possible to mix with VBR and 15 is forbidden
2455
+ * anyway.
2456
+ *
2457
+ * stereo modes:
2458
+ * 0: LR number of left-right encoded frames
2459
+ * 1: LR-I number of left-right and intensity encoded frames
2460
+ * 2: MS number of mid-side encoded frames
2461
+ * 3: MS-I number of mid-side and intensity encoded frames
2462
+ *
2463
+ * 4: number of encoded frames
2464
+ *
2465
+ */
2466
+
2467
+ void
2468
+ lame_bitrate_kbps(const lame_global_flags *gfp, int bitrate_kbps[14]) {
2469
+ if (is_lame_global_flags_valid(gfp)) {
2470
+ lame_internal_flags const *const gfc = gfp->internal_flags;
2471
+ if (is_lame_internal_flags_valid(gfc)) {
2472
+ SessionConfig_t const *const cfg = &gfc->cfg;
2473
+ int i;
2474
+ if (cfg->free_format) {
2475
+ for (i = 0; i < 14; i++)
2476
+ bitrate_kbps[i] = -1;
2477
+ bitrate_kbps[0] = cfg->avg_bitrate;
2478
+ } else {
2479
+ for (i = 0; i < 14; i++)
2480
+ bitrate_kbps[i] = bitrate_table[cfg->version][i + 1];
2481
+ }
2482
+ }
2483
+ }
2484
+ }
2485
+
2486
+
2487
+ void
2488
+ lame_bitrate_hist(const lame_global_flags *gfp, int bitrate_count[14]) {
2489
+ if (is_lame_global_flags_valid(gfp)) {
2490
+ lame_internal_flags const *const gfc = gfp->internal_flags;
2491
+ if (is_lame_internal_flags_valid(gfc)) {
2492
+ SessionConfig_t const *const cfg = &gfc->cfg;
2493
+ EncResult_t const *const eov = &gfc->ov_enc;
2494
+ int i;
2495
+
2496
+ if (cfg->free_format) {
2497
+ for (i = 0; i < 14; i++) {
2498
+ bitrate_count[i] = 0;
2499
+ }
2500
+ bitrate_count[0] = eov->bitrate_channelmode_hist[0][4];
2501
+ } else {
2502
+ for (i = 0; i < 14; i++) {
2503
+ bitrate_count[i] = eov->bitrate_channelmode_hist[i + 1][4];
2504
+ }
2505
+ }
2506
+ }
2507
+ }
2508
+ }
2509
+
2510
+
2511
+ void
2512
+ lame_stereo_mode_hist(const lame_global_flags *gfp, int stmode_count[4]) {
2513
+ if (is_lame_global_flags_valid(gfp)) {
2514
+ lame_internal_flags const *const gfc = gfp->internal_flags;
2515
+ if (is_lame_internal_flags_valid(gfc)) {
2516
+ EncResult_t const *const eov = &gfc->ov_enc;
2517
+ int i;
2518
+
2519
+ for (i = 0; i < 4; i++) {
2520
+ stmode_count[i] = eov->bitrate_channelmode_hist[15][i];
2521
+ }
2522
+ }
2523
+ }
2524
+ }
2525
+
2526
+
2527
+ void
2528
+ lame_bitrate_stereo_mode_hist(const lame_global_flags *gfp, int bitrate_stmode_count[14][4]) {
2529
+ if (is_lame_global_flags_valid(gfp)) {
2530
+ lame_internal_flags const *const gfc = gfp->internal_flags;
2531
+ if (is_lame_internal_flags_valid(gfc)) {
2532
+ SessionConfig_t const *const cfg = &gfc->cfg;
2533
+ EncResult_t const *const eov = &gfc->ov_enc;
2534
+ int i;
2535
+ int j;
2536
+
2537
+ if (cfg->free_format) {
2538
+ for (j = 0; j < 14; j++)
2539
+ for (i = 0; i < 4; i++) {
2540
+ bitrate_stmode_count[j][i] = 0;
2541
+ }
2542
+ for (i = 0; i < 4; i++) {
2543
+ bitrate_stmode_count[0][i] = eov->bitrate_channelmode_hist[0][i];
2544
+ }
2545
+ } else {
2546
+ for (j = 0; j < 14; j++) {
2547
+ for (i = 0; i < 4; i++) {
2548
+ bitrate_stmode_count[j][i] = eov->bitrate_channelmode_hist[j + 1][i];
2549
+ }
2550
+ }
2551
+ }
2552
+ }
2553
+ }
2554
+ }
2555
+
2556
+
2557
+ void
2558
+ lame_block_type_hist(const lame_global_flags *gfp, int btype_count[6]) {
2559
+ if (is_lame_global_flags_valid(gfp)) {
2560
+ lame_internal_flags const *const gfc = gfp->internal_flags;
2561
+ if (is_lame_internal_flags_valid(gfc)) {
2562
+ EncResult_t const *const eov = &gfc->ov_enc;
2563
+ int i;
2564
+
2565
+ for (i = 0; i < 6; ++i) {
2566
+ btype_count[i] = eov->bitrate_blocktype_hist[15][i];
2567
+ }
2568
+ }
2569
+ }
2570
+ }
2571
+
2572
+
2573
+ void
2574
+ lame_bitrate_block_type_hist(const lame_global_flags *gfp, int bitrate_btype_count[14][6]) {
2575
+ if (is_lame_global_flags_valid(gfp)) {
2576
+ lame_internal_flags const *const gfc = gfp->internal_flags;
2577
+ if (is_lame_internal_flags_valid(gfc)) {
2578
+ SessionConfig_t const *const cfg = &gfc->cfg;
2579
+ EncResult_t const *const eov = &gfc->ov_enc;
2580
+ int i, j;
2581
+
2582
+ if (cfg->free_format) {
2583
+ for (j = 0; j < 14; ++j) {
2584
+ for (i = 0; i < 6; ++i) {
2585
+ bitrate_btype_count[j][i] = 0;
2586
+ }
2587
+ }
2588
+ for (i = 0; i < 6; ++i) {
2589
+ bitrate_btype_count[0][i] = eov->bitrate_blocktype_hist[0][i];
2590
+ }
2591
+ } else {
2592
+ for (j = 0; j < 14; ++j) {
2593
+ for (i = 0; i < 6; ++i) {
2594
+ bitrate_btype_count[j][i] = eov->bitrate_blocktype_hist[j + 1][i];
2595
+ }
2596
+ }
2597
+ }
2598
+ }
2599
+ }
2600
+ }
2601
+
2602
+ /* end of lame.c */