Sunday, February 13, 2011

Calling Others

To make a direct call to someone, just click one of the side window with a "blue head" on the right, and a "Make Video Call" window pops up, then click on the ">" and a list of names appears. Click on any nick to place the call.

If you did not join a room, then the list would contain the names of people who also did not join a room.  This provides a way for people who do not know each other to make contact.

If you joined a room, then only people who are in that room are listed.  This allows you to avoid being seen/called by strangers.

Wednesday, February 9, 2011

Android 2.3 Front Facing Camera Access

Even with Android 2.3, which supports multiple cameras, software written for Android 2.2 would still not be able to access the front camera.  The reason is the old interface is hardcoded to search for the rear camera.  I've posted more details at this thread:

http://forum.xda-developers.com/showthread.php?t=947018

Hopefully someone can make that simple change and recompile it.  It would allow all video chat apps to work with the front camera, not just mine.  As for Android 2.2, each device provides a specific API to access the front camera, so one would need to change the open() method to invoke that specific API, and of course, recompile.

Looks like this multiple cam access feature has been requested since 2008 (link), if not earlier, and now we finally see it in 2011.

Thursday, February 3, 2011

Compatible Android Devices

The following devices are known to work correctly with ReelPortal app, with the appropriate setup (ROM, AIR, Dashboard, etc). Note they all have a single front camera (no rear camera):

- Viewsonic gTablet (more details)
- Archos 70/101 Tablet (more details)
- eLocity A7 (more details)

The app runs on other Android devices, but only the back camera would work.  So it's not practical for doing video chat.  I'm disappointed to find that while Android 2.3 supports multiple cameras natively, Adobe AIR 2.5.1 can access only one (the rear one).  So hopefully Adobe hurry up and release an update that'd support multiple cameras.

Sunday, January 23, 2011

New Version (1.0.1)

I just released this version to the xda forums for testing.

http://forum.xda-developers.com/showthread.php?t=908613

Changes:
-  option to save nickname and room last used (you can clear it by set the fields to blank, then save).
-  added new field to enter the Server ip address, in case you want to run your own server (if not set, it defaults to the last used server)
-  hide that annoying red TOS box when you check it, and click Save.
-  when you enable the webcam, you can set its resolution and frame rate.

After a few days of testing, I will upload it to AppsLib market.  The executable for the Server (version 1.0.1) should be available shortly.



Sunday, January 16, 2011

Android Testing

So far the ReelPortal software seems to be most usable on the Viewsonic G Tablet.  The Samsung Galaxy Tab has a couple of major issues:  can't access front camera, and poor performance.  The first issue is common for Android 2.2 devices with dual cameras, because the OS doesn't support 2 cameras natively.  However, Android 2.3 will have support, so it would be a non-issue once that's released.  The poor performance is probably due to the single core, whereas the Viewsonic has a Tegra 2 dual-core CPU.  The Viewsonic also has a single front camera, so it works for ReelPortal.  Someone was able to do a 4-way video conference using the Viewsonic G Tablet and 3 PCs.

Link to Viewsonic thread:  http://forum.xda-developers.com/showthread.php?t=908613

Remember to join room "xda" (all lower case) if you want to test with other xda members!

Tuesday, January 4, 2011

Published to AppsLib

The Android version is currently available on AppsLib market:

http://appslib.com/applications/app.html?ida=31520

If you can't access AppsLib, you can download the apk file here:

You'd need to have Android 2.2 (froyo) on
your device. Please follow these steps to install:

1) Install the free Adobe AIR 2.5 runtime from the Android Market

2) Enable you device to install apps outside of Android Market
(Go to Applications—> Settings –> Applications—> Turn ON “Unknown sources”)

3) Download and install the reelportal.apk file from

http://www.reelportal.com/files/theme/download.html


Reelportal is a room-centric application. While you can call other
people if you know their nicks, you will automatically connect to
everyone in a room when you enter it, without knowing their nicks.

Audio test:

a) On your computer, go to www.reelportal.com.
b) Join/create a room "X" (or any room name you want)
c) Enable the microphone (button 9 should go green)

d) On your android device, launch the reelportal app
e) Join the same room "X", to automatically connect to your computer
f) Enable the microphone (button 9 should go green)

Your computer and android device should now be connected and streaming
audio to each other. Is the audio intelligible on both devices? Is there echo on either?

If the audio test was OK, then follow on with the webcam test: enable webcam (button 9 & 10 should go green) on both devices.

Your computer and android device should now be streaming video/audio to each other. Video puts a very heavy burden on the CPU, so it may not work well, depending on your device.

Saturday, December 18, 2010

Porting to Mobile Platforms (via Adobe AIR)

A port is in the work currently.  Android 2.2 tablet/phone and BlackBerry tablet are the first targets.  A prototype is running on both, but a few things are not working.  The GUI needs some changes to accommodate the various screen sizes and resolutions.  Looking for testers.  Please PM if interested.

Saturday, December 4, 2010

Persistent Connection

Just updated the client to maintain the connections "forever".  If your internet connection disengages and reconnects at a later time, the client will reestablish the connections that you had previously, and streaming would continue as before.  With this, you can have permanent connections with family and friends.  When you are not conversing, just turn your microphone and webcam off.  The other side would do the same.  The network bandwidth and CPU usage is minimal in this mode, since there are no active media streams.  When you want to start a conversation, just turn on your microphone and call to them.  Hopefully, they are there and respond in kind :).

This usage is ideal for mobile devices (smart phones, tablets, netbooks), that can use multiple ways for internet connection (wi-fi, 3g, 4g, etc).  Switching between service providers should only cause momentary disruption.

Sunday, November 14, 2010

Streaming Modes

Now you can select which of the three streaming modes to send your video & audio to others.  When you switch mode, the receiving side automatically follows you.  Note: the owner (publisher) of the webcam controls the streaming mode.  So while you elected to send your video via P2P, you may be receiving video from someone who is sending their video via the Server, P2P-Assist, or just P2P.  In other words, sending and receiving modes are independent of each other.

P2P Assist mode requires user confirmation in a dialog box.  This is because in this mode, you allow the software to receive video streams, AND possibly forward those streams to others that are interested in them as well.  Of course, it also means you may be the recipient of streams forwarded from another receiver, instead of from the sender directly.  Basically, the software determines what is the optimal path to send to each receiver, given it has access to each receiver's uplink bandwidth.

NOTE:  if you choose DENY in the dialog box, you will not be able to send or receive any stream via P2P Assist for the entire session.  The dialog box only appeared once per session.  To get the dialog box back, you must RESTART the session, and sign on again.

Wednesday, November 3, 2010

New feature: Peer-2-Peer (P2P) Streaming

This new version now supports both Client/Server and Peer-2-Peer (P2P) topologies.  You can mix and match them.  That is, user A, who has limited uplink bandwidth, can choose to send his webcam video to the Server, which will distribute it to user B and user C.  Meanwhile, user B, with unlimited uplink bandwidth, can choose to send his webcam video directly to user A and user C (using P2P), bypassing the Server.  In this case, user B doubles his uplink bandwidth usage, but his stream gets to user A and user C faster.

If you are in a 2-party conversation, P2P is the best option, because it will be faster and your bandwidth usage is the same as Client/Server mode.  If there are more than 2, you would need to consider your uplink bandwidth before choosing P2P.

The third option, Peer-Assisted Streaming, is currently in the works.  This mode allows user A to send his webcam video stream directly to user B, who has unlimited uplink bandwidth, would forward user A's video stream to user C.  The Server is not used, and user A didn't double his uplink bandwidth usage.