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

Search This thread

mgschwan

Senior Member
Dec 13, 2011
59
17
The new version made MPEG playback slightly worse (regular pauses every few seconds) but enabled smooth H.264 playback ! At least on my son's Asus TF300F with all settings set to max quality.

Hmm, that's strange, because the MPEG4 Playback on my XOOM improved considerably. But at least the H.264 improvement is a plus. Unfortunately I can't do a mixed version, it's either the old one or the new one.

I guess I have to wait for a few more performance reports and decide from that what to do.

Regards
Michael
 
Last edited:

Turbo_987

Member
Jan 16, 2011
28
1
@Turbo_987: Since extracting the remote commands is a bit tedious I would need to know which buttons are the most important (You can give me more than five buttons)

Thanks so much for the quick response! The most important buttons imo would be:
Up
Down
Execute
List
Ch+
Ch-
Play
Guide
Skip

Thanks again for all your hard work! Awesome app!
 

mgschwan

Senior Member
Dec 13, 2011
59
17
I just uploaded a new version with the additional directv buttons. Although I didn't find the Skip and Execute Buttons.

Regards
Michael
 

Turbo_987

Member
Jan 16, 2011
28
1
I just uploaded a new version with the additional directv buttons. Although I didn't find the Skip and Execute Buttons.

You, sir, are THE BEST! I'm sending a donation through PayPal so that Google doesn't get any of your hard earned money. It works great! While testing, I found the following issues that would be awesome if you could address:

1. Please add the following commands:
Format
Pause
Advance

2. Please remap + button (currently the guide command) to right.

3. Please remap - button (currently the exit command) to left.

I can't tell you how thrilled I am with your work. Thanks again!


Sent from my SCH-I605 using xda app-developers app
 
Last edited:

mgschwan

Senior Member
Dec 13, 2011
59
17
Is there any chance we are going to see the remote updated for ICS or Jellybean support?

---------- Post added at 01:35 PM ---------- Previous post was at 01:27 PM ----------

Are the remotes the same on the paid and the free version?

can you verify if the latest update fixed your remote problem ?

The remotes in the paid and free version are basically the same but the paid (as in donation) version may be a bit ahead with the available remotes as I update this version more often. But I keep the version numbers in sync, so you can verify with the version displayed in the Play store if the free version is equivalent with the paid version. For example: currently (12/20/2012) they are both at version 1.0.17, this means that they are both the exact same app, except for the background image.

But I usually try to keep them close together.

regards
Michael
 

Turbo_987

Member
Jan 16, 2011
28
1
I'm still not seeing the 12/20 update. Was there a problem with the upload, or is Google just slow on the uptake? Might I suggest mirroring the apk on your site (right next to the donate button) ;).

Sent from my SCH-I605 using xda app-developers app
 

mgschwan

Senior Member
Dec 13, 2011
59
17
I'm still not seeing the 12/20 update. Was there a problem with the upload, or is Google just slow on the uptake? Might I suggest mirroring the apk on your site (right next to the donate button) ;).

Sent from my SCH-I605 using xda app-developers app

No, there is not update from 12/20, the update was rolled out on 12/13. I was just very slow in answering your post :) . The version which should fix the remote problems is 1.0.17.

And I would rather not make it available outside the play store because then I wont have any statistics about the installs. Although I do sometimes send the apk to people who have problems getting it through the play store.
 

Turbo_987

Member
Jan 16, 2011
28
1
You, sir, are THE BEST! I'm sending a donation through PayPal so that Google doesn't get any of your hard earned money. It works great! While testing, I found the following issues that would be awesome if you could address:

1. Please add the following commands:
Format
Pause
Advance

2. Please remap + button (currently the guide command) to right.

3. Please remap - button (currently the exit command) to left.

I can't tell you how thrilled I am with your work. Thanks again!

Any plans to make the above changes/additions? Happy New Year!


Sent from my SCH-I605 using xda app-developers app
 

eaglestl

New member
Jun 26, 2007
2
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.
 
  • Like
Reactions: toysoft

tidus1ph

Senior Member
Nov 8, 2006
97
2
Daly City
Is the project still alive?

I'm using a Nexus 4 CM 10.2 and I'm experiencing image freezing. It'll play for a while then suddenly freeze but voice still playing. Happens every
time regardless of whatever setting I put in. Another issue is if I want it to work on my wifi, I need to put domain ip and if I want it to connect via cellular data, it need MyNeAV.
 

almararn

Member
Jun 18, 2011
34
5
Android 5.0

The app stopped working after upgrading to Android 5.0, will there be an update to fix this?
The app runs, but cannot connect to the locationfree device anymore. :confused:
 

j100078

New member
Feb 21, 2010
4
0
Fantastic app. Is there any way to contact the developer/ can anyone help to make this work with lolipop please?
 

cyclops49

Member
Oct 25, 2015
12
0
I've just send an email to Michael to ask Android 5 and he said below,
"sorry there is currently no Android 5 support. The app would need a rewrite to add support, and that is currently not planned."
 

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: sedwpress@sonyericsson.com
    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.