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

Issue 1291933002: File video capture device supports MJPEG format (Closed)

Created:
5 years, 4 months ago by henryhsu
Modified:
5 years, 4 months ago
Reviewers:
wuchengli, kcwu, xhwang, mcasas
CC:
chromium-reviews, feature-media-reviews_chromium.org, Pawel Osciak
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

File video capture device supports MJPEG format Because input file can be a MJPEG stream video which concatenates many MJPEG/JPEG images directly, jpeg parser should support to detect EOI marker. BUG=517303 TEST=test on peach_pi and squawks with Y4M and JPEG files. Make sure jpeg histogram is correct while playing JPEG file. Committed: https://crrev.com/cc92a03c8029eda1e443d7ecd1750976d6aa8707 Cr-Commit-Position: refs/heads/master@{#344749}

Patch Set 1 #

Total comments: 22

Patch Set 2 : address kcwu@ #

Total comments: 6

Patch Set 3 : address kcwu@ #

Total comments: 6

Patch Set 4 : #

Total comments: 4

Patch Set 5 : fix nits #

Total comments: 2

Patch Set 6 : address wucheng@ #

Total comments: 15

Patch Set 7 : address wucheng@ #

Total comments: 26

Patch Set 8 : refactor #

Total comments: 34

Patch Set 9 : address all comments #

Patch Set 10 : fix performance issue #

Total comments: 5

Patch Set 11 : use memchr #

Total comments: 2

Patch Set 12 : fix nits #

Total comments: 8

Patch Set 13 : fix nits #

Patch Set 14 : fix windows compile error #

Patch Set 15 : fix windows compile error #

Unified diffs Side-by-side diffs Delta from patch set Stats (+347 lines, -105 lines) Patch
M media/capture/video/file_video_capture_device.h View 1 2 3 4 5 6 7 8 4 chunks +26 lines, -18 lines 0 comments Download
M media/capture/video/file_video_capture_device.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 9 chunks +206 lines, -76 lines 0 comments Download
M media/capture/video/file_video_capture_device_factory.cc View 1 2 3 4 5 6 7 1 chunk +6 lines, -6 lines 0 comments Download
M media/filters/jpeg_parser.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +25 lines, -5 lines 0 comments Download
M media/filters/jpeg_parser.cc View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +83 lines, -0 lines 0 comments Download
M media/filters/jpeg_parser_unittest.cc View 1 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 54 (14 generated)
henryhsu
PTAL
5 years, 4 months ago (2015-08-13 04:06:27 UTC) #2
kcwu
https://codereview.chromium.org/1291933002/diff/1/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/1/media/capture/video/file_video_capture_device.cc#newcode141 media/capture/video/file_video_capture_device.cc:141: LOG(ERROR) << "File memory map error: " << file_path.value(); ...
5 years, 4 months ago (2015-08-14 09:01:38 UTC) #3
henryhsu
https://codereview.chromium.org/1291933002/diff/1/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/1/media/capture/video/file_video_capture_device.cc#newcode141 media/capture/video/file_video_capture_device.cc:141: LOG(ERROR) << "File memory map error: " << file_path.value(); ...
5 years, 4 months ago (2015-08-14 11:22:27 UTC) #4
kcwu
https://codereview.chromium.org/1291933002/diff/20001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/20001/media/capture/video/file_video_capture_device.cc#newcode194 media/capture/video/file_video_capture_device.cc:194: if (!mapped_file_->IsValid()) { OpenFileForRead() may return nullptr. https://codereview.chromium.org/1291933002/diff/20001/media/capture/video/file_video_capture_device.cc#newcode243 media/capture/video/file_video_capture_device.cc:243: ...
5 years, 4 months ago (2015-08-14 11:50:04 UTC) #5
henryhsu
https://codereview.chromium.org/1291933002/diff/20001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/20001/media/capture/video/file_video_capture_device.cc#newcode194 media/capture/video/file_video_capture_device.cc:194: if (!mapped_file_->IsValid()) { On 2015/08/14 11:50:04, kcwu wrote: > ...
5 years, 4 months ago (2015-08-17 02:39:33 UTC) #6
kcwu
https://codereview.chromium.org/1291933002/diff/40001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/40001/media/capture/video/file_video_capture_device.cc#newcode192 media/capture/video/file_video_capture_device.cc:192: DCHECK(!mapped_file_->IsValid()); DCHECK(!mapped_file_ || !mapped_file_->IsValid()); https://codereview.chromium.org/1291933002/diff/40001/media/capture/video/file_video_capture_device.cc#newcode194 media/capture/video/file_video_capture_device.cc:194: if (mapped_file_ && ...
5 years, 4 months ago (2015-08-17 03:43:34 UTC) #7
henryhsu
https://codereview.chromium.org/1291933002/diff/40001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/40001/media/capture/video/file_video_capture_device.cc#newcode192 media/capture/video/file_video_capture_device.cc:192: DCHECK(!mapped_file_->IsValid()); On 2015/08/17 03:43:34, kcwu wrote: > DCHECK(!mapped_file_ || ...
5 years, 4 months ago (2015-08-17 06:09:21 UTC) #8
kcwu
lgtm % nits https://codereview.chromium.org/1291933002/diff/60001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/60001/media/capture/video/file_video_capture_device.cc#newcode19 media/capture/video/file_video_capture_device.cc:19: int ParseY4MInt(const base::StringPiece& token) { Enclose ...
5 years, 4 months ago (2015-08-17 06:24:13 UTC) #9
henryhsu
xhwang@chromium.org: Please review changes. https://codereview.chromium.org/1291933002/diff/60001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/60001/media/capture/video/file_video_capture_device.cc#newcode19 media/capture/video/file_video_capture_device.cc:19: int ParseY4MInt(const base::StringPiece& token) { ...
5 years, 4 months ago (2015-08-17 06:52:11 UTC) #11
wuchengli
https://codereview.chromium.org/1291933002/diff/80001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/80001/media/capture/video/file_video_capture_device.cc#newcode17 media/capture/video/file_video_capture_device.cc:17: static const int kMJpegFrameRate = 25; Let's use 30. ...
5 years, 4 months ago (2015-08-17 14:06:38 UTC) #12
henryhsu
Hi xhwang, please take a look. This issue should be landed before the branching date ...
5 years, 4 months ago (2015-08-18 03:53:56 UTC) #13
wuchengli
+mcasas because he's the original author of file_video_capture_device.cc and owner of media/capture/video. mcasas@ Can you ...
5 years, 4 months ago (2015-08-18 08:30:20 UTC) #15
wuchengli
https://codereview.chromium.org/1291933002/diff/100001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/100001/media/capture/video/file_video_capture_device.cc#newcode100 media/capture/video/file_video_capture_device.cc:100: return video_format->IsValid(); add a local variable and update |video_format| ...
5 years, 4 months ago (2015-08-18 09:41:07 UTC) #16
henryhsu
Will update performance data later. https://codereview.chromium.org/1291933002/diff/100001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/100001/media/capture/video/file_video_capture_device.cc#newcode100 media/capture/video/file_video_capture_device.cc:100: return video_format->IsValid(); On 2015/08/18 ...
5 years, 4 months ago (2015-08-18 10:35:06 UTC) #17
wuchengli
LGTM. Don't forget to let us know the performance data. I think it should be ...
5 years, 4 months ago (2015-08-18 13:38:59 UTC) #18
xhwang
media/ LGTM with nits. https://codereview.chromium.org/1291933002/diff/120001/media/filters/jpeg_parser.cc File media/filters/jpeg_parser.cc (right): https://codereview.chromium.org/1291933002/diff/120001/media/filters/jpeg_parser.cc#newcode272 media/filters/jpeg_parser.cc:272: // |eoi_ptr| is pointing to ...
5 years, 4 months ago (2015-08-18 17:17:55 UTC) #19
mcasas
https://codereview.chromium.org/1291933002/diff/120001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/120001/media/capture/video/file_video_capture_device.cc#newcode19 media/capture/video/file_video_capture_device.cc:19: static int ParseY4MInt(const base::StringPiece& token) { IIRC, media/ folder ...
5 years, 4 months ago (2015-08-18 18:28:42 UTC) #20
henryhsu
https://codereview.chromium.org/1291933002/diff/120001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/120001/media/capture/video/file_video_capture_device.cc#newcode19 media/capture/video/file_video_capture_device.cc:19: static int ParseY4MInt(const base::StringPiece& token) { On 2015/08/18 18:28:42, ...
5 years, 4 months ago (2015-08-19 01:57:24 UTC) #21
henryhsu
PTAL https://codereview.chromium.org/1291933002/diff/120001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/120001/media/capture/video/file_video_capture_device.cc#newcode114 media/capture/video/file_video_capture_device.cc:114: size_t header_end = header.find(kY4MSimpleFrameDelimiter); On 2015/08/18 18:28:41, mcasas ...
5 years, 4 months ago (2015-08-19 10:05:12 UTC) #23
kcwu
https://codereview.chromium.org/1291933002/diff/160001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/160001/media/capture/video/file_video_capture_device.cc#newcode45 media/capture/video/file_video_capture_device.cc:45: std::string header(kY4MHeaderMaxSize, 0); s/0/'\0'/ https://codereview.chromium.org/1291933002/diff/160001/media/capture/video/file_video_capture_device.cc#newcode46 media/capture/video/file_video_capture_device.cc:46: file_->Read(0, &header[0], kY4MHeaderMaxSize ...
5 years, 4 months ago (2015-08-19 11:29:39 UTC) #24
mcasas
Looking good on the FileVCD side https://codereview.chromium.org/1291933002/diff/160001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/160001/media/capture/video/file_video_capture_device.cc#newcode18 media/capture/video/file_video_capture_device.cc:18: static const int ...
5 years, 4 months ago (2015-08-19 22:17:35 UTC) #25
henryhsu
https://codereview.chromium.org/1291933002/diff/160001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/160001/media/capture/video/file_video_capture_device.cc#newcode18 media/capture/video/file_video_capture_device.cc:18: static const int kMJpegFrameRate = 30; On 2015/08/19 22:17:35, ...
5 years, 4 months ago (2015-08-20 03:18:57 UTC) #26
kcwu
lgtm
5 years, 4 months ago (2015-08-20 03:46:42 UTC) #27
henryhsu
Original performance: cpu idle 83.98%, latency 4.60ms With this patch set 9: cpu idle 81.22%, ...
5 years, 4 months ago (2015-08-20 08:53:13 UTC) #28
kcwu
https://codereview.chromium.org/1291933002/diff/200001/media/filters/jpeg_parser.cc File media/filters/jpeg_parser.cc (right): https://codereview.chromium.org/1291933002/diff/200001/media/filters/jpeg_parser.cc#newcode283 media/filters/jpeg_parser.cc:283: if (marker1 != JPEG_MARKER_PREFIX) Does it help performance if ...
5 years, 4 months ago (2015-08-20 09:01:38 UTC) #29
kcwu
https://codereview.chromium.org/1291933002/diff/200001/media/filters/jpeg_parser.cc File media/filters/jpeg_parser.cc (right): https://codereview.chromium.org/1291933002/diff/200001/media/filters/jpeg_parser.cc#newcode283 media/filters/jpeg_parser.cc:283: if (marker1 != JPEG_MARKER_PREFIX) On 2015/08/20 09:01:38, kcwu wrote: ...
5 years, 4 months ago (2015-08-20 09:18:36 UTC) #30
henryhsu
https://codereview.chromium.org/1291933002/diff/200001/media/filters/jpeg_parser.cc File media/filters/jpeg_parser.cc (right): https://codereview.chromium.org/1291933002/diff/200001/media/filters/jpeg_parser.cc#newcode283 media/filters/jpeg_parser.cc:283: if (marker1 != JPEG_MARKER_PREFIX) On 2015/08/20 09:18:36, kcwu wrote: ...
5 years, 4 months ago (2015-08-20 09:50:59 UTC) #31
kcwu
lgtm % nits https://codereview.chromium.org/1291933002/diff/220001/media/filters/jpeg_parser.cc File media/filters/jpeg_parser.cc (right): https://codereview.chromium.org/1291933002/diff/220001/media/filters/jpeg_parser.cc#newcode281 media/filters/jpeg_parser.cc:281: const char* marker1_offset = static_cast<const char*>( ...
5 years, 4 months ago (2015-08-20 09:59:09 UTC) #32
henryhsu
https://codereview.chromium.org/1291933002/diff/220001/media/filters/jpeg_parser.cc File media/filters/jpeg_parser.cc (right): https://codereview.chromium.org/1291933002/diff/220001/media/filters/jpeg_parser.cc#newcode281 media/filters/jpeg_parser.cc:281: const char* marker1_offset = static_cast<const char*>( On 2015/08/20 09:59:09, ...
5 years, 4 months ago (2015-08-20 10:13:58 UTC) #33
mcasas
LGTM % nits and 1 comment. https://codereview.chromium.org/1291933002/diff/240001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/240001/media/capture/video/file_video_capture_device.cc#newcode50 media/capture/video/file_video_capture_device.cc:50: media::VideoCaptureFormat format; I ...
5 years, 4 months ago (2015-08-20 23:23:54 UTC) #34
henryhsu
https://codereview.chromium.org/1291933002/diff/240001/media/capture/video/file_video_capture_device.cc File media/capture/video/file_video_capture_device.cc (right): https://codereview.chromium.org/1291933002/diff/240001/media/capture/video/file_video_capture_device.cc#newcode50 media/capture/video/file_video_capture_device.cc:50: media::VideoCaptureFormat format; On 2015/08/20 23:23:54, mcasas wrote: > I ...
5 years, 4 months ago (2015-08-21 03:00:34 UTC) #35
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1291933002/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1291933002/260001
5 years, 4 months ago (2015-08-21 03:18:44 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_compile_dbg_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_compile_dbg_ng/builds/73469) win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, ...
5 years, 4 months ago (2015-08-21 03:56:28 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1291933002/260001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1291933002/260001
5 years, 4 months ago (2015-08-21 04:57:04 UTC) #42
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_x64_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/93754)
5 years, 4 months ago (2015-08-21 05:42:07 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1291933002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1291933002/280001
5 years, 4 months ago (2015-08-21 06:59:07 UTC) #47
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/96646)
5 years, 4 months ago (2015-08-21 07:52:59 UTC) #49
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1291933002/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1291933002/300001
5 years, 4 months ago (2015-08-21 08:32:04 UTC) #52
commit-bot: I haz the power
Committed patchset #15 (id:300001)
5 years, 4 months ago (2015-08-21 13:22:07 UTC) #53
commit-bot: I haz the power
5 years, 4 months ago (2015-08-21 13:23:01 UTC) #54
Message was sent while issue was closed.
Patchset 15 (id:??) landed as
https://crrev.com/cc92a03c8029eda1e443d7ecd1750976d6aa8707
Cr-Commit-Position: refs/heads/master@{#344749}

Powered by Google App Engine
This is Rietveld 408576698