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

Issue 112343011: Split the bit reader functionalities from the byte stream provider. (Closed)

Created:
7 years ago by damienv1
Modified:
6 years, 11 months ago
CC:
chromium-reviews, feature-media-reviews_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Visibility:
Public.

Description

Split the bit reader functionalities from the byte stream provider. BUG=None Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=244959

Patch Set 1 #

Total comments: 22

Patch Set 2 : Address comments from patch set #1. #

Patch Set 3 : Address comments from patch set #1. #

Patch Set 4 : Slight change of design. #

Patch Set 5 : Add an H264 bit reader for proof of concept. #

Patch Set 6 : Use a ByteStreamProvider interface instead of a callback. #

Total comments: 8

Patch Set 7 : Import the H264BitReader unit tests. #

Total comments: 10

Patch Set 8 : Split the H264 bit reader from the regular bit reader. #

Patch Set 9 : Add unit test for the removal of the emulation prevention byte. #

Total comments: 73

Patch Set 10 : Address comments from patch set #9. #

Total comments: 3

Patch Set 11 : Fix compilation warning on windows & Add more unit tests #

Total comments: 26

Patch Set 12 : Address comments from patch set #11. #

Total comments: 2

Patch Set 13 : Modify ReadUE function prototype. #

Total comments: 70

Patch Set 14 : More descriptive comments. #

Patch Set 15 : Remove bits_buffered from BitReaderCore. #

Patch Set 16 : H264 bit reader removed. #

Patch Set 17 : Rebase. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+349 lines, -111 lines) Patch
M media/base/bit_reader.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +32 lines, -45 lines 0 comments Download
M media/base/bit_reader.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +17 lines, -66 lines 0 comments Download
A media/base/bit_reader_core.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +118 lines, -0 lines 0 comments Download
A media/base/bit_reader_core.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +159 lines, -0 lines 0 comments Download
M media/base/bit_reader_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +21 lines, -0 lines 0 comments Download
M media/media.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 32 (0 generated)
damienv1
Provided the design looks good to you, I will then update the CL so that ...
7 years ago (2013-12-19 01:20:22 UTC) #1
damienv1
https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader.cc File media/base/bit_reader.cc (right): https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader.cc#newcode19 media/base/bit_reader.cc:19: #if 0 Forgot to remove the code between #if ...
7 years ago (2013-12-19 02:01:25 UTC) #2
damienv1
https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader.cc File media/base/bit_reader.cc (right): https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader.cc#newcode58 media/base/bit_reader.cc:58: return 8 * bytes_left_ + bits_available_in_registers(); Should be: bytes_left_ ...
7 years ago (2013-12-19 03:21:07 UTC) #3
damienv1
https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader_base.cc File media/base/bit_reader_base.cc (right): https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader_base.cc#newcode23 media/base/bit_reader_base.cc:23: if (!Refill(1)) Could be only one condition. https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader_base.cc#newcode91 media/base/bit_reader_base.cc:91: ...
7 years ago (2013-12-19 03:29:12 UTC) #4
damienv1
https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader_base.cc File media/base/bit_reader_base.cc (right): https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader_base.cc#newcode43 media/base/bit_reader_base.cc:43: nbits_--; zero_count++;
7 years ago (2013-12-19 03:46:50 UTC) #5
acolwell GONE FROM CHROMIUM
This split doesn't seem right to me. Is there any reason not to implement the ...
7 years ago (2013-12-19 14:26:23 UTC) #6
damienv1
https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader.h File media/base/bit_reader.h (left): https://codereview.chromium.org/112343011/diff/1/media/base/bit_reader.h#oldcode11 media/base/bit_reader.h:11: #include "base/logging.h" Not needed anymore.
7 years ago (2013-12-19 17:57:23 UTC) #7
damienv1
Next patch set just address these comments. I am going to think about a slightly ...
7 years ago (2013-12-19 21:46:34 UTC) #8
damienv1
I also did a rough speed test between the previous and new version of the ...
7 years ago (2013-12-20 17:26:53 UTC) #9
damienv1
https://codereview.chromium.org/112343011/diff/110001/media/base/bit_reader_core.cc File media/base/bit_reader_core.cc (right): https://codereview.chromium.org/112343011/diff/110001/media/base/bit_reader_core.cc#newcode33 media/base/bit_reader_core.cc:33: *flag = (static_cast<int64>(reg_) < 0); Should be static_cast<SignedRegType> https://codereview.chromium.org/112343011/diff/110001/media/base/bit_reader_core.cc#newcode47 ...
6 years, 12 months ago (2013-12-26 19:35:04 UTC) #10
damienv1
https://codereview.chromium.org/112343011/diff/110001/media/base/bit_reader_core.cc File media/base/bit_reader_core.cc (right): https://codereview.chromium.org/112343011/diff/110001/media/base/bit_reader_core.cc#newcode33 media/base/bit_reader_core.cc:33: *flag = (static_cast<int64>(reg_) < 0); On 2013/12/26 19:35:04, damienv1 ...
6 years, 12 months ago (2013-12-27 19:41:34 UTC) #11
acolwell GONE FROM CHROMIUM
So I think this is getting closer, but I still have a few comments about ...
6 years, 12 months ago (2013-12-27 20:35:20 UTC) #12
damienv1
Aaron, here is how I was seeing the design: 1) ByteStreamProvider together with the BitReaderCore ...
6 years, 12 months ago (2013-12-27 21:17:56 UTC) #13
damienv1
https://codereview.chromium.org/112343011/diff/230001/media/base/bit_reader.cc File media/base/bit_reader.cc (right): https://codereview.chromium.org/112343011/diff/230001/media/base/bit_reader.cc#newcode58 media/base/bit_reader.cc:58: class H264ByteStreamProvider : public BitReaderCore::ByteStreamProvider { On 2013/12/27 20:35:21, ...
6 years, 12 months ago (2013-12-27 21:23:19 UTC) #14
damienv1
https://codereview.chromium.org/112343011/diff/230001/media/base/bit_reader.h File media/base/bit_reader.h (right): https://codereview.chromium.org/112343011/diff/230001/media/base/bit_reader.h#newcode45 media/base/bit_reader.h:45: bool HasMoreRBSPData() { On 2013/12/27 20:35:21, acolwell wrote: > ...
6 years, 12 months ago (2013-12-27 22:27:03 UTC) #15
acolwell GONE FROM CHROMIUM
On 2013/12/27 21:17:56, damienv1 wrote: > Aaron, here is how I was seeing the design: ...
6 years, 12 months ago (2013-12-27 23:34:13 UTC) #16
damienv1
https://codereview.chromium.org/112343011/diff/470001/media/base/bit_reader_core.h File media/base/bit_reader_core.h (right): https://codereview.chromium.org/112343011/diff/470001/media/base/bit_reader_core.h#newcode31 media/base/bit_reader_core.h:31: explicit BitReaderCore(ByteStreamProvider* byte_stream_provider); Add a comment to say the ...
6 years, 12 months ago (2013-12-28 01:32:24 UTC) #17
acolwell GONE FROM CHROMIUM
https://codereview.chromium.org/112343011/diff/470001/media/base/bit_reader.cc File media/base/bit_reader.cc (right): https://codereview.chromium.org/112343011/diff/470001/media/base/bit_reader.cc#newcode11 media/base/bit_reader.cc:11: class LinearByteStreamProvider : public BitReaderCore::ByteStreamProvider { Since nothing else ...
6 years, 12 months ago (2013-12-28 01:54:42 UTC) #18
damienv1
Aaron, thanks for the comments. Will upload a new CL when these are addressed. https://codereview.chromium.org/112343011/diff/470001/media/base/bit_reader.cc ...
6 years, 12 months ago (2013-12-28 02:26:16 UTC) #19
damienv1
https://codereview.chromium.org/112343011/diff/470001/media/base/bit_reader.cc File media/base/bit_reader.cc (right): https://codereview.chromium.org/112343011/diff/470001/media/base/bit_reader.cc#newcode11 media/base/bit_reader.cc:11: class LinearByteStreamProvider : public BitReaderCore::ByteStreamProvider { On 2013/12/28 01:54:42, ...
6 years, 12 months ago (2013-12-28 04:02:22 UTC) #20
damienv1
https://codereview.chromium.org/112343011/diff/630001/media/base/bit_reader.h File media/base/bit_reader.h (right): https://codereview.chromium.org/112343011/diff/630001/media/base/bit_reader.h#newcode16 media/base/bit_reader.h:16: : private BitReaderCore::ByteStreamProvider { Should be NON_EXPORTED_BASE(private BitReaderCore::ByteStreamProvider) https://codereview.chromium.org/112343011/diff/630001/media/base/bit_reader_h264.h ...
6 years, 12 months ago (2013-12-28 06:27:40 UTC) #21
damienv1
https://codereview.chromium.org/112343011/diff/630001/media/base/bit_reader_h264.cc File media/base/bit_reader_h264.cc (right): https://codereview.chromium.org/112343011/diff/630001/media/base/bit_reader_h264.cc#newcode44 media/base/bit_reader_h264.cc:44: return false; return -1;
6 years, 12 months ago (2013-12-28 06:44:11 UTC) #22
damienv1
https://codereview.chromium.org/112343011/diff/740001/media/base/bit_reader_h264.cc File media/base/bit_reader_h264.cc (right): https://codereview.chromium.org/112343011/diff/740001/media/base/bit_reader_h264.cc#newcode37 media/base/bit_reader_h264.cc:37: if (zero_count > 31) { Equivalent but better would ...
6 years, 11 months ago (2014-01-02 22:56:23 UTC) #23
damienv1
More comments on that CL ? Note: I can remove the H264 bit reader and ...
6 years, 11 months ago (2014-01-03 22:53:58 UTC) #24
acolwell GONE FROM CHROMIUM
Here's my next round of comments. It might be best to defer adding the H.264 ...
6 years, 11 months ago (2014-01-06 22:44:06 UTC) #25
damienv1
Aaron, I will remove the H264 bit reader when there is no more comment on ...
6 years, 11 months ago (2014-01-07 00:19:40 UTC) #26
acolwell GONE FROM CHROMIUM
lgtm % nits and assuming the H264 changes are removed and used in a follow-up ...
6 years, 11 months ago (2014-01-11 00:24:36 UTC) #27
Pawel Osciak
https://chromiumcodereview.appspot.com/112343011/diff/1030001/media/base/bit_reader_core.cc File media/base/bit_reader_core.cc (right): https://chromiumcodereview.appspot.com/112343011/diff/1030001/media/base/bit_reader_core.cc#newcode60 media/base/bit_reader_core.cc:60: if (!ReadBitsInternal(kRegWidthInBits, &dummy)) What do you think of instead: ...
6 years, 11 months ago (2014-01-11 02:30:48 UTC) #28
damienv1
https://codereview.chromium.org/112343011/diff/910001/media/base/bit_reader_h264.cc File media/base/bit_reader_h264.cc (right): https://codereview.chromium.org/112343011/diff/910001/media/base/bit_reader_h264.cc#newcode23 media/base/bit_reader_h264.cc:23: int BitReaderH264::ReadUE(uint32* out) { ReadUEInternal https://codereview.chromium.org/112343011/diff/910001/media/base/bit_reader_h264.h File media/base/bit_reader_h264.h (right): ...
6 years, 11 months ago (2014-01-13 22:41:05 UTC) #29
damienv1
If no more feedback, I will commit tomorrow morning based on Aaron's LGTM. Thanks for ...
6 years, 11 months ago (2014-01-15 04:28:24 UTC) #30
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/damienv@chromium.org/112343011/1420001
6 years, 11 months ago (2014-01-15 16:30:10 UTC) #31
commit-bot: I haz the power
6 years, 11 months ago (2014-01-15 19:31:02 UTC) #32
Message was sent while issue was closed.
Change committed as 244959

Powered by Google App Engine
This is Rietveld 408576698