[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