Sensoray 2253P Owner's manual

Type
Owner's manual

This manual is also suitable for



 !"#
$"%
&'()$*+,-$(''&)$.
*+$$*&+
*&'()$*&+ /
0&0 1/
$"%23 4
!'3!
+%2'.!
,* !'3! 5
'63)7%#
%3006"8
%32&0 1
%30"8&0 1
%32&16
,'*& 1 
96'1
:!% .
 :)(7()(+( 
,+%
1*) 
* *&;,;7$<* *&;;7$<* *&;$)-;7$/
* *&;,;='(,&'<* *&;;='(,&'4
* *&;(+;*+'$<* *&;,;*+'$<* *&;;*+'$4
* *&;(+;&$'$<* *&;,;&$'$<* *&;;&$'$4
* *&;>()-$)<* *&;,;$)<* *&;;$)<* *&;$)-;(?$;$)<
* *&;,;(?$;$)<* *&;;(?$;$)4
* *&;(+ *&<* *&;,; *&<* *&;; *&#
* *&;(+ &$<* *&;,; &$<* *&;; &$
* *&;(+& (); 
* *&; (& (); 
;* *&;& 
;* *&;&:
;* *&;&()-
;* *&;($;(); $.
';* *&;;(+& ();)(($
';* *&;;(+& ();)( 
';* *&;,;(+& ();)( 
';* *&;;,'; $/
';* *&;,;,'; $/
';* *&;;,';)( $$/
';* *&;,;,';)( $$/
';* *&;;,'*&;&+7*,4
';* *&;;,'*&;@)*$(4
';* *&;;,'*&;)( 4
';* *&;,;,'*&;)( 
';* *&;;(A&
';* *&;;,';(+(5
';* *&;,;,';(+(5
';* *&;;()*&+;)( 5
';* *&;,;()*&+;)( 5
';* *&;;&$$;)( #
';* *&;,;&$$;)( #
';* *&;;?*&;(+(#
';* *&;;?*&;)( 
';* *&;,;?*&;)( 
';* *&;;?*&;'(
';* *&;,;,';$*$ (
';* *&;,;,';&+,*$ (
';* *&;,;,';'(( 
';* *&;,;,';&)(
';* *&;,;,';$;$*(
';* *&;,;,';$; $(
';* *&;,;,';$(*$(
';* *&;,;,';&:
';* *&;,;,';,,.
';* *&;,;,';,.
';* *&;,;,';,.
';* *&;,;,';).
';* *&;;(+;-+(+.
';* *&;;(+& ();&
';* *&;,;&+*+(
';* *&;;'(+ 
)(**&+A*$&)-/
&036%!00
$2 :2%"10"$%00%01
2%%"$2 :!682%"%<"
2%%3$2%B81%%/
C2%"!%001%/<232%!%
!6"!
.
*%
$2%!6"%" !%6D%"
%*2E%<"F002
103220
0%0!%%
G 0823FEH
tar xjf sdk_2253_X.Y.Z_linux.tar.bz2,
2?-I%21%2 :
G 232622208 :%H
cd sdk_2253_X.Y.Z_linux
G 21!00H
make all
.G *%2!%E!H
sudo make install
G '321"0$2!"
!621%2"6%
/G &0H*2%01%6033<03
%0<2!!62H
modprobe s2253
+H$2%%0%6"0!"<2!
%26%"!622%0%*28
1%6%6%!23%<%0%.!6"0!
3%2!%
%&0
@221%<2211%,'*&
21216$21%!
J1?K2?0%2!"11%0%2
%6%!$2E%11%1001
2211%10
Video Capture and Output Driver
$21%00%.L.G%$2.'*%
!2$"%
L20H13%1.91"90%G.0%
%008%"/$21.91"233%B
L!!G%2%1
$2211%"%200%2%00.'*
"0%3!0%%-.L08----G
-.#'L+%!90<-01"0G
!0%%!%='(,<'(,.'A/.!6
%!%$2'(,.A/.%!%%"!2
L2%6G'.'(,%0%!20
1%1!%3%<201"
%<%00<E306!10%
"E306<%2%0<"32%%<2<%<
%
&!00%03!0%%1%31
2%!%60132!0%%12%06
2!0%032329"2!0%%1%3
12%!%6%!39"2!0%%11
8
$210106!0%%%!%3'(,.
A/.!6%!%'.!3!%!%'(,
%0%!%%%002%6='(,3%
%002%!
$2!%212!601%"20
%!%20%!%!%6*%!!!
%"20%!%%!%6<%30%!%3
0%!%!%6$2!!600%%31
306"8
/
Troubleshooting
*21%<321<21
1%<2%!68!0"60"!2
1'%%20!Juname -rKJdmesgK22!
1%!"2%"[email protected]*
621%!"8<0%%0128E3
E
$21E%8!2%%
/lib/modules/`uname -r`/extra/s2253.ko.
*2%E%!%%3<2220068%0<0%
%21<%30.2%0%%*6212
JlsusbK03!%<6%21E!%
@2%033<62%215.H
2( L G2$"%$21%2
E!E2!/lib/firmware/s2253.fw*2%E%
!%%3<0%%21<0.2%0%%@22
E!%<21%2235.H
2( $"%2"
*2( %322%%"15.H%2
E!2%M<23216J1K
J%!8KJ%!8K$2%212
%!"3!%%3%"<J!%3K%201%!
"20"!
$2( 2$"%2%%2
!0%10%3$2( "822%3%"%
%M!22B%1%0!$2( "83
""6%31.L%'*G
4
Demo Program
8%1%%
 8!2!!Jmake demoK
 J./captureK%2!00
 $60J/capture -hK20!
. 7!0<60J./capture -4 -b 2000000 -o output.m4vK
%1'(,.1"0%2Eoutput.m4v
06"%%06110"62
%!!006!!%%061%!%H
mplayer tv:// -tv outfmt=yuy2:width=320:height=240:norm=NTSC:device=/dev/video1
mplayer tv:// -tv outfmt=uyvy:width=320:height=240:norm=NTSC:device=/dev/video1
mplayer tv:// -tv outfmt=mjpg:width=320:height=240:norm=NTSC:device=/dev/video1
MPEG4: mplayer tv:// -tv outfmt=0x5634504d:width=640:height=480:norm=NTSC
H264: mplayer tv:// -tv outfmt=0x34363248:width=640:height=480:norm=NTSC
$20%2332!%2outfmt%3$22
232%3%2!3%F$2!%38+$
'$21%3%220106!<3
6%!06!!%%06"2%!%%!%6
Notes on the MP4 format
$2'.!0"62%1
%6!%3%!$21%%J3!K'.
%!<22!8%0%%"%!!61
83!E%6%1<%0%%
0623!!2%!00
%00!66062>8!<'677!03$%
2'.E%06"!%06%<20!
%06%%23!%!!!6!'.
E
$0!'.!<%29!029.90
220!$20!%"E
$03!'.!<%29F029.9
0+22%E!606%!06%
$06'.E22101<!%"23!
!7!0<J0!0.N11K062E2
1
$06'.E2%93!<%206"8!03!<
2212E929O623!!06
21
GUI Demo Program
8%1%%(200
J!06K216$2008%!
23!3H
%2 1+!%2%!2210$2
"%2"%8%3='(,%0%22
6<201%32!0600L
%<G0%!E<8%!1 '$2
%%%62%32%!<232%
""%"P%2%!3$2!0601E
022 1+!%%<3
!0%!%"001%!%6
5
Playing Recorded Files
(!0%2+'6LG'6(77!03
"%H20H131
'6"%H20H!062B2
77!03"%H20HC!033
@20%%B<%5540%+$<0%'%<
%"%2!3%F%0<%/.#.#
!0%H
MJPEG: vlc output.mjpg --mjpeg-fps 29.97
MPEG4: vlc output.m4v
h264: vlc output.h264
MP4: vlc output.mp4
'6!0%H
MJPEG: mplayer output.mjpg -fps 29.97
UYVY: mplayer -rawvideo format=uyvy:w=640:h=480 -demuxer rawvideo output.uyvy
-fps 29.97
YUYV: mplayer -rawvideo format=yuy2:w=640:h=480 -demuxer rawvideo output.yuy2
-fps 29.97
NV12: mplayer -rawvideo format=nv12:w=640:h=480 -demuxer rawvideo output.nv12
-fps 29.97
grey: mplayer -rawvideo format=y800:w=640:h=480 -demuxer rawvideo output.grey
-fps 29.97
MPEG4: mplayer output.m4v
h264: mplayer output.h264 -fps 29.97
MP4: mplayer output.mp4
77!031%*!H
MJPEG: ffmpeg -f mjpeg -r 29.97 -i output.mjpg -vcodec copy output_mjpg.avi
UYVY: ffmpeg -f rawvideo -pix_fmt uyvy422 -s 640x480 -r 29.97 -i output.uyvy
-vcodec copy output_uyvy.avi
YUYV: ffmpeg -f rawvideo -pix_fmt yuyv422 -s 640x480 -r 29.97 -i output.yuyv
-vcodec copy output_yuyv.avi
NV12: ffmpeg -f rawvideo -pix_fmt nv12 -s 640x480 -r 29.97 -i output.nv12
-vcodec copy output_nv12.avi
grey: ffmpeg -f rawvideo -pix_fmt gray -s 640x480 -r 29.97 -i output.grey
-vcodec copy output_grey.avi
MPEG4: ffmpeg -f m4v -r 29.97 -i output.m4v -vcodec copy output_mpeg4.avi
h264: ffmpeg -f h264 -r 29.97 -i output.h264 -vcodec copy output_h264.avi
$2E%%"1*!%3!
MJPEG: mencoder output.mjpg -fps 29.97 -ovc copy -o output_mjpg.avi
UYVY: mencoder -rawvideo format=uyvy:w=640:h=480 -demuxer rawvideo output.uyvy
-fps 29.97 -ovc copy -o output_uyvy.avi
YUYV: mencoder -rawvideo format=yuy2:w=640:h=480 -demuxer rawvideo output.yuyv
-fps 29.97 -ovc copy -o output_yuyv.avi
NV12: mencoder -rawvideo format=nv12:w=640:h=480 -demuxer rawvideo output.nv12
-fps 29.97 -ovc copy -o output_nv12.avi
grey: mencoder -rawvideo format=y800:w=640:h=480 -demuxer rawvideo output.grey
-fps 29.97 -ovc copy -o output_grey.avi
MPEG4: mencoder output.m4v -ovc copy -o output_mpeg4.avi
h264: mencoder output.h264 -fps 29.97 -ovc copy -o output_h264.avi
#
Using ALSA for audio capture and playback
$2101%'<349
90$210%0621
01
$E2!2"<%203!J9KH
**** List of CAPTURE Hardware Devices ****
card 1: s2253 [Sensoray 2253], device 0: s2253 [Sensoray 2253]
Subdevices: 1/1
Subdevice #0: subdevice #0
A%1#%2<%"%J2H<#K
$<%203!%0621<!<
%!0<!"2%7!0H
PCM 16-bit stereo: arecord -D hw:1,0 -f S16_LE -r 48000 -c 2 output.pcm
g.711 A-law mono: arecord -D hw:1,0 -f A_LAW -r 8000 -c 1 output.g711
g.711 mu-law mono: arecord -D hw:1,0 -f MU_LAW -r 8000 -c 1 output.g711
%QN3<290!2
7!0%<%2!03HJ!K
$06"822%<%20603!%06
2%!%3%%7!0H
PCM 16-bit stereo: aplay -f S16_LE -r 48000 -c 2 output.pcm
g.711 A-law mono: aplay -f A_LAW -r 8000 -c 1 output.g711
g.711 mu-law mono: aplay -f MU_LAW -r 8000 -c 1 output.g711
$P%21!0<%2%!!!7
!0<2!"%<%290J%!9
K%2"86%RS<86%%2
%323$21!%<'6"80
$2*0,%3%!,322%T
%!0221!%21C2,%
"$2*0%3%6%22
*0%'%%(%!
*2!!9%<69!000
%2""232%3%21
$21!0%%3%09"%3%%
C26'.'(,9$%!%"30

Using the Video Output Device
$2%%606E2101%00
E%32JK!2H
cat output.m4v > /dev/video2
$21!02E!%2!
!6$2101606"8'(,9.A/.
!6%!%<'.3!%!%<'(,9$
$2J06"8K!03!%!021
93!'.%!3!%!06"21
$21!2!%%2!0%%%!<
2%0122320!%
$2J06"8K!!6%"%06!0%%%!%<"
B2!!%%"01%0!%
$21%!%"%!606"87%!6
%%!3!*2%!!%%
%!22%06%FL4#.#+$4#4/'G2!3
"2%062"8"
$06"820<21"832%%6%
2"C12%"$%006"8!!6
%"C1<%2* *&;$)(&77
* *&; (& (); .; (; ;$&'
Using Loopback on Video Output Device
%2%!!%0"8!0.3!%!1
0H
09F9%4#..#939#9906"89
$20!O%2%20E%02!2
06"8!%%9"C806!!!2
0632%!122%$2%%%22!008
!%660<%2"%
%%0%%"!!%%%2"8"6%!3
0010
%3L!0H11#N11G0!2
1%%6.8"C32%!$2%"C3
%0!%<%322!0
!1%<%326
$206"8!%%96!2063!
9E%<321!6622
1!%22%32!%!260
1!%%2;* ;&@;$(+-2'*


Using the Video Overlay
$21302!3%1210%06$2
216%/9"%090!9"%
090%06!$21%00%16!3%
2'+,!.9"'!$21!0
%%%00%93%
$21!2!302!3%121
001%!%03023%!6"%2%!
!33%%2"1<%%3E0%%3!6%
1!%"00$2302%0062!
22!3<2!2!6216302
'+,'!3%"1!2!
$2 :overlay6%overlay03!16
!3%%2%0overlay-demo.sh2%!0!3%
01$2%2%0overlay-lines.sh%2%06
$2%2%0overlay-text.sh2%06$2%2
%0overlay-font.sh%2%6%!%
2%2%2"83$2%!0overlay.c
%2%2!23!!%21
%S2253_VIDIOC_OVERLAY"%"3!%
3
GPIO Device
$2,'*&1%0%%%6%%,'*&%%$2%
321%6%%%30(2"00%%
3020+++%"6<3"E%"32"
%HJ+./K<2"%30E%%"32
,'*&3%"62"$2"%%"%2E%30+++
%"6230%2"$230+++%"6%
EL3JKJKG21EJK,'*&
"!"6321E<JK,'*&"!E"6
3JKJ#K21E
%!0!2%%01%1.2,'*2
,'&2'*S2253_CID_GPIS2253_CID_GPO
Low-Latency Preview
$1%9601<2%!!!%"--<2
4#.<232.#+$4/'<0!%"<!3
O0%"<!%"%$296!%
%!622%!U2%%3%22
%%96!$2%!"60%%%2%F%%
11%%%"!%1"!210

9601!"%%!%62
L2%3'.'(,9$!<!0G$2
9601"%2!6!9601
2%%<1"82%%00*96
01%B%!<%
V4L2_MPEG_AUDIO_ENCODING_NONE022
V4L2_CID_MPEG_AUDIO_ENCODING
Known Limitations
1%%<6%!%%2"%!H
0<00$2%"%%1!"
0%H
Capture 1 Capture 2 Output
&8 &8
&8 &8
&8 &8
'(,9.00"%%!%62A/.0
$2%"%%1!"0%H
Capture H.264 Capture MPEG-4 Output H.264 Output MPEG-4
&8 &8
&8 &8
&8 &8
)01!%!3!"2*
!01%2%!2"<013
2!6%C%LP86%310
0G
$2%C%H
!121C2"
222322011
2!
2%!"2!%< --01 --
0"0!%!%6!
.
:)
General Notes
1%%%1/dev/videoX2?%2!"
%%3212%033$2/dev/videoX%
"21$2E%11%
1022%10@2212
%"!"6%32* *&;>()-'
!2E2%$21%%00!00<
3%!0!%"23929O62203!%
%%321
Driver Ioctl Reference
$2%%01%129%0E
0"%<2B32%B621%32.'*
321%7!0.'*<
0%%2$3"%
L20H13%1.91"90%G
%ioctl2%!3002
$2E%0!LfdG%E%0"6open()<22
%0E%2%%1
$2%0!LrequestG%2B%<22%0E%2
60B%
$220!%09%0E
%#%%%%<311%
$2ioctls"%"62B%0!
19%0E%%B%%E
1%2

VIDIOC_G_FMT, VIDIOC_S_FMT, VIDIOC_TRY_FMT
int ioctl(int fd, int request, struct v4l2_format *fmt);
fmt->pix.width
*33"4#%0%/
fmt->pix.height
*335/.#L+$G4/L'G%0%/
+H0<22323!0%%!%
L='(,''.A/.'.G%!%%2
%!
fmt->pix.pixelformat
007&)%H
V4L2_PIX_FMT_MJPEG –!0%%!='(,
V4L2_PIX_FMT_JPEG –%!%V4L2_PIX_FMT_MJPEG
V4L2_PIX_FMT_MP4V –'(,9.1!6%!
V4L2_PIX_FMT_H264 –A/.1!6%!
V4L2_PIX_FMT_MP42 –'.3!%!
V4L2_PIX_FMT_MPEG –'(,%0%!
V4L2_PIX_FMT_UYVY –-.12!E%
V4L2_PIX_FMT_YUYV T-.1!E%
V4L2_PIX_FMT_NV12 –-.#%!90!
V4L2_PIX_FMT_GREY –-9"%!0%6
+H%E112%2
fmt->pix.field
00!%H
$2V4L2_FIELD_NONE0%%%%3E
0%02!%%3%$2%!2!1%2
P333%%"6!"E%<03%!2
03%%1!$2%%%20C3"210
%!%2
$2V4L2_FIELD_INTERLACE001%"2E%2
0!%%!"3%!60022
0232%!22123221%
$2%%%20C3"210%!%2
$2V4L2_FIELD_ANY0%232!<13
2321
$2E!%""62;* ;*+$()'&$(
<%"
/
VIDIOC_G_JPEGCOMP, VIDIOC_S_JPEGCOMP
int ioctl(int fd, int request, v4l2_jpegcompression *jc);
jc->quality
*33#5#$2%4
.;'*?;7$;='(,!%"%
VIDIOC_ENUM_INPUT, VIDIOC_G_INPUT, VIDIOC_S_INPUT
int ioctl(int fd, int request, struct v4l2_input *inp);
$2%60#<!J!0%K
$2inp->statusE!6212"V4L2_IN_ST_NO_H_LOCK%2
1%"8201%3
VIDIOC_ENUM_OUTPUT, VIDIOC_G_OUTPUT, VIDIOC_S_OUTPUT
int ioctl(int fd, int request, struct v4l2_output *inp);
$2%60#<!J!0%K
VIDIOC_QUERYCTRL, VIDIOC_G_CTRL, VIDIOC_S_CTRL,
VIDIOC_TRY_EXT_CTRLS, VIDIOC_G_EXT_CTRLS,
VIDIOC_S_EXT_CTRLS
int ioctl(int fd, int request, struct v4l2_ext_controls *ctrls);
@2%3* *&;,;$)* *&;;$)<
%9N;%%VVV4L2_CTRL_CLASS_USER,
the s00ctrls->controlsE%1%H
V4L2_CID_BRIGHTNESSH#<06
V4L2_CID_CONTRASTH#<06
V4L2_CID_SATURATIONH#<06
V4L2_CID_HUE:9<#06
V4L2_CID_AUDIO_VOLUME:#50<#40
V4L2_CID_AUDIO_BALANCE:9####<#
V4L2_CID_HFLIPH"2FO0<#06
4
V4L2_CID_VFLIPH"1O0<#06
S2253_CID_DFLIP:
3O0<#06+1"--<
--='(,!%
$21!3<%23O0!"%H
5#3%HA7*'V7*'V# 7*'V
#3%HA7*'V7*'V 7*'V#
4#3%HA7*'V#7*'V 7*'V
S2253_CID_INTERPOLATE:
<0%2620E02
!%<01%12,*!06
S2253_CID_OUTPUT_MODE:
*33#<223!3%H
#H*T%06"8%0
H0T%062010
H%T%06%"%
H7%2T%06%32!06%"0%
!%391%6
&016
S2253_CID_LOW_LATENCY:
<!%229606"8!%C
#H&CT%2063!E%!
H&T%20631%!$206"81
!001!%06"86
"%2!%!1"7!%00
361"32%21T21
!68%%%%%0%%"6
&016
S2253_CID_GPI:
<962%1%2%2
3900%0
S2253_CID_GPO:
<!%%23900%0
S2253_CID_XLED_MODE:
*33#<223!3%H
#HA88T?( "8218%"%
HA8T?( C218%"%
H&T?( %6%L0G
H&CT?( %6%C
S2253_CID_OSD_ENABLE:
*3<!%2229%9%06%1%"<
22%%

#H%"LG
H"<2.
H"<2//
S2253_CID_OSD_TRANSPARENT:
*3<!%2%029%9%06
"83%
#H#WL"8"83G
H##WL"83GLG
H#W
HW
S2253_CID_OSD_POSITION:
!H#<$0H< 
S2253_CID_OSD_DATEFORMAT:
#H9 9----LG
H 99----
H9 9--
H 99--
.H9 9----
H 99----
/H9 9--
4H 99--
H <----
5H ----
#H <--
H --
S2253_CID_OSD_TIMEFORMAT:
AAHHH#<AAHH#H<AAHH##H< #
S2253_CID_OSD_TIMEZONE:
32C%%!$ $X#
+H2%%6%%2!2112$
!%22%8
S2253_CID_OSD_MESSAGE:
36JYKJYK%!<%016
S2253_CID_OSD_XOFF:
*33#!3!2<#
S2253_CID_OSD_YOFF:
*33#!3!232<#
@2%9N;%%VVV4L2_CTRL_CLASS_MPEG,
%00ctrls->controlsE%1%H
V4L2_CID_MPEG_STREAM_VBI_FMT:
%!V4L2_MPEG_STREAM_VBI_FMT_NONE
V4L2_MPEG_STREAM_VBI_FMT_IVTV%%%0%!
5
*2/.%!<!6'(,9$06
@2"<%%"1
V4L2_CID_MPEG_AUDIO_ENCODING:
%!V4L2_MPEG_AUDIO_ENCODING_AAC
V4L2_MPEG_AUDIO_ENCODING_NONE&62'.'(,9$0
6
V4L2_CID_MPEG_AUDIO_MODE:
%!V4L2_MPEG_AUDIO_MODE_STEREO
V4L2_MPEG_AUDIO_MODE_MONO&62'.'(,9$06
V4L2_CID_MPEG_AUDIO_AAC_BITRATE:
<###<###"0%%0%/<###"0%<5<###"0%
&62'.'(,9$06
V4L2_CID_MPEG_VIDEO_ENCODING:
%!V4L2_MPEG_VIDEO_ENCODING_MPEG_4_AVCL2/.G
V4L2_MPEG_VIDEO_ENCODING_MPEG_4L'(,9.G
&62'.'(,9$06
V4L2_CID_MPEG_VIDEO_ASPECT:
*33#%%010%30
6
#H
H.
H/5
H
+H0#%'%0)<2% %06%0)
V4L2_CID_MPEG_VIDEO_GOP_SIZE:
*33##$2%3#!%%2
9,&'%F06
V4L2_CID_MPEG_VIDEO_BITRATE:
##<####<###<###"0%%0%##<###"0%<<###<###
"0%06
V4L2_CID_MPEG_VIDEO_H264_I_PERIOD:
*33###&6A/.3 %3#
E%!%* )6<2%* )E%!
16+2,&'
VIDIOC_ENUMAUDIO, VIDIOC_G_AUDIO, VIDIOC_S_AUDIO
int ioctl(int fd, int request, struct v4l2_audio *audio);
$20%H
*#HJKL!G
*HJ*KL%G
20%%009N!.; & (;L!1!
1<%8%,<!3G$20%
,%09"H"2%!%!2%!03%%
#
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36

Sensoray 2253P Owner's manual

Type
Owner's manual
This manual is also suitable for

Ask a question and I''ll find the answer in the document

Finding information in a document is now easier with AI