Everything else that doesn't fall into one of the other PB categories.
			
		
		
			
				
																			
								chris319 							 
						Enthusiast 			
		Posts:  782  		Joined:  Mon Oct 24, 2005 1:05 pm 		
		
						
						
		 
		
						
						
													
							
						
									
						Post 
					 
								by chris319   »  Wed Mar 02, 2016 11:29 am 
			
			
			
			
			Here is a simple webcam program which works with the existing escapi.pbi and the escapi3 dll.
Code: Select all 
;webcam_simple.pb
;UPDATED 3/2/2016
DisableDebugger
IncludeFile "escapi.pbi"
WIDTH = 1279/1 ;640
HEIGHT = 719/1 ;360
WIDTHM1 = WIDTH - 1
HEIGHTM1 = HEIGHT - 1
#DEVICE = 0    
If setupESCAPI() = 0
      MessageRequester("Error", "Unable to initialize ESCAPI.")
    End
EndIf
    name$ = Space(255)
    getCaptureDeviceName(#DEVICE, @name$, 255)
    bufSize = WIDTH * HEIGHT * 4
    scp.SimpleCapParams
    scp\mWidth = WIDTH
    scp\mHeight = HEIGHT
    scp\mTargetBuf = AllocateMemory(bufSize)
    *buf = scp\mTargetBuf
    If initCapture(#DEVICE, @scp)
     
      image = CreateImage(1, WIDTH, HEIGHT, 24)
      OpenWindow(0, 0, 0, WIDTH, HEIGHT, name$, #PB_Window_SystemMenu)
      ImageGadget(0, 0, 0, WIDTH, HEIGHT, ImageID(1))
      offset = 0
      Quit = #False
offset = 0       
StartDrawing(ImageOutput(1))
*writeBuffer = DrawingBuffer()
pitch = DrawingBufferPitch()
StopDrawing()
      Repeat
         ;If WaitWindowEvent(1) = #PB_Event_CloseWindow
          If WindowEvent() = #PB_Event_CloseWindow
            Quit = #True
            Break
          EndIf       
     
doCapture(#DEVICE)
;Repeat: Until isCaptureDone(#DEVICE) <> #False
;NEEDS PIXEL-BY-PIXEL READING AND WRITING -- CANNOT USE CATCHIMAGE
hm1 = *writebuffer + (HEIGHTM1 * pitch)
*bufoff = *buf
For y = 0 To HEIGHTM1
  For x = 0 To WIDTHM1
    PokeL(hm1 + x*3, PeekL(*bufoff))
    *bufoff + 4
  Next
hm1 - pitch
Next
Repeat: Until isCaptureDone(#DEVICE) <> #False
SetGadgetState(0, ImageID(1))
Until Quit = #True
deinitCapture(#DEVICE)
FreeImage(1)
FreeMemory(scp\mTargetBuf)
CloseWindow(0)
    Else
      MessageRequester("ERROR", "Init capture failed.")
      End
    EndIf
    End 
			
			
									
									
						 
		 
				
		
		 
	 
				
			
		
		
			
				
																			
								r7mk4 							 
						User 			
		Posts:  13  		Joined:  Tue Aug 02, 2005 2:23 pm 		
		
						
						
		 
		
						
						
													
							
						
									
						Post 
					 
								by r7mk4   »  Wed Nov 10, 2021 10:56 pm 
			
			
			
			
			I get strange characters for  
 
getCaptureDeviceName(#DEVICE, @name$, 255) 
 
单⁂楖敤敄楶散 
 
any idea how change that? 
 
Cheers
			
			
									
									
						 
		 
				
		
		 
	 
	
						
		
		
			
				
								idle 							 
						Always Here 			
		Posts:  6045  		Joined:  Fri Sep 21, 2007 5:52 am 		
		
											Location:  New Zealand 
							
						
		 
		
						
						
													
							
						
									
						Post 
					 
								by idle   »  Wed Nov 10, 2021 11:29 pm 
			
			
			
			
			r7mk4  wrote: Wed Nov 10, 2021 10:56 pm 
I get strange characters for 
getCaptureDeviceName(#DEVICE, @name$, 255)
单⁂楖敤敄楶散
any idea how change that?
Cheers
the name will be an ascii or utf8 string, so like this 
Code: Select all 
*name= AllocateMemory(255)
getCaptureDeviceName(#DEVICE,*name, 255)
Debug PeekS(*name,-1,#PB_Ascii) 
 
			
			
									
									
						 
		 
				
		
		 
	 
	
						
		
		
			
				
																			
								r7mk4 							 
						User 			
		Posts:  13  		Joined:  Tue Aug 02, 2005 2:23 pm 		
		
						
						
		 
		
						
						
													
							
						
									
						Post 
					 
								by r7mk4   »  Thu Nov 11, 2021 8:34 am 
			
			
			
			
			idle  wrote: Wed Nov 10, 2021 11:29 pm  
r7mk4  wrote: Wed Nov 10, 2021 10:56 pm 
I get strange characters for 
getCaptureDeviceName(#DEVICE, @name$, 255)
单⁂楖敤敄楶散
any idea how change that?
Cheers
the name will be an ascii or utf8 string, so like this 
Code: Select all 
*name= AllocateMemory(255)
getCaptureDeviceName(#DEVICE,*name, 255)
Debug PeekS(*name,-1,#PB_Ascii) 
 
Wow!
Quite easy 
Thank's a lot!
 
			
			
									
									
						 
		 
				
		
		 
	 
	
						
		
		
			
				
								matalog 							 
						Enthusiast 			
		Posts:  305  		Joined:  Tue Sep 05, 2017 10:07 am 		
		
						
						
		 
		
						
						
													
							
						
									
						Post 
					 
								by matalog   »  Sun Dec 03, 2023 10:21 pm 
			
			
			
			
			EDIT, Nevermind - it requires the 32 Bit Version of PB. 
 
 
 
I am trying to get ESCAPI working, or any of the webcam demos that I have found on the various posts in the forum here, and on every one I have tried, I get some result the equivalent of "Unable to initialize ESCAPI", INIT=0 etc.  The last one I tried was the top post in page 2 of this post. 
 
Is there something I have overlooked that is required to initalise ESCAPI?   
 
I have a webcam plugged in, and copied the code from escapi.pbi, which is the same as escapi.pb in my folder.  The folder also contains escapi.dll and the saved programs that I have tried.