This forum software has now been archived into static HTML page (i.e. it does not function as a working forum anymore, so you cannot login.)
In due course a new forum will be available to help support newer CamStudio versions.
Sorry for the inconvenience and thank you for your patience.
In due course a new forum will be available to help support newer CamStudio versions.
Sorry for the inconvenience and thank you for your patience.
Comments
Not all changes in Sourceforge results in a binary available for everyone. To much work involved with that. We assume that people who are interrested in development are able to build their own executable from the sources.
Newer binaries can be found occasionly on my own website
But v2.6b-r273 can be downloaded from Sourceforge now.
Jan
Camstudio version 2.6b release 273 is released on Sourceforge.
Will be available on Camstudio.org soon.
Right now, mouse capture is used to catch all mouse events as it is in TransparentWnd.cpp of Recorder. This unfortunately doesn't always capture all mouse clicks:(
I propose to use hooks to capture mouse events. It seems should be possible to install handler to catch all mouse event before they reach window procedure of any window. This will allow to capture all mouse clicks with confidence.
Improvements are always welcome. :-)
I know you can code. Do you have an opportunity to write the patch and to put it in SourceForge?
Jan
Any improvement is welcome. If you want to be sure that ir will not break on different OS's you can create a private version first and use the forum to ask people to test it.
As far as I' know, Terry is involved with setting up a new test team.
Jan
Btw...Why do we use GDI and not GDI+ ? It would be nice to use anti-aliasing and transparency.
Thanks for the code upload.
I'm sure Jan will be able to answer the GDI/GDI+ question (cos I definitely can't ;o)
Cheers
Nick :o)
I propose to merge back into the main tree.
Can someone add yet another dialog option for middle button color since you are moving to new profile or something. I don't want to mess up with settings and RGB works fine for me. Green is currently hard coded for middle button.
Can something be done with BitBlt to improve appearance of highlights on dark backgrounds? Something like merge, but with color preservation.
Anyway, now I feel like I can record what I was planning to do instead of coding :-)
I hope you don't mind against small assembler code in the project for efficient conversion of COLORREF to ARGB with transparency :-) It required 80486+ processor. I hope I didn't brake anything else.
As Camstudio started many years ago and new development is not really planned there is a lot of legacy in he code.
Using GDI is one of this. Using VFW that gives troubles with the 2 GB file size is another.
BTW.
I just looked to your code. Excellent that you also write some comments what you want to achieve.
Would like to ask to use variable that are a little more readable by making them a little more self-explainable.
I will cleanup code a bit, I just wanted to get it to work ASAP. I'd like to have zoom feature that I may add soon.
==========
Everything we can borrow from other project is better than starting from scratch.
If we borrow code we should think before how we shall implement it. I prefer use of libs above code because libs allows us to follow ongoing development mush easier.
GDI-GDI+
========
I assume that the performance penalty was the reason why GDI was used instead of GDI+. As most systems are much more powerful now than a few years ago I do not see any objection to use GDI+.
Inline assembly
=============
Dislike the use of inline assembly because we do not know how well this will work with other and future OS's. With inline assembly we neither have possibility to implement fail-safe solutions.
VFW vs DirectShow ( AVI2 / Aforge )
==============================
People are indeed running long full screen sessions with Camstudio (Movies from TV for instance)
Also the possibility from Camstudio to record in high fps rates will make that 2GB is often a burden. (Although this is also because the AVI container is defined in 1988 and 2Gb was enormous amount of storage at that time)
One could say that VFW and old style AVI containes as implemented with VFW are classified as effectively obsolete for many years. To my best knowledge many new development is using DirectShow now. There are a lot of things you can do with DirectShow that you can't do with VFW.
If you have a look to this just look to Aforge. Use of Aforge can improve many things in the near future.
Zoom feature
===========
Excellent, but we need to be sure that this new features works on different OS's.
I assume that you will add an user interface to let users decide to use these new options.?
=============
I doubt that 80486 instruction set will be changed in the near future. Unless we use exotic processor and non x86 architecture, we should be good. That chunk shouldn't depend on Windows OS version, but it does depend on default calling convention, which can be specified explicitly.
VFW vs DirectShow ( AVI2 / Aforge )
==============================
Capturing a movie sounds like a task indeed. However AFAIK there should be some software that comes with capturing board. Anyway, I was just curious.
Zoom feature
===========
My current plan is to add CRect _zoomFrame that would hold current viewport within viewFrame boundaries. If autopanning is enabled (for viewFrame) and zoom> 1, it will adjust _zoomFrame instead, otherwise zoom is done at once to current mouse pointer location if autopanning is disabled (for viewFrame). Thus I plan to reuse some existing settings. I plan to make zoom smooth. For this I'm going to use Graphics::DrawImage from GDI+ which is known for bad performance. At least for me, it works fine and provides non-aliased magnification, as it is too much pain to use StretchDIBits in my opinion.
Bad news is that I have VS Express (don't ask me how I compile :-) ) and I cannot edit any dialog as resource editor is not available. I was shocked recently about current inflexible implementation of keyboard shortcuts. For now (my purposes) I'll hard code it to F12 or something. Mouse highlighting is an alternative implementation, so I guess it is not reasonable to let user decide since original highlighter is not good at all IMHO.
Great to see that the project is still alive.
Hope final version soon!
XNote = {//;[XNote];
DisplayFormatString="(0000) 00:00:00.000";
Annotation=0;
RemoteControl=0;
DisplayCameraDelay=1;
DisplayCameraDelayForwards=1;
RecordDurationLimitMode=1;
CameraDelayInMilliSec=175;
RecordDurationLimitInMilliSec=1750;
TextAttributes = {
position=6;
posType=0;
xPosRatio=0;
yPosRatio=0;
text="(0000) 00:00:00.000";
backgroundColor=16777215;
textColor=0;
isFontSelected=0;
font = {
Height=12;
Width=17142088;
Escapement=17142088;
Orientation=6218952;
Weight=5852932;
Italic=0;
Underline=0;
StrikeOut=0;
CharSet=0;
OutPrecision=0;
ClipPrecision=0;
Quality=5;
PitchAndFamily=1;
FaceName="Arial";
};
};
};
To build this version you will need libconfig ( http://www.hyperrealm.com/libconfig/ ) unpacked into $(SolutionDir)libconfig .
I suggest to consider CProfile obsolete as it doesn't support hierarchies and arrays/lists.
Replace existing files with those in archive. This is not complete installation, just an update over one of the recent 2.6 beta versions!!!
This version has zoom & enhanced mouse highlighting features. Transparency level & middle button color are fixed.
You can change zoom hotkey through camstudio.cfg file only. It defaults to Ctrl+Alt+F11 . To makde it just F11, set Mod = 0 in config.
Typos in new profile, actual cursor was not updated.
Autopan speed text label is not reset to 0 when slider is released.
Blinking frame is drawn with XOR to remove artifacts when zoomed
You are going so fast that I have neither time to get in sync with you :-)
But no complains, just great.
Code cleanup is important.
In the past some actions are taken to prevent abnormal ending due to uninitialized variables.
There is a lot of code that is 'just there, doing nothing' . Left overs of things that were started but never finished.
Just go on but give us an opportunity to test.
And if you are thinking about what to do next. AutoHotKey inplementation as special effects is also on the list.
What is AutoHotKey??
Possible features for Camstudio:
1 - Show key combination pressed as special effects in records
2a - Record pressed keys and mouse events in log file.
2b - Use log file to create and execute script that helps you to make a recording as you like with key presses and mouse click exact on time.
As I said I moved hotkey handler as a hook. Now it is possible to distinguish even which ctrl or shift was pressed. I thought to make second queue for key events. Show those within certain time lapse on one line, and if it was pressed later, move those key strokes to another line.
Though I agree, it would be nice to record events in separate files. I can do it for mouse now, though it is not clear about format of records.csv?
It is not clear how autohotkey fits in it. I feel like it can either launch something or send keystrokes.
Sources from 2006 still available.