[APP] ThereTV . Streaming player compatible with the LocationFree protocol

Search This thread

mgschwan

Senior Member
Dec 13, 2011
59
17
In the uk I think the pk1 is the standard model... bought the us version b20 but does not work well with PAL. Use the b20 to create codes for the remote function. My question is will the app work on the uk version and if yes.. will it work on the galaxy tab 10? Have the desire as well.

Well, i think there is only one way to find out. As you might have seen (or not). I have updated the first post with links to the android market. The app is now available for everyon to test.

If your devices work, please post it here so i can update the post.

Greetings
Michael
 

ersd9

New member
Oct 29, 2008
1
0
Thank you
Nice job Michael.
I have been looking for something like this since i had my Dash and using Orb.
A little bug on ThereTV (free version) can't select LF-B1 (US) base station.
 

mgschwan

Senior Member
Dec 13, 2011
59
17
Thank you
Nice job Michael.
I have been looking for something like this since i had my Dash and using Orb.
A little bug on ThereTV (free version) can't select LF-B1 (US) base station.

If you can't select the B1 base station just use the B10 for now. Internally it does not make a difference. This will be fixed in a future version.
 

gvece

Member
Apr 12, 2009
9
0
I'm getting error message... there TV(process.com.mgschwan.fxreg) has stopped unexpectedly. Please try again. Gives me option to force close or report. I have registered the app on my b1 EU base station, but I haven't changed any other setting on the base station. Still works via windows XP. Get the same message on my galaxy10 tab.
 

mgschwan

Senior Member
Dec 13, 2011
59
17
I'm getting error message... there TV(process.com.mgschwan.fxreg) has stopped unexpectedly. Please try again. Gives me option to force close or report. I have registered the app on my b1 EU base station, but I haven't changed any other setting on the base station. Still works via windows XP. Get the same message on my galaxy10 tab.

I am currently working on a way to retrieve the debug logs via email. Once i have this integrated i will send out a debug version.
 

mgschwan

Senior Member
Dec 13, 2011
59
17
Update
I got my hands on a phone that shows the crashing issue. It seems that it only happens when the app has been installed via the android market. If i upload my debug version via eclipse it works fine.

I will fix this issue and upload a new version to the market.
Stay tuned for updates

QUESTION: Can anyone confirm that this happens only in the free version?

Michael
 
Last edited:
May 18, 2007
29
0
The older version crashed automatically on launch. This new updated version is able to run on wifi. there is a slight lag in audio. I havent played with quality settings yet. I am using default settings on the player. As of now it is a big improvement on initial release.

My box is V30 and I am using Nexus S 4G
 

mgschwan

Senior Member
Dec 13, 2011
59
17
The older version crashed automatically on launch. This new updated version is able to run on wifi. there is a slight lag in audio. I havent played with quality settings yet. I am using default settings on the player. As of now it is a big improvement on initial release.

My box is V30 and I am using Nexus S 4G

Does this mean you got the 1.0.1 version already? My browser still shows the 1.0 version. That's strange.

Anyway. If you have a fast enough device, you can change the audio buffer settings, this will reduce the a/v lag. The options should be pretty self explanatory :)
 
  • Like
Reactions: gvece

gvece

Member
Apr 12, 2009
9
0
How weird... managed to download 1.01 but its no longer on the market....

Used it on my galaxy tab 10 and it works. Running on high quality and 25 frames on wifi with avg upload speed of 0.6mb. Quality is about the same as on my 10.1 on windows XP. Have yet to try on 3g high speed.

I guess the next question is how do we load on your own remote control file?

Great news that you have brought the Sony LF back to life....
 

mgschwan

Senior Member
Dec 13, 2011
59
17
How weird... managed to download 1.01 but its no longer on the market....

Used it on my galaxy tab 10 and it works. Running on high quality and 25 frames on wifi with avg upload speed of 0.6mb. Quality is about the same as on my 10.1 on windows XP. Have yet to try on 3g high speed.

I guess the next question is how do we load on your own remote control file?

Great news that you have brought the Sony LF back to life....

I tried installing it on my test device and it was available from the market. Maybe it was gone during the update process from 1.0 to 1.0.1. If you have a fast device you can set the Scaling filter to "Nice but slow", this will improve the overall look and feel of the stream.


As for the remote. I did not figure out how the rcd files are structured. The only way how i can extract the remote codes is by extracting them directly from the windows player.
So, if you want your remote to be working you need to send me the rcd file or tell me which remote you selected in the windows player and then you have to wait until the next update.

Michael
 

mgschwan

Senior Member
Dec 13, 2011
59
17
@all: I need your feedback on something:

During debuging i sometimes write the decrypted frames to the sdcard. This made me think that i could record the whole stream as avi or mp4 (depending on the basestation).

This could be extended to a full fledged recording app. That let's say records the morning news while it's sitting in the charger and when you head to work let's you watch the recorded shows/news/<whatever>.

So, is this a feature that people would use or is this simply not useful ?

Michael
 
May 18, 2007
29
0
Considering the way the DMCA is going... this would be a phenomenal addon.
As you see nowdays... there are no VCRs no DVDRs .... you pay for recording shows and watch them...
does this mean I can record a program and watch it later without paying my cable service provider?
Perfect icing on the cake
 

insanenyc

Senior Member
Aug 12, 2006
271
53
@all: I need your feedback on something:

During debuging i sometimes write the decrypted frames to the sdcard. This made me think that i could record the whole stream as avi or mp4 (depending on the basestation).

Yes very very usefull that would be a great addition to record great idea




Sent from my Inspire 4G using XDA App
 

nee_vak

Senior Member
Oct 14, 2009
144
18
since locationfree is getting some action here

anyone have any idea how i can download the B10's 4.0 firmware?
sony's support site isn't very responsive
this page on the support site is pretty useless
http://esupport.sony.com/US/perl/swu-download.pl?mdl=LFB10&upd_id=2440&os_group_id=18
the download button just gives me an Installation Alert!
(unless AVC support isnt going to improve anything with the android client?)

also couldn't figure out how to extract rcd files for my directv remote
the folder for the LF client doesn't have anything other than dll and ax files
maybe the remote files from psp could help? http://remote.locationfree.sony.net/psp/en/index.html

oh and very nice work on the android client
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 9
    Hi,

    This software is still in beta status. You have to expect problems.
    If you experience any bugs or glitches please look in the Known Issues section of this post. If the problem is not there send me a message.


    • This app is developed by me and Sony did not contribute to the development of this software
    • A personal note from me: I will not use the trademark LocationFree or the brand name Sony in the App (especially in the title)

    I do however want to thank the people at Sony (and sonyericsson). They were very active to find a solution so i can distribute this app. Their recent opensource engagement seems to pay out, for people like me.


    News:
    Today the 1.0.4 Version was released. It includes support for Japanese Basestation, different color systems (NTSC/...), experimental recording functionality...


    ----

    The official site of this app is theretv.zero997.com. I have also added a commenting system to the site. You can now put your feature requests and bug reports directly in the comments.



    The current status of the software is (as of 02/12/2012):
    • Compatible to all known BaseStations (LF-B1, LF-B10, LF-PK1, LF-B20, LF-V30)
    • Support for EU, US and JP models
    • Switch between MPEG4 and H.264(on supported BaseStations)
    • Recording of streams to MKV files (EXPERIMENTAL)
    • Remote control support
    • Registration works from within the app
    • Fullscreen playback
    • Works over Wifi/3G/4G
    • Selectable stream quality
    • Advanced performance settings (adjustable scaling filter/adjustable frame dropping)
    • Change the encoder settings of the BaseStation (framerate/videosize)
    • Change the video source
    • Support for the integrated tuner
    Here is a video showing the App in action http://youtu.be/R1uaKrfdAoc

    Upcoming features
    • Recording of shows directly on the device (like a DVR)
    • Timed recordings


    Thanks to my testers: insanenyc, Tommyboy_65_98, Mister_Mxyzptlk, Jim_IT

    Just on a side note, for all those people asking in other threads why no one made a LocationFree player even though Sony put the source code online:
    The code released from sony is just an excerpt of an opensource library they used to stream the data everything else is closed source.

    List of tested devices:
    • HTC Thunderbolt
    • HTC G2
    • HTC HD2
    • Nexus S
    • Glaxy Tab 10.1
    • HTC Inspire (overclocked to 1,5Ghz) : works
    • Motorola XOOM : works
    • Toshiba Thrive : works
    • Droid X : works
    • HP Touchpad : works
    • HTC Desire (not overclocked) : works although it is a bit too slow
    • HTC Wildfire: works but very very slow


    First message 02/03/2012
    Over the last month i've reverse engineered the Sony LocationFree Protocol and started the development of an Android client.


    Update 02/05/2012:
    The current release improves the frame dropping mechanism. This should result in better picture quality on slower devices. If the user sets a frame dropping factor the frames are only dropped at the end of a GOP. Thus the dropped frames are immediatly followed by an IFrame. This means that the frames following a dropped frame can be decoded without any errors.

    The synchronization between audio/video has been improved. The audio decoder can tell the video decoder to drop frames if the delay becomes too big, this means that video frames are dropped before the audio decoder has to drop anything, which should result in better audio quality.

    The remote control can now be shown/hidden.

    Update 02/07/2012:
    The encoded video size can now be set. The framerate of the encoder can be set.

    Update 02/07/2012:
    The support for LF-B10 BaseStations is now included

    Update 02/08/2012:
    Preliminary support for LF-V30 BaseStations. Video still has problems.
    Added support for the second video source

    Update 02/10/2012:
    The display problems of the remote control that some testers experienced are fixed now.
    The support for the LF-V30 BaseStations has been improved. But it's still H264 only


    Documentation:

    Once the app is installed. It's called ALF Player (Android LocationFree Player)

    1. When started it presents you with a play icon. Don't just hit it yet, you need to first hit the Menu key and got to preferences (enter Server address/port). You can also enter a hostname. If it does not work try it by directly conecting to the wireless network of the basestation first.
    2. Choose your remote (The remotes of all testers should be integrated already). If your remote is not listed i haven't extracted it yet.
    3. Go back to the play button and hit the menu key again.
    4. Got to registration.
    5. Set the Registration on the Base Station via the web interface to enabled. You should get a registration which is 8 characters long.
      Enter the password exactly as it is displayed (i guess it is always lowercase)
    6. Press "register". It should display Registration sucessful within a second. If registration does not work look at your base station anyway, it may
      have registered but did not detect it correctly.
      If that is the case, press back to get to the Play button and press it.
    7. It should take a few seconds for the stream to start (hopefully).

    To activate the remote just touch the screen
    To deactivate the remote touch anything except a button

    If you have performance problems you have the following options:
    • Reduce the Picture size
    • Set the scaling filter to fast
    • Lower the stream quality
    • Activate frame dropping (i.e 50 percent)
    • Lower the encoder framerate
    • Set the encoded video size to low

    Known issues
    • FIXED in 1.0.1 On some devices the player crashes before showing any video at all.
    • FIXED On some devices the remote control is not displayed correctly
    • FIXED The stream from LF-V30 BaseStations may cause trouble and not resync after dropped frames
    • PARTIALLY FIXED If the program can't connect it will hang until it crashes :)
    Donations:

    The following people have donated to this project (If you don't want to be listed here send me a message).
    If you consider donating more than the 4 Euros of the donation version, please use paypal, otherwise most of your money will end up with google (30% fees)

    Direct donations
    dzapme; Stefan Zimmermann; Joe Lo

    Donation version
    Tommyboy_65_98; Arthur Fernandez; ersd999; Dominic Zapletal; Ruben C De Jesus; Alvin Kelsey; gvece; M J Elvin; echardcore; Jeremy Carter; Wayne C Corby; Brian Metzger; Brian Ellerbusch; Mark De Jong; Thomas Pruss; Duane Leichtamer; James Smith, rallyraiden; Ghassen Mahfoudhi; Kenneth Dupre; hockeygoalie; the292
    Greetings


    How to get the program:

    You can download it from the android market

    or you can scan one of the following codes:

    Donation version (4 Euros)
    theretv_donate.png


    Free version
    theretv_free.png



    Michael
    2
    Hi,
    I want to thank the author for this amazing app.
    I've bought the donated version and it worked OK for me. But I wanted to use my remote (for Globo Opticum 4060cx SAT decoder). So I've done some research based on author's hints and managed to get the codes :) This has encouraged me to dig deeper :) I've reworked some classes in such way that:
    1. I've now got 16-button remote :)
    2. buttons are showing on my son's Asus TF300T running JB (with original version there was only black rectangle)
    Here is a screenshot form the TF:

    TherTVScreenshotSmall.jpg


    I've dropped voulume buttons because volume control is already on android device. I've added digits (to avoid using up/down buttons many times), EPG, EXIT and P/N buttons. P/N button is rather less universal - it switches my decoder from PAL to NTSC (in Poland we have PAL system but I've got NTSC LF version)

    Here is the actual buttons png image:

    buttons_alpha.png


    and the coresponding LFXGLPlayer class code change (onTouchEvent method):

    Code:
            float xf = motionevent.getX() / (float)getWidth();
            float yf = motionevent.getY() / (float)getHeight();
            if(motionevent.getAction() == 1)
                if((double)xf > 0.5D && (double)xf < 0.5D+0.12D && (double)yf < 0.22D && (double)yf > 0.02D)
                    lfclient.sendButton("d1");
                else
                if((double)xf > 0.5D+0.132D && (double)xf < 0.5D+0.24D && (double)yf < 0.22D && (double)yf > 0.02D)
                    lfclient.sendButton("d2");
                else
                if((double)xf > 0.5D+0.26D && (double)xf < 0.5D+0.366D && (double)yf < 0.22D && (double)yf > 0.02D)
                    lfclient.sendButton("d3");
                else
                if((double)xf > 0.5D+0.38D && (double)xf < 0.5D+0.49D && (double)yf < 0.22D && (double)yf > 0.02D)
                    lfclient.sendButton("power");
                else
                if((double)xf > 0.5D && (double)xf < 0.5D+0.12D && (double)yf < 0.48D && (double)yf > 0.26D)
                    lfclient.sendButton("d4");
                else
                if((double)xf > 0.5D+0.132D && (double)xf < 0.5D+0.24D && (double)yf < 0.48D && (double)yf > 0.26D)
                    lfclient.sendButton("d5");
                else
                if((double)xf > 0.5D+0.26D && (double)xf < 0.5D+0.366D && (double)yf < 0.48D && (double)yf > 0.26D)
                    lfclient.sendButton("d6");
                else
                if((double)xf > 0.5D+0.38D && (double)xf < 0.5D+0.49D && (double)yf < 0.48D && (double)yf > 0.26D)
                    lfclient.sendButton("pn");
                else
                if((double)xf > 0.5D && (double)xf < 0.5D+0.12D && (double)yf < 0.72D && (double)yf > 0.52D)
                    lfclient.sendButton("d7");
                else
                if((double)xf > 0.5D+0.132D && (double)xf < 0.5D+0.24D && (double)yf < 0.72D && (double)yf > 0.52D)
                    lfclient.sendButton("d8");
                else
                if((double)xf > 0.5D+0.26D && (double)xf < 0.5D+0.366D && (double)yf < 0.72D && (double)yf > 0.52D)
                    lfclient.sendButton("d9");
                else
                if((double)xf > 0.5D+0.38D && (double)xf < 0.5D+0.49D && (double)yf < 0.72D && (double)yf > 0.25D)
                    lfclient.sendButton("epg");
                else
                if((double)xf > 0.5D && (double)xf < 0.5D+0.12D && (double)yf < 0.98D && (double)yf > 0.77D)
                    lfclient.sendButton("channeldown");
                else
                if((double)xf > 0.5D+0.132D && (double)xf < 0.5D+0.24D && (double)yf < 0.98D && (double)yf > 0.77D)
                    lfclient.sendButton("d0");
                else
                if((double)xf > 0.5D+0.26D && (double)xf < 0.5D+0.366D && (double)yf < 0.98D && (double)yf > 0.77D)
                    lfclient.sendButton("channelup");
                else
                if((double)xf > 0.5D+0.38D && (double)xf < 0.5D+0.49D && (double)yf < 0.98D && (double)yf > 0.77D)
                    lfclient.sendButton("exit");
                else
                {
                    renderer.showUI(false);
                    requestRender();
                }

    and the arrays.xml change:

    Code:
        <string-array name="remotes">
                     ...
            <item>SV 360 elite</item>
            <item>Globo Opticum 4060cx</item>
        </string-array>
        <string-array name="remotenames">
                     ...
            <item>SV 360 elite</item>
            <item>4060cx</item>
        </string-array>

    and finally remotecodes.xml changes:

    Code:
    	<set name="4060cx">
    		<power>
    			<on>AQAJCgEBBQAIQEAKAJk=</on>
    			<off>AQABAgIC</off>
    		</power>
    		<channelup>
    			<on>AQAJCgEBBQAIQEALAJo=</on>
    			<off>AQABAgIC</off>
    		</channelup>	
    		<channeldown>
    			<on>AQAJCgEBBQAIQEAOAJ0=</on>
    			<off>AQABAgIC</off>
    		</channeldown>	
    		<volumedown>
    			<on>AQAJCgEBBQAIQEAQAJ8=</on>
    			<off>AQABAgIC</off>
    		</volumedown>	
    		<volumeup>
    			<on>AQAJCgEBBQAIQEARAKA=</on>
    			<off>AQABAgIC</off>
    		</volumeup>	
    		<d1>
    			<on>AQAJCgEBBQAIQEABAJA=</on>
    			<off>AQABAgIC</off>
    		</d1>	
    		<d2>
    			<on>AQAJCgEBBQAIQEACAJE=</on>
    			<off>AQABAgIC</off>
    		</d2>	
    		<d3>
    			<on>AQAJCgEBBQAIQEADAJI=</on>
    			<off>AQABAgIC</off>
    		</d3>	
    		<d4>
    			<on>AQAJCgEBBQAIQEAEAJM=</on>
    			<off>AQABAgIC</off>
    		</d4>	
    		<d5>
    			<on>AQAJCgEBBQAIQEAFAJQ=</on>
    			<off>AQABAgIC</off>
    		</d5>	
    		<d6>
    			<on>AQAJCgEBBQAIQEAGAJU=</on>
    			<off>AQABAgIC</off>
    		</d6>	
    		<d7>
    			<on>AQAJCgEBBQAIQEAHAJY=</on>
    			<off>AQABAgIC</off>
    		</d7>	
    		<d8>
    			<on>AQAJCgEBBQAIQEAIAJc=</on>
    			<off>AQABAgIC</off>
    		</d8>	
    		<d9>
    			<on>AQAJCgEBBQAIQEAJAJg=</on>
    			<off>AQABAgIC</off>
    		</d9>	
    		<d0>
    			<on>AQAJCgEBBQAIQEAAAI8=</on>
    			<off>AQABAgIC</off>
    		</d0>	
    		<pn>
    			<on>AQAJCgEBBQAIQEAYAKc=</on>
    			<off>AQABAgIC</off>
    		</pn>	
    		<epg>
    			<on>AQAJCgEBBQAIQEBCANE=</on>
    			<off>AQABAgIC</off>
    		</epg>	
    		<exit>
    			<on>AQAJCgEBBQAIQEBBANA=</on>
    			<off>AQABAgIC</off>
    		</exit>	
    	</set>

    These changes allow us to have 16 buttons instead of 5.

    The last change fixes (at least on the Asus tablet) black rectangle problem. It's done in OverlayImage class (loadTexture method):

    Code:
    //    Bitmap localBitmap = BitmapFactory.decodeResource(paramContext.getResources(), this.resourceID);
          Bitmap localBitmap = null;
          InputStream is = paramContext.getResources().openRawResource(this.resourceID);
          try {
        	  localBitmap = BitmapFactory.decodeStream(is);
          } finally {
              try {
                  is.close();
                  is = null;
              } catch(IOException e) {
    
              }
          }

    I hope that the author won't blame me for this post and maybe will be so kind to use my findings in next versions :)

    Sorry for my poor english

    Regards
    Kuba
    1
    Maybe try going a different route, trying thru development for their Xperia channel (they do use Android of course!)

    Natasha Dutta
    Senior Communications Manager,
    Sony Ericsson Mobile Communications AB
    Email: [email protected]
    http://developer.sonyericsson.com/wp/contact/
    1
    With the latest update this app is clearer and sounds better then the offical pc software made by Sony. It also looks and sounds better on my thrive and inspire then it does on my PSP.
    Fantastic work Michael !
    Tested the app all day yesterday with a 4g connection and it only dropped a few times and that was due to poor data service areas .This is a screenshot of the picture quality of the app on inspire it is so clear
    208b71cb-7c1d-b868.jpg


    Sent from my Inspire 4G using XDA App
    1
    Just picked up one of the Sony LocationFree base stations. Looking to try out ThereTV on my android tablet. But I can't access Google Play. Is there another way to get a hold of the APK for this app ? If it works, I will be more than happy to donate - this sounds like it's going to be great if I can get it up and running.