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

Side by Side Diff: media/video/capture/linux/v4l2_capture_delegate_multi_plane.cc

Issue 1147693002: Send bytes_used of v4l2 captured frame when video capture (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/video/capture/linux/v4l2_capture_delegate_multi_plane.h" 5 #include "media/video/capture/linux/v4l2_capture_delegate_multi_plane.h"
6 6
7 #include <sys/mman.h> 7 #include <sys/mman.h>
8 8
9 namespace media { 9 namespace media {
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 void V4L2CaptureDelegateMultiPlane::FinishFillingV4L2Buffer( 48 void V4L2CaptureDelegateMultiPlane::FinishFillingV4L2Buffer(
49 v4l2_buffer* buffer) const { 49 v4l2_buffer* buffer) const {
50 buffer->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE; 50 buffer->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
51 buffer->length = v4l2_planes_.size(); 51 buffer->length = v4l2_planes_.size();
52 52
53 static const struct v4l2_plane empty_plane = {}; 53 static const struct v4l2_plane empty_plane = {};
54 std::fill(v4l2_planes_.begin(), v4l2_planes_.end(), empty_plane); 54 std::fill(v4l2_planes_.begin(), v4l2_planes_.end(), empty_plane);
55 buffer->m.planes = v4l2_planes_.data(); 55 buffer->m.planes = v4l2_planes_.data();
56 } 56 }
57 57
58 void V4L2CaptureDelegateMultiPlane::SetPayloadSize(
59 const scoped_refptr<BufferTracker>& buffer_tracker,
60 const v4l2_buffer& buffer) const {
61 for (size_t i = 0; i < v4l2_planes_.size() && i < buffer.length; i++)
62 buffer_tracker->SetPlanePayloadSize(i, buffer.m.planes[i].bytesused);
63 }
64
58 void V4L2CaptureDelegateMultiPlane::SendBuffer( 65 void V4L2CaptureDelegateMultiPlane::SendBuffer(
59 const scoped_refptr<BufferTracker>& buffer_tracker, 66 const scoped_refptr<BufferTracker>& buffer_tracker,
60 const v4l2_format& format) const { 67 const v4l2_format& format) const {
61 DCHECK_EQ(capture_format().pixel_format, PIXEL_FORMAT_I420); 68 DCHECK_EQ(capture_format().pixel_format, PIXEL_FORMAT_I420);
62 const size_t y_stride = format.fmt.pix_mp.plane_fmt[0].bytesperline; 69 const size_t y_stride = format.fmt.pix_mp.plane_fmt[0].bytesperline;
63 const size_t u_stride = format.fmt.pix_mp.plane_fmt[1].bytesperline; 70 const size_t u_stride = format.fmt.pix_mp.plane_fmt[1].bytesperline;
64 const size_t v_stride = format.fmt.pix_mp.plane_fmt[2].bytesperline; 71 const size_t v_stride = format.fmt.pix_mp.plane_fmt[2].bytesperline;
65 DCHECK_GE(y_stride, 1u * capture_format().frame_size.width()); 72 DCHECK_GE(y_stride, 1u * capture_format().frame_size.width());
66 DCHECK_GE(u_stride, 1u * capture_format().frame_size.width() / 2); 73 DCHECK_GE(u_stride, 1u * capture_format().frame_size.width() / 2);
67 DCHECK_GE(v_stride, 1u * capture_format().frame_size.width() / 2); 74 DCHECK_GE(v_stride, 1u * capture_format().frame_size.width() / 2);
(...skipping 22 matching lines...) Expand all
90 return false; 97 return false;
91 } 98 }
92 AddMmapedPlane(static_cast<uint8_t*>(start), buffer.m.planes[p].length); 99 AddMmapedPlane(static_cast<uint8_t*>(start), buffer.m.planes[p].length);
93 DVLOG(3) << "Mmap()ed plane #" << p << " of " << buffer.m.planes[p].length 100 DVLOG(3) << "Mmap()ed plane #" << p << " of " << buffer.m.planes[p].length
94 << "B"; 101 << "B";
95 } 102 }
96 return true; 103 return true;
97 } 104 }
98 105
99 } // namespace media 106 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698