Hello Harry (and all),
Your idea is great, and I really thank you for the intiative, but... think
about it a little, I could get amsn to use farsight as soon as next week..
the farsight code is almost finished (I took a break because I have
exams), so why waste time on rewriting stuff twice? this is just
unnecessary to waste our time like this, we are already very much limited
in ressources and man power...
What I suggest, if you want to work on msncam, is to do part of it only,
only the part that will stay in amsn...
farsight integration will work in this way :
amsn will do all the protocol stuff, invitation, 200 ok, etc..
we create a farsight session object, then a stream object, set the sink
and the source...
when we receive the xml from the other user, we parse it and send it to
farsight through an API (to be determined later)
we connect to the reflector and get the information from there and send it
to farsight (yes, done in the beggining, just as MSN does)
we then ask farsight to 'prepare_transports', once they are ready (known
through a callback), we then get information on ourself with farsight api,
and build the outgoing xml (this step could be done in the beggining
depending on who needs to send the xml first, you or the other user)...
this should take care of any upnp, nat traversal stuff, open the ports,
etc...
once a connection is made, we start sending/receiving...
if no connection is made and the timeout is reached, a callback is called,
then we send the necessary information on the reflector throught the SB
and let the connection through the SB be made...
I'm not telling you to do all that, as you can't really know how to do it
without farsight... but I just want you to know what will stay in amsn and
what will need to be removed...
as you can see, anything related to sending/receving, codec, grabbers,
sockets, etc... has to be removed and will be implemented in C.
all the rest will stay...
I think the idea of Phil is quite a nice one... with farsight in mind, we
can change the source of the webcam with only one line, so we're ok with
that, all we need is an easy way to do it for the users... how about this :
the 'send webcam' item in the 'actions' menu, as well as the toolbar
button for the webcam, replace that with a cascading menu and a menubutton
respectively. taking for example the toolbar button, it becomes a
menubutton, you click on it, a menu pops up :
send webcam ->
ask for webcam
the send webcam would be a cascading menu with :
default source
----------------------- separator
send from webcam /dev/video0
send from webcam /dev/video1
send from file
send from file /home/kakaroto/video.avi
send from file /home/kakaroto/test.mpg
manage sources
clicking on the first item will make it use the default source (should be
for example /dev/video0 webcam), clicking on 'send from file' will open
the file chooser, clicking on manage sources will let you mange all the
sources you see there, so you can remove some, add some (like select a
file you're used to send... like the two files in this example), or set
one of the already defined sources as the default one. You could also
configure each source (see a preview, change brightness, etc...)
I think this way it's powerfull and still easy for the user.
This same submenu should appear in the cascading menu 'send webcam' from
the 'actions' menu.
I would also like it if it were possible to have the webcam appear in the
chatwindow, but still letting the user 'detach' it, this way I think
everyone would be happy...
Harry, if you want to work on this, that would be great, making sure it's
modular, like calling a "set_source" that sets the source, so we can just
change that function into calling farsight's set_source...
anyways, that's your call...
if you want to do only protocol stuff, then I can send you what I have on
farsight, so you can continue my work (until next week I guess), the code
is almost done being ported to the new API (spent 3 days on it, maybe only
1 or 2 days left of work), then we'll need to have a farsight-tcl package
that would wrap all farsight functions to be available from tcl directly
(maybe one more day of work), and finally, amsn needs to have calls to
farsight-tcl...
if we do this, we'll be good! webcam support will be much more easier this
way...
what do you think ?
KaKaRoTo
On Sun, 30 Apr 2006 06:42:21 -0400, Harry Vennik <[EMAIL PROTECTED]>
wrote:
Ok, I will have a look at Farsight documentation to make sure that what
I do
will not be contrary to the way Farsight works. I already thought of a
good
frontend/backend separation and (for sending webcam) separation of the
grabbing and the sending over the network. I don't think waiting for
Farsight
to be implemented is the perfect idea, I just need to keep Farsight in
mind,
and make my design such that Farsight can easily be used as a backend.
Anyway, thanks for mentioning, I heard of it before, but did not think
of it
now!
About multiple sources... in what I currently have there can be only one
source at a time. So you choose device for amsn, not per webcam session.
And
I think selecting it per session does not really have great advantages,
and
will make things unnecessarily more complex, both in development and
use. But
if others see advantages in being able to send from one device to one
contact, and from another device to another contact, I can make it that
way.
What I currently have in the new code (partially), is most similar to the
approach we already had on Mac. Have 1 grabber window, and use the image
from
that grabber. It appeared most intuitive to me. Seeing myself on any
webcam-related window I open (except receiving cam from others of
course), is
not necessary, seeing the image just once will do perfectly.
If we allow multiple sources, we may have a grabber window for every
source in
use, so that isn't even a big change. (Or maybe better... for every
source a
tab... unless people really want to see multiple sources. hmmm....
detachable
tabs maybe??)
Okay, just let me know what you all think, and I will try to conform to
your
wishes as much as possible ;-)
Harry
Op zondag 30 april 2006 11:21, schreef Philippe Valembois - Phil:
Really good idea !!
Some time ago I tried to clean up the code and make it clearer.... but I
gave up by lack of time...
Anyway, I would be happy if you would implement what I had in mind...
Currently we can send a preregistered session using a debug hack and it
applies to all open webcams... I wanted to generalize the way to grab
images... I mean, for each webcam session we could select the source of
the
image : either a file, a v4l device for linux, a DirectShow device for
Windows and so on and make it in a way to be able to add easily another
device class (we never know)...
If you could do in a such way, it could be great !! :d
Phil
P.S. I just remind, Youness tried to implement Farsight in aMsn so maybe
you should wait for it since it should make the webcam management
easier...
I leave my mail content anyway since it can bring some ideas for future
development ;)
But if I understood well, Farsight is to use with gstreamer... And
gstreamer will be really powerful to let us do the things I exposed
above...
Le Sunday 30 April 2006 08:23, Harry Vennik a écrit :
> Hi all,
>
> Just for your information, I started a msncam.tcl rewrite yesterday.
> Karel told me about a memleak in it (objects array) and I thought it
> would be fairly simple to fix, but while investigating it, I found
many
> other things that slow the whole thing down, and also it was hard to
tell
> how to clean up the objects array (i.e. where to do a unset, and what
to
> unset then). So I had to draw the conclusion that starting from
scratch
> would be the best way to go. Of course I also copy/paste many code
from
> the current msncam.tcl, but most of it will be modified. For example,
the
> objects array will not exist anymore. I am using snit-objects for
> everything.
>
> Of course the rewritten msncam.tcl will not go into the 0.96 release,
but
> will get in cvs shortly after the release, so it can be thoroughly
tested
> before it gets into a release.
>
> I am monitoring all work on the current msncam.tcl to make sure I port
> those changes to my new version if they apply to something that is in
> there already, but big code-reorganisations will be double work, so
> please don't bother ;-) We're in a bugfix-contest-before-release
anyway.
>
> Regards,
>
> Harry
>
>
> -------------------------------------------------------
> Using Tomcat but need to do more? Need to support web services,
security?
> Get stuff done quickly with pre-integrated technology to make your job
> easier Download IBM WebSphere Application Server v.1.0.1 based on
Apache
> Geronimo
>
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
> _______________________________________________
> Amsn-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/amsn-devel
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services,
security?
Get stuff done quickly with pre-integrated technology to make your job
easier Download IBM WebSphere Application Server v.1.0.1 based on Apache
Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job
easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache
Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel
--
KaKaRoTo
-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid0709&bid&3057&dat1642
_______________________________________________
Amsn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amsn-devel