SageTV Community

SageTV Community (http://forums.sagetv.com/forums/index.php)
-   SageTV Clients Development (http://forums.sagetv.com/forums/forumdisplay.php?f=56)
-   -   Fork of SageTV MiniClient for Android TV (http://forums.sagetv.com/forums/showthread.php?t=66405)

jvl711 06-20-2020 06:26 AM

SageTV MiniClient for Android TV (jvl711)
 
This has morphed from me sharing a fork of the SageTV MiniClient to me maintaining and posting releases of Stuckless' original work. I will post APK releases to the github repository. I will also post releases to the Google Play Store and Amazon App Store.

Beta release will not be published to github. I generally will just post a link in the forums. Once I am comfortable that they are stable I will post to GitHub/Google/Amazon.

NOTE: If you want to utilize the Fixed HD Transcoding option v1.6.2 or greater you are going to need put patched Sage.jar into your SageTV server until the next SageTV version is published (>9.2.2) https://www.patreon.com/file?h=40951674&i=6362642


Release Notes

1.9.1 (09/10/2021)
- Fixed issue in PushBufferDataSource that was causing transcoding and live tv transitions to freeze
- Updated build to use local libs directory instead of MavenLocal. Simplify build process for support libraries
- Fixed logic bugs on how to tell SageTV when to transcode/remux
- Moved project to Androidx
- Update GDX library version to 1.9.14
- Update ExoPlayer to 2.14.2
- Multiple build.gradle files cleaned up
- Fixed error generating client ID

1.8.1 (6/18/2021)
- Updated to ExoPlayer 2.14.0
- Updated FFmpeg extension to 2.14.0
- Some minor bug fixes

1.8.0 (5/14/2021) - Brought to you by user cncb
- Support external links to open videos in other apps directly (Netflix/Amazon).
- Allow display of embedded PGS subtitles in ExoPlayer.
- Add option to enable system sleep.

1.7.1 (2/11/2021)
- Redesigned some of the settings screens. Broke out the settings for ExoPlayer and IJKPlayer
- Upgrade to ExoPlayer 2.12.3
- Added additional codecs to the ExoPlayer Codec Debug Screen (DIVX, AC4, OPUS, etc...)
- Removed AVI as a supported container format for ExoPlayer. This should go thru the transcoder

1.7.0 (11/12/2020)
- Playing back active recording TV seeking issue with ExoPlayer: Issue #96
- Frame Advance & Slow Motion Advance enhancement: Issue #91
- Upgrade to ExoPlayer 2.12.1 enhancement: Issue #95
- Full-Screen On Screen Navigation enhancement: Issue #42
- Issue with keyboard and favorites on the FireTV: Issue #92
- Error connecting to server when using fixed Transcoding/Streaming: Issue #97

1.6.3 (2020-10-10)

- Rearchitected how playback position was retrieved. Switched to a UI thread that updates every 500ms.
- Fixed an issue with seeking after resume from pause. The state was not getting properly updated
- Allowing proper seek when playback is paused. Allow the position to get reported to sage server on pause
- Added the blue icons that I made for FireTV to Android project

1.6.2 (2020-9-11)

- Fixed an issue with Android 11 where images were not rendering
- Upgraded ExoPlayer to 2.11.8
- Fixed the volume up/down keys. You need to map them to NONE for them to work properly
- Volume up/down mapped to NONE by default
- Added fixed transcoding settings to allow for HD transcoding from the server to MKV container
- Added the ability for Exoplayer to filter the Video codecs that are not supported. This will allow SageTV to transcode on unsupported formats
NOTE: The fixed transcoding changes need a patched version of Sage.jar to work properly. Hopefully those changes will make it into the next release of SageTV

1.5.2 (2020-7-09)

- Attempted to add a workaround for the FireTV where you can not close the system keyboard. Next/Previous buttons should now close it.

1.5.1 (2020-6-30)

- Update ExoPlayer FFmpeg extension to 2.11.5
- Added a setting for ffmpeg exoplayer extension, to turn it on, off or prefer
- Updated some deprecated code in the constructing on the SimpleExoPlayer instance

1.5.0 (2020-6-26)

- Moving to new Play Store app
- Updated to exoplayer 2.11.5
- Added HEVC codec to list of codecs sent to sage durring connection
- Attempted to clean up the current playback time, and the seek
- Turn off rendering cues if by default
- Add error message toast on ExoPlayer2 Error
- Fixed issues with seeking when using exoplayer and push mediasource
- Added some basic support for subtitles in ExoPlayer
- Fixed a bug where it would not seek to the SageTV supplied start position**Forked the code base from version 1.4.4 (jvl711)**

Download links:

GitHub
Amazon App Store
Google Playstore


If you would like to support my work you can become a supporter here Patreon

randyth 06-20-2020 11:46 AM

This looks really interesting.

What hardware are you running this fork on?

jvl711 06-20-2020 01:32 PM

Quote:

Originally Posted by randyth (Post 625689)
This looks really interesting.

What hardware are you running this fork on?

2015 XBR-65X850C Sony Android TV. Works pretty flawlessly.

crarbo1 06-20-2020 02:22 PM

How do I install it on a ShieldTV, which is running Android TV? Since it isn't in the Play Store, I am not sure how to install it.

Thanks and I appreciate you taking this on!

jvl711 06-20-2020 03:02 PM

Quote:

Originally Posted by crarbo1 (Post 625692)
How do I install it on a ShieldTV, which is running Android TV? Since it isn't in the Play Store, I am not sure how to install it.

Thanks and I appreciate you taking this on!

I am not 100% sure for the shield. but you will need to put the APK file on a USB stick. You will need to allow third party sources to be installed. Use a file explorer app and click on the APK to install it. If you Google how to sideload an app on the shield you will probably get better instructions.

Josh

KryptoNyte 06-20-2020 08:59 PM

Can this be sideloaded on my Galaxy smartphone, or a FireTV device? If so, is the user interface able to allow the entering of username/password for remote use while I travel?

Carlton Bale 06-20-2020 09:19 PM

It would be great to have this merged into the official version. With so few developers remaining, itís probably better to consolidate as much as possible.

mechling-burgh 06-20-2020 09:44 PM

This solved my audio problems on my HDPVR recordings. Thanks a great deal

NetworkGuy 06-21-2020 04:21 AM

Quote:

Originally Posted by Carlton Bale (Post 625697)
It would be great to have this merged into the official version. With so few developers remaining, itís probably better to consolidate as much as possible.

I agree. It is much better to have a version that is being maintained.

Thanks!

KryptoNyte 06-21-2020 06:17 AM

Quote:

Originally Posted by KryptoNyte (Post 625696)
Can this be sideloaded on my Galaxy smartphone, or a FireTV device? If so, is the user interface able to allow the entering of username/password for remote use while I travel?

Added it to the phone, works great. Added it to the FireTV device, set it to Exoplayer, works great. Tried remote, still have that pesky keyboard that can't be navigated when trying to enter Placeshifter user/pass. If you are able to fix that, it would be a huge advancement for remote use.

Thanks for your work on this, Josh.

nyplayer 06-21-2020 08:26 AM

Quote:

Originally Posted by jvl711 (Post 625687)
I wanted to share with everyone a fork of the mini client that I have been maintaining for personal use. I have built off of, and attempted to maintain, the great work that Stuckless has done. This was my first foray into Android development, so I am still learning a lot. I am mainly trying to keep ExoPlayer up to date and fill in some missing features or bugs. It does not seem that IJKPlayer is being updated anymore, so right now ExoPlayer seems like the best choice to keep this moving forward.

This release has a different name/icon so it can be used side by side with the original. So if I break something, you will have a backup.

I am sharing this as is. You can post questions, comments and issues, but there is no guarantee I will get to them. I will continue to post updates as I make them.

Release Notes

**1.0.7 (2020-6-19) **
- jvl711: Updated to exoplayer 2.11.5
- jvl711: Removed the queue timer since remove cues was fixed

**1.0.6 (2020-1-30) **
- jvl711: Added HEVC codec to list of codecs sent to sage durring connection

**1.0.5 (2020-1-20) **
- jvl711: Added timer thread to hide cues after 5 seconds
- jvl711: Attempted to clean up the current playback time, and the seek
- jvl711: Updated Exoplayer to 2.11.1

**1.0.3 (2019-12-12)**
- jvl711: Turn off rendering cues if by default
- jvl711: Add error message toast on ExoPlayer2 Error
- jvl711: Updated Exoplayer to 2.11.0

**1.0.2 (2019-11-15)**
- jvl711: Fixed issues with seeking when using exoplayer and push mediasource

**1.0.1 (2019-11-14)**
- jvl711: upgraded ExoPlayer base to 2.10.6

**1.0.0 (2019-10-01)**
- jvl711: Updated to version 2.9.6 of Exoplayer.
- jvl711: Added some basic support for subtitles in ExoPlayer
- jvl711: Fixed a bug where it would not seek to the SageTV supplied start position

**Forked the code base from version 1.4.4 (jvl711)**

Download links:

SageTV_Mini_1_0_7.apk

Installed in FireTV Cube 2 and it works great ... seeking is much better ... with this fork.

The only thing is that the Icon does not appear ... all I see is some default gray box to launch the APK.

NetworkGuy 06-21-2020 09:04 AM

Quote:

Originally Posted by KryptoNyte (Post 625701)
still have that pesky keyboard that can't be navigated when trying to enter Placeshifter user/pass. If you are able to fix that, it would be a huge advancement for remote use.

+1 :thumbup:

nyplayer 06-21-2020 09:26 AM

@jvl711

Tested on Various devices ...

FireTV 4K everything works.
Panasonic FireTV everything works
ShieldTV everything works.
FireTV Cube 2 everything works just the Icon doesn't load no big deal.

Thanks for keeping this alive ... SageTV still the best after so many years and contenders.

gclayto 06-21-2020 09:51 AM

Quote:

Originally Posted by KryptoNyte (Post 625701)
Added it to the phone, works great. Added it to the FireTV device, set it to Exoplayer, works great. Tried remote, still have that pesky keyboard that can't be navigated when trying to enter Placeshifter user/pass. If you are able to fix that, it would be a huge advancement for remote use.

Thanks for your work on this, Josh.

The easiest way around the keyboard issue is to buy a cheap Bluetooth keyboard and pair it with the Firestick.

KryptoNyte 06-21-2020 05:01 PM

Quote:

Originally Posted by gclayto (Post 625705)
The easiest way around the keyboard issue is to buy a cheap Bluetooth keyboard and pair it with the Firestick.

The keyboard is the problem. Once it pops up while you are trying to type the username, nothing the user does can make it go away, and it doesn't seem to advance fields.

sacrament055 06-21-2020 07:23 PM

Anybody else test this with MPEG2 OTA TV Stream? I didn't seem to have any luck with getting EXOPlayer to work for me there but when I switch back to IJK it works same as before.

Denali 06-21-2020 07:24 PM

For keyboard problem this works for me

Launch Sage app
keyboard opens for Username
enter Username
tap Return/Back on phone
keyboard hides
tap Password field
swipe from left side
function overlay appears
tap keyboard icon
keyboard returns
enter Password
tap Return/Back on phone
keyboard hides
tap Login

jvl711 06-22-2020 08:05 AM

Quote:

Originally Posted by sacrament055 (Post 625709)
Anybody else test this with MPEG2 OTA TV Stream? I didn't seem to have any luck with getting EXOPlayer to work for me there but when I switch back to IJK it works same as before.

I added a screen that shows which codecs are available to ExoPlayer in the settings menu. Check to see if your device has MPEG2 codec available. A handful of devices do not have MPEG2. For instance my Pixel phone does not.

In that case you will need to use IJKPlayer. I may look into adding the ability to fallback to IJK when the codec is not supported...

Thanks,
Josh

jvl711 06-22-2020 08:30 AM

Quote:

Originally Posted by nyplayer (Post 625704)
@jvl711

Tested on Various devices ...

FireTV 4K everything works.
Panasonic FireTV everything works
ShieldTV everything works.
FireTV Cube 2 everything works just the Icon doesn't load no big deal.

Thanks for keeping this alive ... SageTV still the best after so many years and contenders.

Thanks for your feedback nyplayer. I will try and load this on my Firestick when I have some time and see if I can reproduce the icon issue. Probably missing a specific icon format/size.

KryptoNyte 06-22-2020 09:50 AM

Quote:

Originally Posted by Denali (Post 625710)
For keyboard problem this works for me

Launch Sage app
keyboard opens for Username
enter Username
tap Return/Back on phone
keyboard hides
tap Password field
swipe from left side
function overlay appears
tap keyboard icon
keyboard returns
enter Password
tap Return/Back on phone
keyboard hides
tap Login

I'm not sure what phone you are using, but whether I try this on my Galaxy Note 8 or my fire stick 4k, the return/back never hides the keyboard. Unless I'm missing something?

KryptoNyte 06-22-2020 10:45 AM

Correction. On the Galaxy Note 8 I can get the keyboard to hide with the back button, move between fields and such, and get the keyboard back with the slide in from the left, but I can't get the keyboard to register any alphabet characters.

On the Fire stick 4k, I can't hide the keyboard at all to move between fields or see what's behind it.

jvl711 06-22-2020 01:40 PM

Question for you guys. Does the mini client work on Fire Stick 2nd Gen? I see it does not have hardware mpeg-2 decoding. Will it even work with ExoPlayer and mpeg-2 live tv.

If 2nd gen is a no starter, how is the Fire TV Stick 4k?

I currently only own a 1st gen and a 2nd gen.

Thanks,
Josh

stuckless 06-22-2020 02:32 PM

Quote:

Originally Posted by jvl711 (Post 625712)
I added a screen that shows which codecs are available to ExoPlayer in the settings menu. Check to see if your device has MPEG2 codec available. A handful of devices do not have MPEG2. For instance my Pixel phone does not.

In that case you will need to use IJKPlayer. I may look into adding the ability to fallback to IJK when the codec is not supported...

Thanks,
Josh

First, let me say thanks for moving this forward. Given that I'm not likely to be coming back to development with this, I can certainly look at transferring the ownership of that repo to you, if you want. I did notice that your forked repo is 130 commits behind the opensagetv repo, so hopefully you've been pulling updates, but you just haven't pushed it back up to your forked repo.

Something I was considering was to actually remove IJKPlayer (since it is no longer being developed) and just support ExoPlayer, which has come a long way over the years, and is being actively developed. I was also thinking to remove LibGDX rendering and only use the native OpenGL rendering. Removing both of these would simplify the code/support.

As for the Codecs, I would think that when the connection is established with the server, we send the list of codecs that we support, and if we don't support a codec, then sagetv should try to transcode. So if pixel doesn't support mpeg2 sagetv should try to transcode (which would be more like the remote placeshifter in that scnario)

nyplayer 06-22-2020 04:06 PM

Quote:

Originally Posted by jvl711 (Post 625717)
Question for you guys. Does the mini client work on Fire Stick 2nd Gen? I see it does not have hardware mpeg-2 decoding. Will it even work with ExoPlayer and mpeg-2 live tv.... It does Work on Fire Tablets.

If 2nd gen is a no starter, how is the Fire TV Stick 4k?

I currently only own a 1st gen and a 2nd gen.

Thanks,
Josh

FireTV 4K works and so does the New FireTV Cube. I know Google had messed up MPEG2 hardware decoding in the latest Android release ... It does not play on my Samsung Tab 4 only get sound no Video.

https://community.getchannels.com/t/...ndroid/22675/3

https://i.postimg.cc/zXnFY1MK/nompeh2.jpg


Fire Tablet ..
https://i.postimg.cc/Y2gt7XxQ/thumbn...622-154357.png

jvl711 06-23-2020 07:02 AM

Quote:

Originally Posted by stuckless (Post 625718)
First, let me say thanks for moving this forward. Given that I'm not likely to be coming back to development with this, I can certainly look at transferring the ownership of that repo to you, if you want. I did notice that your forked repo is 130 commits behind the opensagetv repo, so hopefully you've been pulling updates, but you just haven't pushed it back up to your forked repo.

Something I was considering was to actually remove IJKPlayer (since it is no longer being developed) and just support ExoPlayer, which has come a long way over the years, and is being actively developed. I was also thinking to remove LibGDX rendering and only use the native OpenGL rendering. Removing both of these would simplify the code/support.

As for the Codecs, I would think that when the connection is established with the server, we send the list of codecs that we support, and if we don't support a codec, then sagetv should try to transcode. So if pixel doesn't support mpeg2 sagetv should try to transcode (which would be more like the remote placeshifter in that scnario)

Hi Stuckless,

If you really do not think you are going to come back, I would be willing to try and move forward with the mini client. I want to make sure that you are OK with me possibly moving in different directions than you were originally thinking. I forked and started maintaining my own version, to be able to go in different directions. Somewhat for learning experience, and somewhat for personal preference. I would not want to upset or disappoint you. You did some awesome work. Without this I think SageTV may have disappeared a long time ago.

I agree with stripping back some of the supported layers! Unfortunately on the main device I use SageTV, LibGDX performs much better :confused:. I would like to remove as much "Options" as makes sense. It is just more to support. But I also want to make sure it is still very usable.

I will play with the transcoding. I am worried it will look like crap though. Upgradding the transcoding support has been one of my wish list items. Agree that this is what we "should" be doing.

Side note: Are you the owner of the SageTV Plugin repository. If so, could you give me write permission to publish a plugin. I have an open pull request.

Thanks,
Josh

wayner 06-23-2020 08:51 AM

Quote:

Originally Posted by stuckless (Post 625718)
As for the Codecs, I would think that when the connection is established with the server, we send the list of codecs that we support, and if we don't support a codec, then sagetv should try to transcode. So if pixel doesn't support mpeg2 sagetv should try to transcode (which would be more like the remote placeshifter in that scnario)

Isn't one of the issue that the version of mplayer (or some other program) that SageTV uses does not work well with 1080i. I believe that Placeshifter has never played 1080i content properly..

sacrament055 06-23-2020 10:27 AM

Quote:

Originally Posted by jvl711 (Post 625717)
Question for you guys. Does the mini client work on Fire Stick 2nd Gen? I see it does not have hardware mpeg-2 decoding. Will it even work with ExoPlayer and mpeg-2 live tv.

If 2nd gen is a no starter, how is the Fire TV Stick 4k?

I currently only own a 1st gen and a 2nd gen.

Thanks,
Josh

I have firetv 4k pendant and firetv 4k (newer version) the pendant version works with ijkplayer for mpeg2 perfectly. I can't get it to work with ExoPlayer for Mpeg2. (Keep in mind that I'm referring to live OTA streaming from HD Homerun not pre-recorded Mpeg2 that may or may not work properly)

The newer firetv 4k I was able to get IJKplayer to work by disabling one of the 2 MPEG2 hardware decoders. can't remember which one off hand but one did not work and if I disabled it the other would work.

thanks for your efforts in supporting the SageTV community

stuckless 06-23-2020 12:27 PM

Quote:

Originally Posted by jvl711 (Post 625723)
If you really do not think you are going to come back, I would be willing to try and move forward with the mini client. I want to make sure that you are OK with me possibly moving in different directions than you were originally thinking. I forked and started maintaining my own version, to be able to go in different directions. Somewhat for learning experience, and somewhat for personal preference. I would not want to upset or disappoint you. You did some awesome work. Without this I think SageTV may have disappeared a long time ago.

I agree with stripping back some of the supported layers! Unfortunately on the main device I use SageTV, LibGDX performs much better :confused:. I would like to remove as much "Options" as makes sense. It is just more to support. But I also want to make sure it is still very usable.

I will play with the transcoding. I am worried it will look like crap though. Upgradding the transcoding support has been one of my wish list items. Agree that this is what we "should" be doing.

Side note: Are you the owner of the SageTV Plugin repository. If so, could you give me write permission to publish a plugin. I have an open pull request.

Thanks,
Josh

You can fork or you can take ownership of the one that is there, it's up to you. I no longer run SageTV, so I'm doubtful that I'll be back on development. That combined with the fact that I simply don't have the time (if I did, then I'd likely still do the development, because i really did enjoy it).

Quote:

Originally Posted by wayner (Post 625726)
Isn't one of the issue that the version of mplayer (or some other program) that SageTV uses does not work well with 1080i. I believe that Placeshifter has never played 1080i content properly..

Likely... and I think even players like HD200 had issues here... I recall setting my server to record in 720p because I had issues with 1080i many years ago.

tvmaster2 06-23-2020 01:45 PM

Quote:

Originally Posted by stuckless (Post 625733)
You can fork or you can take ownership of the one that is there, it's up to you. I no longer run SageTV, so I'm doubtful that I'll be back on development. That combined with the fact that I simply don't have the time (if I did, then I'd likely still do the development, because i really did enjoy it).



Likely... and I think even players like HD200 had issues here... I recall setting my server to record in 720p because I had issues with 1080i many years ago.

Ditto. I set mine to record 720p because Placeshifter couldnít handle 1080, ESPECIALLY remotely while traveling. I just got used to and accepted 720p as my Sage Ďnormalí. Never changed back....

nyplayer 06-23-2020 01:57 PM

Quote:

Originally Posted by tvmaster2 (Post 625736)
Ditto. I set mine to record 720p because Placeshifter couldn’t handle 1080, ESPECIALLY remotely while traveling. I just got used to and accepted 720p as my Sage ‘normal’. Never changed back....

Hard to do with digital tuners.

phelme 06-23-2020 03:29 PM

Quote:

Originally Posted by jvl711 (Post 625691)
2015 XBR-65X850C Sony Android TV. Works pretty flawlessly.

OMG. I'll definitely have to try this out as I have a similar era 43X830C which the (current) MiniClient has issues with. I think it might use the same MediaTek processor as yours. :D

KryptoNyte 06-23-2020 04:54 PM

Quote:

Originally Posted by jvl711 (Post 625723)

I will play with the transcoding. I am worried it will look like crap though. Upgradding the transcoding support has been one of my wish list items. Agree that this is what we "should" be doing.

That would be awesome! When I did have the miniclient working on the Fire stick 4k, it looked like about 360p at best.

nyplayer 06-23-2020 04:56 PM

Quote:

Originally Posted by KryptoNyte (Post 625743)
That would be awesome! When I did have the miniclient working on the Fire stick 4k, it looked like about 360p at best.

You mean to say when you remoted into Sage correct ? not locally.

KryptoNyte 06-23-2020 05:24 PM

Quote:

Originally Posted by nyplayer (Post 625744)
You mean to say when you remoted into Sage correct ? not locally.

Yes. Remote connection. Thanks, Edwin. It usually doesn't transcode when I'm local.

tvmaster2 06-23-2020 06:11 PM

Quote:

Originally Posted by nyplayer (Post 625737)
Hard to do with digital tuners.

yeah, I rarely record from my HDHomerun because the OTA is so unreliable. 60 miles between two, big cities :\

nyplayer 06-23-2020 08:40 PM

Quote:

Originally Posted by tvmaster2 (Post 625746)
yeah, I rarely record from my HDHomerun because the OTA is so unreliable. 60 miles between two, big cities :\

Yeah I am lucky that with a small indoor Antenna i get all the channels ... some people that have Locast in their area for OTA use Channels DVR to record locals... when they have poor reception.

cncb 06-24-2020 09:21 AM

Quote:

Originally Posted by sacrament055 (Post 625709)
Anybody else test this with MPEG2 OTA TV Stream? I didn't seem to have any luck with getting EXOPlayer to work for me there but when I switch back to IJK it works same as before.

Unfortunately, the new ExoPlayer still does not work for MPEG2 on my Shield TV. Plays back in super slow mo with no audio.

jvl711 06-24-2020 10:54 AM

Quote:

Originally Posted by cncb (Post 625750)
Unfortunately, the new ExoPlayer still does not work for MPEG2 on my Shield TV. Plays back in super slow mo with no audio.

Are you the only one reporting this issue with the Shield TV? Is this possibly something isolated to your installation?

Josh

jvl711 06-24-2020 10:59 AM

Quote:

Originally Posted by stuckless (Post 625733)
You can fork or you can take ownership of the one that is there, it's up to you. I no longer run SageTV, so I'm doubtful that I'll be back on development. That combined with the fact that I simply don't have the time (if I did, then I'd likely still do the development, because i really did enjoy it).

Hi Stuckless,

I have started merging the code bases. It actually went more cleanly than I would have thought! I have a branch that I am going to test.

Question for you if you do not mind. If I were to want to attempt to post this on the playstore, should I just post it as a new application? I do have a developer account. If I need to post as a new application, do I need to change the name?

Any thoughts or pointers would be helpful.

Thanks,
Josh

cncb 06-24-2020 11:51 AM

Quote:

Originally Posted by jvl711 (Post 625752)
Are you the only one reporting this issue with the Shield TV? Is this possibly something isolated to your installation?

It is/was my impression that Shield TV users were never able to get ExoPlayer to work properly with MPEG2. IJK player works but you lose Dolby Digital surround and seeking is not ideal.


All times are GMT -6. The time now is 10:35 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.