2 * PlayStation 4 Eye basic sample
3 * If sceCameraIsAttached return 0 and you try to call sceCameraOpen you will received a invalid handle 0xFFFFFFFF...
4 * debug is using udp log: socat udp-recv:18194 stdout on your host
5 * change your ip to receive udp logs in sceNetInetPton function
6 * It will open camera , it will start and it will try to get 10 frames, then it will stop and close the camera and return
9 Camera opened with handle: 1
10 Camera started led is in on :P
11 Frame 0 sceCameraGetFrameData return 0 fine we got a frame
12 Frame 1 sceCameraGetFrameData return 0 fine we got a frame
13 Frame 2 sceCameraGetFrameData return 0 fine we got a frame
14 Frame 3 sceCameraGetFrameData return 0 fine we got a frame
15 Frame 4 sceCameraGetFrameData return 0 fine we got a frame
16 Frame 5 sceCameraGetFrameData return 0 fine we got a frame
17 Frame 6 sceCameraGetFrameData return 0 fine we got a frame
18 Frame 7 sceCameraGetFrameData return 0 fine we got a frame
19 Frame 8 sceCameraGetFrameData return 0 fine we got a frame
20 Frame 9 sceCameraGetFrameData return 0 fine we got a frame
25 #define debug(sock, format, ...)\
28 int size = sprintf(buffer, format, ##__VA_ARGS__);\
29 sceNetSend(sock, buffer, size, 0);\
33 // Init and resolve libraries
41 // Connect to server and send message
42 char socketName
[] = "debug";
44 struct sockaddr_in server
;
46 //udp log to port 18194
47 server
.sin_len
= sizof(server
);
48 server
.sin_family
= AF_INET
;
49 sceNetInetPton(2, "192.168.1.3", &server
.sin_addr
);
50 server
.sin_port
= sceNetHtons(18194);
51 memset(server
.sin_zero
, 0, sizeof(server
.sin_zero
));
53 int sock
= sceNetSocket(socketName
, AF_INET
, SOCK_DGRAM
, 0);
54 sceNetConnect(sock
, (struct sockaddr
*)&server
, sizeof(server
));
56 debug(sock
, "debugnet Initialized\n");
64 //First we check if camera is attached it must return 1 if not we can't follow and return
65 ret
= sceCameraIsAttached(0);
69 debug(sock
, "received error %08x\n", ret
);
73 //there is a check in libSceCamera.sprx it seems 0x0FF is the userid for service camera
74 handle
= sceCameraOpen(0x0FF, 0, 0, NULL
);
77 debug(sock
, "sceCameraOpen received error: %08x\n",handle
);
80 debug(sock
, "Camera opened with handle: %d\n", handle
);
81 //function check size and some values on unknown1 and unknown2 test and error you will get 802e0000 on bad values
82 SceCameraStartParameter param
;
84 param
.unknown1
= 0x08;
85 param
.unknown2
= 0x08;
87 ret
=sceCameraStart(handle
, ¶m
);
90 debug(sock
, "sceCameraStart received error %08x\n", ret
);
91 debug(sock
, "Stop camera return %08x\n", sceCameraStop(handle
));
92 debug(sock
, "Closing camera return %08x\n", sceCameraClose(handle
));
95 debug(sock
, "Camera started led is on :P\n");
96 //function check size it must be < 0x209 and correct values on unknown1. bad values or incorrect size and you will get get 0x802e0000
97 SceCameraFrameData frame
;
100 for(index
= 0; index
< 10; index
++)
102 ret
=sceCameraGetFrameData(handle
, &frame
);
105 debug(sock
, "Frame %d sceCameraGetFrameData received error %08x\n", index
, ret
);
110 debug(sock
, "Frame %d sceCameraGetFrameData return %d fine we got a frame\n", index
, ret
);
113 ret
=sceCameraStop(handle
);
116 debug(sock
, "received error %08x\n", ret
);
119 debug(sock
, "Camera stop led off\n");
121 sceCameraClose(handle
);
124 sceNetSocketClose(sock
);