RunProgram() is being used to set up the pipe and readFrame is the result, which is non zero.
Code: Select all
count = ReadProgramData(readFrame, @frame(0), #H * #W * 3)
Code: Select all
count = ReadProgramData(readFrame, @frame(0), #H * #W * 3)
Code: Select all
*buf = AllocateMemory(1024 * 1024)
prog.i = RunProgram("/usr/bin/w", "", "", #PB_Program_Read | #PB_Program_UTF8 | #PB_Program_Open)
count.i = ReadProgramData(prog, *buf, 1024 * 1024)
Debug count
result.s = PeekS(*buf, -1, #PB_UTF8)
Debug result
CloseProgram(prog)
Code: Select all
*buf = AllocateMemory(1024 * 1024)
prog.i = RunProgram("/bin/cat", "/dev/urandom", "", #PB_Program_Read | #PB_Program_Open)
count.i = ReadProgramData(prog, *buf, 1024 * 1024)
Debug count
result.s = PeekS(*buf, -1, #PB_Ascii)
Debug result
CloseProgram(prog)
Code: Select all
pipeIn$ = "-i " + filename$ + " -f image2pipe -s 1280x720 -pix_fmt rgb24 -r 59.94 -vf zscale=in_range=limited:out_range=limited -vcodec rawvideo -"
;readFrame = RunProgram("/usr/bin/ffmpeg", pipeIn$,"/home/chris/PureBasic/source/",#PB_Program_Open | #PB_Program_Read)
readFrame = RunProgram("ffmpeg", pipeIn$,"",#PB_Program_Open | #PB_Program_Read)
If readFrame = 0
MessageRequester("Error", "unable to open pipe")
End
Else
MessageRequester("Success","Pipe opened")
EndIf
For ct = 1 To 30 ;READ FIRST 30 FRAMES
count = ReadProgramData(readFrame, @frame(0), #H * #W * 3)
Debug count
Next
Code: Select all
pipeIn$ = "-i " + filename$ + " -f image2pipe -s 1280x720 -pix_fmt rgb24 -r 59.94 -vf zscale=in_range=limited:out_range=limited -vcodec rawvideo -"
;readFrame = RunProgram("/usr/bin/ffmpeg", pipeIn$,"/home/chris/PureBasic/source/",#PB_Program_Open | #PB_Program_Read)
readFrame = RunProgram("ffmpeg", pipeIn$,"",#PB_Program_Open | #PB_Program_Read)
If readFrame = 0
MessageRequester("Error", "unable to open pipe")
End
Else
MessageRequester("Success","Pipe opened")
EndIf
bytesReadSum.i = 0
bytesRead.i = 0
While ProgramRunning(readFrame)
bytesRead = ReadProgramData(readFrame, @frame(0), #H * #W * 3)
If bytesRead :
bytesReadSum + bytesRead
Debug bytesReadSum
EndIf
Next