#include <common/prec_timer.h>
#include <common/linq.h>
#include <common/os/filesystem.h>
+#include <common/memcpy.h>
#include <boost/algorithm/string/predicate.hpp>
#include <boost/filesystem.hpp>
pixel_desc.planes.push_back(
core::pixel_format_desc::plane(width, height, 4));
auto frame = frame_factory_->create_frame(this, pixel_desc, core::audio_channel_layout::invalid());
- A_memcpy(frame.image_data().begin(), buffer, width * height * 4);
+ fast_memcpy(frame.image_data().begin(), buffer, width * height * 4);
lock(frames_mutex_, [&]
{
browser_->SendProcessMessage(
CefProcessId::PID_RENDERER,
CefProcessMessage::Create(TICK_MESSAGE_NAME));
+
graph_->set_value("tick-time", tick_timer_.elapsed()
* format_desc_.fps
* format_desc_.field_count
#include <common/except.h>
#include <common/memory.h>
#include <common/future.h>
+#include <common/memcpy.h>
#include <tbb/concurrent_queue.h>
boost::copy(read_frame.audio_data(), std::back_inserter(frame.audio_data()));
}
- A_memcpy(frame.image_data().begin(), read_frame.image_data().begin(), read_frame.image_data().size());
+ fast_memcpy(frame.image_data().begin(), read_frame.image_data().begin(), read_frame.image_data().size());
frame_buffer_.push(core::draw_frame(std::move(frame)));
#include <common/memory.h>
#include <common/array.h>
#include <common/memshfl.h>
+#include <common/memcpy.h>
#include <common/utf.h>
#include <common/prec_timer.h>
#include <common/future.h>
});
}
else
- {
- tbb::parallel_for(tbb::blocked_range<int>(0, format_desc_.height), [&](const tbb::blocked_range<int>& r)
- {
- for(int n = r.begin(); n != r.end(); ++n)
- A_memcpy(ptr+n*format_desc_.width*4, av_frame->data[0]+n*av_frame->linesize[0], format_desc_.width*4);
- });
+ {
+ fast_memcpy(ptr, av_frame->data[0], format_desc_.size);
}
GL(glUnmapBuffer(GL_PIXEL_UNPACK_BUFFER)); // release the mapped buffer