[Adium-vv] State of the Video Chat Address.

Elliott Harris excitebike at mac.com
Sun Oct 7 20:16:29 EDT 2007


Good evening.

Tonight, is a good night. I'm very proud to be here tonight, updating  
you on our voice and video status up to this point. With Leopard fast  
approaching, I'm confident in our progress so far, and I think that  
after you see what we've got, you'll be just as excited as I am about  
the coming months and what they mean for the State of Adium as a whole.

That being said, there is still much work to do, and I encourage all  
of you to dig in and get to it, we need help on all fronts, and the  
more hands we have working on things, the better.

Alright then, on to the screenshots!

First off, we're going to talk about the contact list. Obviously,  
iChat has implemented this very well, and so I don't see a reason to  
change it. For anyone starting a video chat from the contact list, a  
dedicated button per cell is clearly a good decision. It also provides  
a direct way to see who can video chat, and who can't. Now then, my  
button design skills are pretty bad, but here's what we've got so far.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: list-mockup.png
Type: image/png
Size: 103009 bytes
Desc: not available
Url : http://adiumx.com/pipermail/adium-vv_adiumx.com/attachments/20071007/d9b43f16/attachment-0001.png 
-------------- next part --------------




Obviously a straight rip from iChat, but I think it works very well.  
Our button design could use some work, the goal is to make an icon  
that scales well, since it will need to scale with contact list  
styles. Of course, it will need to be added as two additional images  
to contact list styles (one for video, one for audio), and the user  
will be able to toggle off the icons if they simply are not interested  
in video/audio capabilities at all.

Alright, while this is a good way to quickly view who can video chat,  
it doesn't really fit into Adium very well. Most of the time people  
have their contact list hidden or closed, which obviously obscures  
seeing who can video chat, but more importantly, makes initiating a  
video chat a chore. Also, most people don't start a video chat right  
away from the contact list, they generally engage in a conversation  
via text first, and then proceed to start up a video chat. Finally, we  
really want people to use Audio/Video chat. A lot. I mean, REALLY,  
want people to use it. If we could make it better than a first class  
citizen, we should. So it definitely needs UI exposure. We literally  
want to be pushing it down people's throats, making it so obvious,  
clear, and easy to use, why WOULDN'T you use video chat?

With all that information out there, here is what I'm proposing. I  
propose that instead of the obvious "put an icon in the toolbar",  
which would be constituted as first-class UI, I suggest that we move  
towards a context-sensitive toolbar for AV UI. I was thinking  
something... well, something like this.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Message Window.jpg
Type: image/jpeg
Size: 187611 bytes
Desc: not available
Url : http://adiumx.com/pipermail/adium-vv_adiumx.com/attachments/20071007/d9b43f16/attachment-0004.jpg 
-------------- next part --------------



Obviously, the buttons are a little rough, BUT, the context- 
sensitivity is the important part. We can choose when to show this  
toolbar (only when you are talking to a contact that is AV capable),  
and alter its contents based on what's happening. When a user is  
engaged with another user in AV chat, we can hide the toolbar for all  
the other users. This way, whenever you CAN AV chat, the controls are  
there, whenever you can't, they are gone.

So what happens when you actually decided you want to AV chat? Well,  
you click the appropriate icon, and we begin negotiating the  
connection in the background. We may decide to print some text in the  
message view, to inform the user of the status, or pop up a HUD-styled  
box to indicate that we're going to be starting a video chat soon.

So, let's click that video button.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Message Window Video Selected.jpg
Type: image/jpeg
Size: 189419 bytes
Desc: not available
Url : http://adiumx.com/pipermail/adium-vv_adiumx.com/attachments/20071007/d9b43f16/attachment-0005.jpg 
-------------- next part --------------



Alright, so while we're negotiating, the context changes again - this  
time to give the user controls to configure their audio settings for  
both input and output prior to the chat starting, these controls will  
continue to be available to the user, but this allows them to prepare  
for the video chat. Say you are listening to music, or had been  
watching a movie, you'd want to adjust volumes are such, or even if  
you had been recording music with your built-in microphone. Or perhaps  
you have a headset or something you want to use, or maybe to another  
output. All of these can be adjusted so that you can seamlessly move  
between your normal setup and an AV setup right before the chat begins.

So, now that the user has prepared their computer for AV chatting, and  
we've finished negotiating the connection, we get to use some fun  
Leopard technologies to transition between text and video. We start by  
moving the context sensitive toolbar down via Core Animation. This may  
be a slide, or even a pop out, pop in from the top to the bottom, but  
either way, here's what we're looking at now.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Message Window Transition.jpg
Type: image/jpeg
Size: 182875 bytes
Desc: not available
Url : http://adiumx.com/pipermail/adium-vv_adiumx.com/attachments/20071007/d9b43f16/attachment-0006.jpg 
-------------- next part --------------




"End" here will probably be disabled until we move to the video chat,  
but this is going to be a pretty quick step, because we will be  
animating again rather quickly, this time to spawn the video window.  
The alternative to this step was suggested by Chris, which is to  
render the video inline over your chat until you send/receive a  
message, in which case we fallback to this first case.

It looks a little something like this.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Message View + Video View.jpg
Type: image/jpeg
Size: 564262 bytes
Desc: not available
Url : http://adiumx.com/pipermail/adium-vv_adiumx.com/attachments/20071007/d9b43f16/attachment-0007.jpg 
-------------- next part --------------



Scaled down rather hard, but you can see we've spawned the window with  
the controls on the bottom, and we now have a working video chat. As a  
special note, this window is actually working as its own application,  
reflection and all, but I digress. We've got out video chat going now,  
(even though in this demo the picture is actually what Stuart would be  
seeing in our little mockup here. Anyhow, we'd be in video chat land  
now, and the context toolbar would never appear again, at least not  
until we leave the current video chat. All the buttons on the contact  
list will be grayed out / disappear, and we disable our video chat  
capability on the server so we don't get any requests.

So that does it for pretty pictures. Right now, we've got the video  
rendering done, and code that's ready to take on GStreamer as soon as  
we're ready for it. That is where we are stuck right now, as we are  
working towards getting GStreamer up and running on Leopard. The  
sooner that happens, the sooner we can work towards an alpha working  
over Jabber, hopefully resulting in iChat <-> Adium sometime in the  
future.

Here's my plan from here on out. Once we've got GStreamer up and  
running, I'm going to modify our display code to begin pushing the  
frames out to GStreamer while rendering them locally. I'm going to  
create a test bed that consists of our GstElement for generating these  
frames (needs to be written) that locally sends them to an osxvideo  
GStreamer sink, and will render them. Once this is done, we'll begin  
organizing with devl to begin integrating the code into Adium, at  
which time we'll begin work on the interfaces and integration work.  
Hopefully some of this can be done in parallel, and we can get some  
graphics work done at the very least before we start integrating so we  
have final graphics for screenshots and such.

So, that summarizes where we are at right now, and where we are  
heading over the next few months. With Leopard releasing sometime this  
month, I'd really like to aim to have some stuff "press ready" for the  
Leopard launch, so that we can go public with a bang, and really show  
people that we HAVE been working on VV, and that we are dedicated to  
getting it working.

That about does it. The floor is open for questions, comments, and  
feedback of course. If anyone else wants to mock up anything else, go  
for it. This is the time we need to make some solid design decisions,  
and to get things into gear so that we can keep making strong progress  
on AV.

Thank you for your time and your hard work,
Elliott





More information about the Adium-vv mailing list