From 07862414c48133029fa2937514954dbfd0a175a1 Mon Sep 17 00:00:00 2001 From: TheDiamondPicks Date: Tue, 27 Feb 2018 14:40:09 +1300 Subject: [PATCH 1/7] Make Remembering Stuff Great Again --- .../main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java index d0d5b10..a3630f2 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java +++ b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java @@ -203,7 +203,7 @@ public void onTimeShiftSeekTo(long timeMs) { @Override public void onTimeShiftSetPlaybackParams(PlaybackParams params) { Log.d(TAG, "onTimeShiftSetPlaybackParams: " + params); - + // TODO: Use a custom renderer to adjust playback speed. This is likely where the thing happens Toast.makeText(mContext, "Unsupported", Toast.LENGTH_SHORT).show(); } From de259412da8d23bd60dce4a9258d9eeacb543aa1 Mon Sep 17 00:00:00 2001 From: TheDiamondPicks Date: Tue, 27 Feb 2018 14:45:45 +1300 Subject: [PATCH 2/7] added link to thing I need --- app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java index a3630f2..14c8686 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java +++ b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java @@ -204,6 +204,7 @@ public void onTimeShiftSeekTo(long timeMs) { public void onTimeShiftSetPlaybackParams(PlaybackParams params) { Log.d(TAG, "onTimeShiftSetPlaybackParams: " + params); // TODO: Use a custom renderer to adjust playback speed. This is likely where the thing happens + // https://gist.github.com/jmgirven/4e0ba2c7d584c8695549 Toast.makeText(mContext, "Unsupported", Toast.LENGTH_SHORT).show(); } From 3892c4dece46b96bdde369fb0c159de0a43e36d9 Mon Sep 17 00:00:00 2001 From: TheDiamondPicks Date: Tue, 27 Feb 2018 14:58:53 +1300 Subject: [PATCH 3/7] experimental support for Fast Foward & Rewind untested woo --- .../java/ie/macinnes/tvheadend/tvinput/HtspSession.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java index 14c8686..03aa9c6 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java +++ b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java @@ -205,7 +205,11 @@ public void onTimeShiftSetPlaybackParams(PlaybackParams params) { Log.d(TAG, "onTimeShiftSetPlaybackParams: " + params); // TODO: Use a custom renderer to adjust playback speed. This is likely where the thing happens // https://gist.github.com/jmgirven/4e0ba2c7d584c8695549 - Toast.makeText(mContext, "Unsupported", Toast.LENGTH_SHORT).show(); + + //Toast.makeText(mContext, "Unsupported", Toast.LENGTH_SHORT).show(); + + // may or may not work. Could break something idk + mTvheadendPlayer.setPlaybackParams(params); } @RequiresApi(api = Build.VERSION_CODES.M) From 3af55f51acfbde91049a413eff0e45636f0934fd Mon Sep 17 00:00:00 2001 From: TheDiamondPicks Date: Sat, 10 Mar 2018 18:46:20 +1300 Subject: [PATCH 4/7] Fixed fast foward on recordings - now works perfectly --- .idea/modules.xml | 2 +- .../tvheadend/player/TvheadendPlayer.java | 40 ++----------------- .../tvheadend/tvinput/HtspSession.java | 7 +--- 3 files changed, 5 insertions(+), 44 deletions(-) diff --git a/.idea/modules.xml b/.idea/modules.xml index e05f297..193201b 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -6,4 +6,4 @@ - + \ No newline at end of file diff --git a/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java b/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java index 9cf4426..ad507b0 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java +++ b/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java @@ -235,46 +235,12 @@ public void seek(long timeMs) { public void setPlaybackParams(PlaybackParams params) { float rawSpeed = params.getSpeed(); int speed = (int) rawSpeed; - int translatedSpeed; - - switch(speed) { - case 0: - translatedSpeed = 100; - break; - case -2: - translatedSpeed = -200; - break; - case -4: - translatedSpeed = -300; - break; - case -12: - translatedSpeed = -400; - break; - case -48: - translatedSpeed = -500; - break; - case 2: - translatedSpeed = 200; - break; - case 4: - translatedSpeed = 300; - break; - case 12: - translatedSpeed = 400; - break; - case 48: - translatedSpeed = 500; - break; - default: - Log.d(TAG, "Unknown speed??? " + rawSpeed); - return; - } - Log.d(TAG, "Speed: " + params.getSpeed() + " / " + translatedSpeed); + Log.d(TAG, "Speed: " + params.getSpeed()); if (mDataSource != null) { - mDataSource.setSpeed(translatedSpeed); - mExoPlayer.setPlaybackParameters(new PlaybackParameters(translatedSpeed, 0)); + mDataSource.setSpeed(speed); + mExoPlayer.setPlaybackParameters(new PlaybackParameters(speed, 1)); } } diff --git a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java index 03aa9c6..18a0d5b 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java +++ b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java @@ -133,6 +133,7 @@ public void onSetStreamVolume(float volume) { @Override public View onCreateOverlayView() { Log.d(TAG, "Session onCreateOverlayView (" + mSessionNumber + ")"); + return mTvheadendPlayer.getOverlayView( mCaptioningManager.getUserStyle(), mCaptioningManager.getFontScale()); } @@ -203,12 +204,6 @@ public void onTimeShiftSeekTo(long timeMs) { @Override public void onTimeShiftSetPlaybackParams(PlaybackParams params) { Log.d(TAG, "onTimeShiftSetPlaybackParams: " + params); - // TODO: Use a custom renderer to adjust playback speed. This is likely where the thing happens - // https://gist.github.com/jmgirven/4e0ba2c7d584c8695549 - - //Toast.makeText(mContext, "Unsupported", Toast.LENGTH_SHORT).show(); - - // may or may not work. Could break something idk mTvheadendPlayer.setPlaybackParams(params); } From e2053101751415a976d375f45da9ff358996b27c Mon Sep 17 00:00:00 2001 From: TheDiamondPicks Date: Sat, 10 Mar 2018 19:42:27 +1300 Subject: [PATCH 5/7] Mute stream when fast forwarding --- .../java/ie/macinnes/tvheadend/player/TvheadendPlayer.java | 1 - .../java/ie/macinnes/tvheadend/tvinput/HtspSession.java | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java b/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java index ad507b0..9c73e96 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java +++ b/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java @@ -237,7 +237,6 @@ public void setPlaybackParams(PlaybackParams params) { int speed = (int) rawSpeed; Log.d(TAG, "Speed: " + params.getSpeed()); - if (mDataSource != null) { mDataSource.setSpeed(speed); mExoPlayer.setPlaybackParameters(new PlaybackParameters(speed, 1)); diff --git a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java index 18a0d5b..90fbd24 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java +++ b/app/src/main/java/ie/macinnes/tvheadend/tvinput/HtspSession.java @@ -204,6 +204,12 @@ public void onTimeShiftSeekTo(long timeMs) { @Override public void onTimeShiftSetPlaybackParams(PlaybackParams params) { Log.d(TAG, "onTimeShiftSetPlaybackParams: " + params); + if (params.getSpeed() == 1) { + mTvheadendPlayer.setVolume(1.0f); + } + else { + mTvheadendPlayer.setVolume(0f); + } mTvheadendPlayer.setPlaybackParams(params); } From ed1dcf9d447ba62522f822b7cdefc7ea7c6b7b63 Mon Sep 17 00:00:00 2001 From: TheDiamondPicks Date: Sun, 11 Mar 2018 11:48:15 +1300 Subject: [PATCH 6/7] Re-add translated speed, pending support in mDataSource --- .../tvheadend/player/TvheadendPlayer.java | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java b/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java index 9c73e96..4bdbb66 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java +++ b/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java @@ -236,9 +236,44 @@ public void setPlaybackParams(PlaybackParams params) { float rawSpeed = params.getSpeed(); int speed = (int) rawSpeed; - Log.d(TAG, "Speed: " + params.getSpeed()); + int translatedSpeed; + + switch(speed) { + case 1: + translatedSpeed = 100; + break; + case -2: + translatedSpeed = -200; + break; + case -3: + translatedSpeed = -300; + break; + case -4: + translatedSpeed = -400; + break; + case -5: + translatedSpeed = -500; + break; + case 2: + translatedSpeed = 200; + break; + case 3: + translatedSpeed = 300; + break; + case 4: + translatedSpeed = 400; + break; + case 5: + translatedSpeed = 500; + break; + default: + Log.d(TAG, "Unknown speed??? " + rawSpeed); + return; + } + + Log.d(TAG, "Speed: " + params.getSpeed() + " / " + translatedSpeed); if (mDataSource != null) { - mDataSource.setSpeed(speed); + mDataSource.setSpeed(translatedSpeed); mExoPlayer.setPlaybackParameters(new PlaybackParameters(speed, 1)); } } From 3284969cac28c24cf14905e4cd02675fda5712dd Mon Sep 17 00:00:00 2001 From: TheDiamondPicks Date: Sun, 11 Mar 2018 12:09:24 +1300 Subject: [PATCH 7/7] Fixed translated speed --- .../java/ie/macinnes/tvheadend/player/TvheadendPlayer.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java b/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java index 4bdbb66..3f8d94b 100644 --- a/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java +++ b/app/src/main/java/ie/macinnes/tvheadend/player/TvheadendPlayer.java @@ -257,13 +257,13 @@ public void setPlaybackParams(PlaybackParams params) { case 2: translatedSpeed = 200; break; - case 3: + case 8: translatedSpeed = 300; break; - case 4: + case 32: translatedSpeed = 400; break; - case 5: + case 128: translatedSpeed = 500; break; default: