本文整理汇总了C++中Cond::broadcast方法的典型用法代码示例。如果您正苦于以下问题:C++ Cond::broadcast方法的具体用法?C++ Cond::broadcast怎么用?C++ Cond::broadcast使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Cond
的用法示例。
在下文中一共展示了Cond::broadcast方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Set
void Set(const K &key, const V &value) {
auto i = map.insert(std::make_pair(key, Item(value)));
Item &item = i.first->second;
item.old = false;
if (!i.second)
item.value = value;
cond.broadcast();
}
示例2: dev_stop_handler
void dev_stop_handler(int sig)
{
XCAM_UNUSED (sig);
SmartLock locker (g_mutex);
g_stop = true;
g_cond.broadcast ();
//exit(0);
}
示例3: locker
void
MainDeviceManager::handle_buffer (const SmartPtr<VideoBuffer> &buf)
{
FPS_CALCULATION (fps_buf, 30);
XCAM_OBJ_PROFILING_START;
if (_enable_display)
display_buf (buf);
XCAM_OBJ_PROFILING_END("main_dev_manager_display", 30);
if (!_save_file)
return ;
if ((_frame_count++ % _interval) != 0)
return;
if ((_frame_save != 0) && (_frame_count > _frame_save)) {
SmartLock locker (g_mutex);
g_stop = true;
g_cond.broadcast ();
return;
}
const VideoBufferInfo & frame_info = buf->get_video_info ();
uint8_t *frame = buf->map ();
if (frame == NULL)
return;
uint32_t size = 0;
switch(frame_info.format) {
case V4L2_PIX_FMT_NV12: // 420
case V4L2_PIX_FMT_NV21:
size = XCAM_ALIGN_UP(frame_info.width, 2) * XCAM_ALIGN_UP(frame_info.height, 2) * 3 / 2;
break;
case V4L2_PIX_FMT_YUV422P: // 422 Planar
case V4L2_PIX_FMT_YUYV: // 422
case V4L2_PIX_FMT_SBGGR10:
case V4L2_PIX_FMT_SGBRG10:
case V4L2_PIX_FMT_SGRBG10:
case V4L2_PIX_FMT_SRGGB10:
case V4L2_PIX_FMT_SBGGR12:
case V4L2_PIX_FMT_SGBRG12:
case V4L2_PIX_FMT_SGRBG12:
case V4L2_PIX_FMT_SRGGB12:
size = XCAM_ALIGN_UP(frame_info.width, 2) * XCAM_ALIGN_UP(frame_info.height, 2) * 2;
break;
case XCAM_PIX_FMT_RGBA64:
size = XCAM_ALIGN_UP(frame_info.width, 2) * XCAM_ALIGN_UP(frame_info.height, 2) * 2 * 4;
break;
default:
XCAM_LOG_ERROR (
"unknown v4l2 format(%s) in buffer handle",
xcam_fourcc_to_string (frame_info.format));
return;
}
open_file ();
if (!_file) {
XCAM_LOG_ERROR ("open file failed");
return;
}
if (fwrite (frame, size, 1, _file) <= 0) {
XCAM_LOG_WARNING ("write frame failed.");
}
}