Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(280)

Unified Diff: media/video/capture/linux/video_capture_device_linux.cc

Issue 1016773002: MJPEG acceleration for video capture using VAAPI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix coded size, shm handle Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/video/capture/linux/video_capture_device_linux.cc
diff --git a/media/video/capture/linux/video_capture_device_linux.cc b/media/video/capture/linux/video_capture_device_linux.cc
index 60d8f77d55cfe0497fe3835cdfe76f6016ff037a..5d3b12c1459a0944a77d773d3b585344b2103266 100644
--- a/media/video/capture/linux/video_capture_device_linux.cc
+++ b/media/video/capture/linux/video_capture_device_linux.cc
@@ -362,6 +362,14 @@ void VideoCaptureDeviceLinux::V4L2CaptureDelegate::AllocateAndStart(
capture_format_.pixel_format =
V4l2FourCcToChromiumPixelFormat(video_fmt.fmt.pix.pixelformat);
+ if (capture_format_.pixel_format == PIXEL_FORMAT_MJPEG) {
+ // TODO(kcwu) remove this hacky api
+ if (!client_->InitializeJpegDecoder()) {
wuchengli 2015/03/23 06:30:15 How about calling this when |last_captured_pixel_f
kcwu 2015/03/30 18:12:14 Done.
+ SetErrorState("InitializeJpegDecoder failed");
+ return;
+ }
+ }
+
if (!AllocateVideoBuffers()) {
SetErrorState("Allocate buffer failed (Cannot recover from this error)");
return;
@@ -438,6 +446,7 @@ void VideoCaptureDeviceLinux::V4L2CaptureDelegate::DoCapture() {
v4l2_buffer buffer = {};
buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
buffer.memory = V4L2_MEMORY_MMAP;
+ LOG(ERROR) << "DQBUF";
if (HANDLE_EINTR(ioctl(device_fd_.get(), VIDIOC_DQBUF, &buffer)) < 0) {
SetErrorState("Failed to dequeue capture buffer");
return;
@@ -449,6 +458,7 @@ void VideoCaptureDeviceLinux::V4L2CaptureDelegate::DoCapture() {
rotation_,
base::TimeTicks::Now());
+ LOG(ERROR) << "QBUF";
if (HANDLE_EINTR(ioctl(device_fd_.get(), VIDIOC_QBUF, &buffer)) < 0)
SetErrorState("Failed to enqueue capture buffer");
}

Powered by Google App Engine
This is Rietveld 408576698