In case anyone is interested, here's the patch I wrote for this.
/src/hardware/hardware.cpp
Copy code to clipboard 1 --- dosbox-svn/src/hardware/hardware.cpp 2014-09-02 23:38:17.000000000 +0200
2 +++ dosbox-svn-ms/src/hardware/hardware.cpp 2014-09-02 23:48:00.000000000 +0200
3 @@ -81,6 +81,7 @@
4 } capture;
5
6 FILE * OpenCaptureFile(const char * type,const char * ext) {
7 +
8 if(capturedir.empty()) {
9 LOG_MSG("Please specify a capture directory");
10 return 0;
11 @@ -160,7 +161,27 @@
12 #endif
13
14 #if (C_SSHOT)
15 -static void CAPTURE_VideoEvent(bool pressed) {
16 +void CAPTURE_VideoStart() {
17 + if (CaptureState & CAPTURE_VIDEO) {
18 + LOG_MSG("Already capturing video.");
19 + } else {
20 + CAPTURE_VideoEvent(true);
21 + }
22 +}
23 +#endif
24 +
25 +#if (C_SSHOT)
26 +void CAPTURE_VideoStop() {
27 + if (CaptureState & CAPTURE_VIDEO) {
28 + CAPTURE_VideoEvent(true);
29 + } else {
30 + LOG_MSG("Not capturing video.");
31 + }
32 +}
33 +#endif
34 +
35 +#if (C_SSHOT)
36 +void CAPTURE_VideoEvent(bool pressed) {
37 if (!pressed)
38 return;
39 if (CaptureState & CAPTURE_VIDEO) {
/src/misc/programs.cpp
Copy code to clipboard 1 --- dosbox-svn/src/misc/programs.cpp 2014-09-02 23:38:15.000000000 +0200
2 +++ dosbox-svn-ms/src/misc/programs.cpp 2014-09-02 23:25:25.000000000 +0200
3 @@ -31,6 +31,7 @@
4 #include "cross.h"
5 #include "control.h"
6 #include "shell.h"
7 +#include "hardware.h"
8
9 Bitu call_program;
10
11 @@ -279,7 +280,9 @@
12 void CONFIG::Run(void) {
13 static const char* const params[] = {
14 "-r", "-wcp", "-wcd", "-wc", "-writeconf", "-l", "-rmconf",
15 - "-h", "-help", "-?", "-axclear", "-axadd", "-axtype", "-get", "-set",
16 + "-h", "-help", "-?", "-axclear", "-axadd", "-axtype",
17 + "-recavistart", "-recavistop",
18 + "-get", "-set",
19 "-writelang", "-wl", "-securemode", "" };
20 enum prs {
21 P_NOMATCH, P_NOPARAMS, // fixed return values for GetParameterFromList
22 @@ -288,6 +291,7 @@
23 P_LISTCONF, P_KILLCONF,
24 P_HELP, P_HELP2, P_HELP3,
25 P_AUTOEXEC_CLEAR, P_AUTOEXEC_ADD, P_AUTOEXEC_TYPE,
26 + P_REC_AVI_START, P_REC_AVI_STOP,
27 P_GETPROP, P_SETPROP,
28 P_WRITELANG, P_WRITELANG2,
29 P_SECURE
30 @@ -526,6 +530,18 @@
31 WriteOut("\n%s",sec->data.c_str());
32 break;
33 }
34 + case P_REC_AVI_START: {
35 + CAPTURE_VideoStart();
36 + //OpenCaptureFile("Video",".avi");
37 + //LOG_MSG('a');
38 + /* here's where i want avi */
39 + /**/
40 + break;
41 + }
42 + case P_REC_AVI_STOP: {
43 + CAPTURE_VideoStop();
44 + break;
45 + }
46 case P_GETPROP: {
47 // "section property"
48 // "property"
49 @@ -784,6 +800,8 @@
50 "-axadd [line] adds a line to the autoexec section.\n"\
51 "-axtype prints the content of the autoexec section.\n"\
52 "-securemode switches to secure mode.\n"\
53 + "-recavistart starts AVI recording.\n"\
54 + "-recavistop stops AVI recording.\n"\
55 "-get \"section property\" returns the value of the property.\n"\
56 "-set \"section property=value\" sets the value." );
57 MSG_Add("PROGRAM_CONFIG_HLP_PROPHLP","Purpose of property \"%s\" (contained in section \"%s\"):\n%s\n\nPossible Values: %s\nDefault value: %s\nCurrent value: %s\n");
/include/hardware.h
Copy code to clipboard 1 --- dosbox-svn/include/hardware.h 2014-09-02 23:38:09.000000000 +0200
2 +++ dosbox-svn-ms/include/hardware.h 2014-09-02 23:27:36.000000000 +0200
3 @@ -50,5 +50,8 @@
4 #define CAPTURE_FLAG_DBLH 0x2
5 void CAPTURE_AddImage(Bitu width, Bitu height, Bitu bpp, Bitu pitch, Bitu flags, float fps, Bit8u * data, Bit8u * pal);
6 void CAPTURE_AddMidi(bool sysex, Bitu len, Bit8u * data);
7 +void CAPTURE_VideoEvent(bool pressed);
8 +void CAPTURE_VideoStart();
9 +void CAPTURE_VideoStop();
10
11 #endif
edit: on sourceforge: https://sourceforge.net/p/dosbox/patches/262/