From d74d96ea15bc9c587f37391e108b3942e96dba41 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 15 Feb 2024 16:08:19 +0800 Subject: [PATCH] [mobile] remove ijk soft decode --- .../fongmi/android/tv/ui/dialog/SiteDialog.java | 3 +-- .../com/fongmi/android/tv/db/AppDatabase.java | 9 +++------ .../com/fongmi/android/tv/player/Players.java | 2 +- .../android/tv/ui/activity/LiveActivity.java | 1 + .../android/tv/ui/activity/VideoActivity.java | 3 ++- .../android/tv/ui/dialog/ControlDialog.java | 5 +++-- .../android/tv/ui/fragment/SettingFragment.java | 3 +-- .../ijk/media/player/ui/IjkVideoView.java | 16 +++++----------- 8 files changed, 17 insertions(+), 25 deletions(-) diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java index 9c2a180e7..730ba76aa 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java @@ -93,8 +93,7 @@ public class SiteDialog implements SiteAdapter.OnClickListener { if (decoration != null) binding.recycler.removeItemDecoration(decoration); binding.recycler.addItemDecoration(decoration = new SpaceItemDecoration(getCount(), 16)); binding.recycler.setLayoutManager(new GridLayoutManager(dialog.getContext(), getCount())); - if (!binding.mode.hasFocus()) - binding.recycler.post(() -> binding.recycler.scrollToPosition(VodConfig.getHomeIndex())); + if (!binding.mode.hasFocus()) binding.recycler.post(() -> binding.recycler.scrollToPosition(VodConfig.getHomeIndex())); } private void setDialog() { diff --git a/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java b/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java index 3bbcc2832..0aa0a2b54 100644 --- a/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java +++ b/app/src/main/java/com/fongmi/android/tv/db/AppDatabase.java @@ -80,12 +80,9 @@ public abstract class AppDatabase extends RoomDatabase { File wal = new File(Path.tv(), NAME + "-wal"); File shm = new File(Path.tv(), NAME + "-shm"); File pref = new File(Path.tv(), NAME + "-pref"); - if (db.exists()) - Path.move(db, App.get().getDatabasePath(db.getName()).getAbsoluteFile()); - if (wal.exists()) - Path.move(wal, App.get().getDatabasePath(wal.getName()).getAbsoluteFile()); - if (shm.exists()) - Path.move(shm, App.get().getDatabasePath(shm.getName()).getAbsoluteFile()); + if (db.exists()) Path.move(db, App.get().getDatabasePath(db.getName()).getAbsoluteFile()); + if (wal.exists()) Path.move(wal, App.get().getDatabasePath(wal.getName()).getAbsoluteFile()); + if (shm.exists()) Path.move(shm, App.get().getDatabasePath(shm.getName()).getAbsoluteFile()); if (pref.exists()) Prefers.restore(pref); App.post(callback::success); }); diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index ec77f82e8..9e7bbb053 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -134,7 +134,7 @@ public class Players implements Player.Listener, IMediaPlayer.Listener, Analytic } private void setupIjk(IjkVideoView view) { - ijkPlayer = view.render(Setting.getRender()).decode(decode); + ijkPlayer = view.render(Setting.getRender()); ijkPlayer.addListener(this); ijkPlayer.setPlayer(player); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index f6eedb4ab..ca6e2ae3f 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -223,6 +223,7 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List mBinding.control.action.player.setText(mPlayers.getPlayerText()); getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE); + mBinding.control.action.decode.setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); mBinding.video.addOnLayoutChangeListener((view, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> mPiP.update(getActivity(), view)); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 80835c8c0..cebff9a2b 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -387,7 +387,8 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo mBinding.control.action.player.setText(mPlayers.getPlayerText()); getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE); - if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.updatePlayer(); + mBinding.control.action.decode.setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); + if (mControlDialog != null && mControlDialog.isVisible()) mControlDialog.setPlayer(); } private void setDecodeView() { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java index aa8c9df58..d196458f4 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/ControlDialog.java @@ -89,7 +89,6 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis if (player == null) dismiss(); if (player == null) return; binding.speed.setValue(Math.max(player.getSpeed(), 0.5f)); - binding.player.setText(parent.control.action.player.getText()); binding.decode.setText(parent.control.action.decode.getText()); binding.ending.setText(parent.control.action.ending.getText()); binding.opening.setText(parent.control.action.opening.getText()); @@ -97,6 +96,7 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis binding.timer.setActivated(Timer.get().isRunning()); setTrackVisible(); setScaleText(); + setPlayer(); setParse(); } @@ -174,8 +174,9 @@ public class ControlDialog extends BaseDialog implements ParseAdapter.OnClickLis binding.parse.getAdapter().notifyItemRangeChanged(0, binding.parse.getAdapter().getItemCount()); } - public void updatePlayer() { + public void setPlayer() { binding.player.setText(parent.control.action.player.getText()); + binding.decode.setVisibility(parent.control.action.decode.getVisibility()); } public void setParseVisible(boolean visible) { diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java index 38b8fcfb9..2d24a1357 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java @@ -369,8 +369,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit @Override public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); - if (resultCode != Activity.RESULT_OK || requestCode != FileChooser.REQUEST_PICK_FILE) - return; + if (resultCode != Activity.RESULT_OK || requestCode != FileChooser.REQUEST_PICK_FILE) return; setConfig(Config.find("file:/" + FileChooser.getPathFromUri(getContext(), data.getData()).replace(Path.rootPath(), ""), type)); } } diff --git a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java index 7df9778be..0f3bea0ab 100644 --- a/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java +++ b/ijkplayer/src/main/java/tv/danmaku/ijk/media/player/ui/IjkVideoView.java @@ -59,7 +59,6 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl private int mTargetState; private int mCurrentState; - private int mCurrentDecode; private int mCurrentRender; private int mCurrentPlayer; private int mCurrentAspectRatio; @@ -122,11 +121,6 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl } } - public IjkVideoView decode(int decode) { - mCurrentDecode = decode; - return this; - } - public IjkVideoView render(int render) { setRender(render); return this; @@ -462,11 +456,11 @@ public class IjkVideoView extends FrameLayout implements MediaController.MediaPl mPlayer.setOption(player, "enable-accurate-seek", 0); mPlayer.setOption(player, "framedrop", 1); mPlayer.setOption(player, "max-buffer-size", 15 * 1024 * 1024); - mPlayer.setOption(player, "mediacodec", mCurrentDecode); - mPlayer.setOption(player, "mediacodec-hevc", mCurrentDecode); - mPlayer.setOption(player, "mediacodec-all-videos", mCurrentDecode); - mPlayer.setOption(player, "mediacodec-auto-rotate", mCurrentDecode); - mPlayer.setOption(player, "mediacodec-handle-resolution-change", mCurrentDecode); + mPlayer.setOption(player, "mediacodec", 1); + mPlayer.setOption(player, "mediacodec-hevc", 1); + mPlayer.setOption(player, "mediacodec-all-videos", 1); + mPlayer.setOption(player, "mediacodec-auto-rotate", 1); + mPlayer.setOption(player, "mediacodec-handle-resolution-change", 1); mPlayer.setOption(player, "opensles", 0); mPlayer.setOption(player, "overlay-format", IjkMediaPlayer.SDL_FCC_RV32); mPlayer.setOption(player, "reconnect", 1);