changeset 14957 | 8e4e508d153c |
parent 14919 | 9ab78e08a34c |
child 15272 | 22f2fd8a3d2c |
14956:c173fae0a223 | 14957:8e4e508d153c |
---|---|
46 |
46 |
47 procedure initModule; |
47 procedure initModule; |
48 procedure freeModule; |
48 procedure freeModule; |
49 |
49 |
50 implementation |
50 implementation |
51 uses uVariables, GLunit, SDLh, SysUtils, uUtils, uIO, uMisc, uConsts, uTypes, uDebug; |
51 uses uVariables, GLunit, SDLh, SysUtils, uUtils, uIO, uMisc, uTypes, uDebug; |
52 |
52 |
53 type TAddFileLogRaw = procedure (s: pchar); cdecl; |
53 type TAddFileLogRaw = procedure (s: pchar); cdecl; |
54 const AvwrapperLibName = 'libavwrapper'; |
54 const AvwrapperLibName = 'libavwrapper'; |
55 |
55 |
56 function AVWrapper_Init( |
56 function AVWrapper_Init( |
160 AddFileLog('StopVideoRecording'); |
160 AddFileLog('StopVideoRecording'); |
161 FreeMem(RGB_Buffer, 4*numPixels); |
161 FreeMem(RGB_Buffer, 4*numPixels); |
162 Close(cameraFile); |
162 Close(cameraFile); |
163 if AVWrapper_Close() < 0 then |
163 if AVWrapper_Close() < 0 then |
164 begin |
164 begin |
165 AddFileLog('AVWrapper_Close() has failed.'); |
165 OutError('AVWrapper_Close() has failed.', true); |
166 halt(HaltVideoRec); |
|
167 end; |
166 end; |
168 {$IOCHECKS OFF} |
167 {$IOCHECKS OFF} |
169 if FileExists(cameraFileName) then |
168 if FileExists(cameraFileName) then |
170 DeleteFile(cameraFileName) |
169 DeleteFile(cameraFileName) |
171 else |
170 else |
182 // read pixels from OpenGL |
181 // read pixels from OpenGL |
183 glReadPixels(0, 0, cScreenWidth, cScreenHeight, GL_RGBA, GL_UNSIGNED_BYTE, RGB_Buffer); |
182 glReadPixels(0, 0, cScreenWidth, cScreenHeight, GL_RGBA, GL_UNSIGNED_BYTE, RGB_Buffer); |
184 |
183 |
185 if AVWrapper_WriteFrame(RGB_Buffer) < 0 then |
184 if AVWrapper_WriteFrame(RGB_Buffer) < 0 then |
186 begin |
185 begin |
187 AddFileLog('AVWrapper_WriteFrame(RGB_Buffer) has failed.'); |
186 OutError('AVWrapper_WriteFrame(RGB_Buffer) has failed.', true); |
188 halt(HaltVideoRec); |
|
189 end; |
187 end; |
190 |
188 |
191 // inform frontend that we have encoded new frame |
189 // inform frontend that we have encoded new frame |
192 s[0]:= #3; |
190 s[0]:= #3; |
193 s[1]:= 'p'; // p for progress |
191 s[1]:= 'p'; // p for progress |