capture_bursh
2016-09-20 15:54:03 0 举报
capture_bursh是一个功能强大的图像捕捉工具,它能够帮助用户轻松地捕捉屏幕上的任何内容。无论是截图、录屏还是录制GIF,capture_bursh都能为您提供一站式的解决方案。它具有简洁易用的界面,让您无需复杂的操作即可完成各种任务。同时,capture_bursh还支持多种图片格式和输出选项,让您可以根据需要选择合适的设置。此外,capture_bursh还具备强大的编辑功能,您可以在捕捉后对图片进行裁剪、调整大小、添加注释等操作,以满足您的各种需求。总之,capture_bursh是一款实用且高效的图像捕捉工具,值得您拥有。
作者其他创作
大纲/内容
snp_start_encode
cmr_oem.c
scale need
snp_start_thumb_proc
最后交给JPEGCODEC_OPEN函数执行一帧的编码 ,包括大图,缩略图等编码
cmr_preview.c
cmr_thread_msg_send
snp_cxt-ops.start_scale
camera_snapshot_channel_handle
cmr_oem.c:jpeg_enc_start-------------------send JPEG_EVT_ENC_START 交给jpeg_thread_proc函数处理
snp_cxt-ops.start_rot
jpegenc_api.c
case SNAPSHOT_FUNC_TAKE_PICTURE:\t\toem_func = CAMERA_FUNC_TAKE_PICTURE;
thumb 剪裁
camera_set_vendor_hdr_ev//cxt-cap_cnt++
start encode
pre_resume_cap_channel
prev_capture_frame_handle
camera_snapshot_cb_to_hal
send SNP_EVT_THUMB
SNAPSHOT_FUNC_ENCODE_PICTURE == func) && (SNAPSHOT_EXIT_CB_DONE == cb
msg处理
刷新buffer
snp_send_msg_write_exif_thr
ops.channel_resume
判断是否需要resume
cxt-ops.start_exif_encode
SprdCamera3OEMIF
CMR_GRAB_TX_DONE
cmr_oem.c文件下的注册函数camera_channel_pause进一步调用cmr_grab_cap_pause再到kernel:ioctl(SPRD_IMG_IO_PATH_PAUSE)
在jpeg编码前,不是最后一针,进行chanel resume操作
camera_snapshot_cb
send SNAPSHOT_EVT_CB_SNAPSHOT_DONESNAPSHOT_FUNC_TAKE_PICTURE
HandleTakePicture
snp_post_proc_for_yuv
snp_send_msg_notify_thr
snp_thumbnail
snp_take_picture_done
CAMERA_EVT_CB_SNAPSHOT_DONE
拍照需要,并且不是zsl模式,需要pause channel 在发送data之前,判断total_num不为1为连拍转到cmr_preview_receive_data
cmr_snapshot_memory_flush
PREV_EVT_RECEIVE_DATA
snp_postproc_thread_proc
snp_start_encode_thumb
snp_thumb_thread_proc
cxt-oem_cb
pre_thread_proc
cmr_grab.ckernel
PREVIEW_CHN_PAUSE
snp_start_rot
在cmr_snapshot_receive_data拍照接受数据之前
PREVIEW_CHN_RESUME转PREV_EVT_RECEIVE_DATA
hal层去处理做notify shutter操作
cmr_snapshot.c
cmr_preview_receive_data
prev_thread_proc
snp_redisplay_thread_proc
同shutter路一样,cb函数为SNAPSHOT_RSP_CB_SUCCESS
display回显
snp-ops.start_encode
prev_receive_data
恢复channel
snp_send_msg_redisplay_thr
SNP_EVT_WRITE_EXIF
snp_send_msg_thumb_thr
查找cmr_oemc层文件的注册函数查找处理,camera_start_rot再到cmr_rot函数(cmr_rotate.c)函数
rotate need
cmr_rotate.c
\tcase SNAPSHOT_EVT_CB_FLUSH:\t\toem_cb_type = CAMERA_EVT_CB_FLUSH;
camera_channel_resume
notify shutter快门
cmr_snapshot_receive_data
jpeg_code.c
prev_pause_cap_channel
receiveRawPicture
snp_post_proc
inter_param-param2 = (void*)evt;暂存,在线程里面取出使用resume
写exif信息,完善jpeg编码流
PREVIEW_CHN_RESUME
应答机制
if (1 == is_need_resume) {\t\t\tfor (i=0 ; isnp_cxt.channel_bits & (1i)) {
OEM层收取到一阵拍照火速句,做一次计数,有snp_context成员cap_cnt来维护
执行回显相关操作
snp_write_exif
cmr_scale.c
\t/*got one frame*/\tprev_frame_handle
查询cmr_oem.c注册函数camera_start_scale,找到cmr_scale.c:cmr_scale_start函数 send CMR_EVT_SCALE_START给scale线程处理函数cmr_scale_thread_proc
send SNP_EVT_REDISPLAY
snp_notify_redisplay_proc
处理接受到的buffer
PREVIEW_CHN_PAUSECMR_GRAB_TX_DONEPREV_EVT_RECEIVE_DATA;
snp_start_convet_thumb
snp_redisplay
snp_write_exif_thread_proc
flush_buffer
SNAPSHOT_EVT_CB_CPTURE_FRAME_DONE
snp_start_scale
kernel
camera_send_channel_data
SNAPSHOT_EVT_CHANNEL_DONE
send PREVIEW_CHN_PAUSE
0 条评论
下一页