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

Issue 1517473002: Support HLS MPEG2 TS with SAMPLE-AES encryption. (Closed)

Created:
5 years ago by dougsteed
Modified:
4 years ago
CC:
chromium-reviews, feature-media-reviews_chromium.org, mbjorge
Base URL:
https://chromium.googlesource.com/chromium/src.git@encryption_scheme
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

The actual encryption is assumed to have been carried out according to the SAMPLE-AES encryption method cited by the HLS spec (informational RFC called draft-pantos-http-live- streaming). This encryption method is being incorporated in the Common Encryption specification ISO/IEC 23001-7 3rd Edition as the 'cbcs' scheme. Parsing of the stream requires it to be prefixed with extra TS packets that carry encryption metadata. These packets are formatted according to ISO/IEC 23001-9 "Common encryption of MPEG-2 transport streams". This CL is dependent on a prior CL (1490613005) that allows conveyance of the extended encryption metadata through the pipeline. BUG=568326 Committed: https://crrev.com/a66a6e417397bde59355594554931b0784ec1598 Cr-Commit-Position: refs/heads/master@{#436058}

Patch Set 1 #

Patch Set 2 : tidying up prior to review #

Total comments: 16

Patch Set 3 : remove test data #

Total comments: 12

Patch Set 4 : update to reflect changes in CL it depends on #

Patch Set 5 : accommodate yucliu comments on patchset 3 #

Patch Set 6 : minor tweak to the CL this depends on #

Patch Set 7 : rebase #

Patch Set 8 : fix bug encountered during testing (slight misunderstanding of Range<>) #

Patch Set 9 : fix edge case associated with spec discrepancy #

Patch Set 10 : enable unit test. Minor tweak to config access. #

Patch Set 11 : rebase #

Patch Set 12 : rebase redux #

Patch Set 13 : rebase with first CL #

Patch Set 14 : rebase #

Patch Set 15 : rebase #

Patch Set 16 : rebase from origin and depending CL #

Patch Set 17 : rebase #

Total comments: 15

Patch Set 18 : rebase #

Total comments: 2

Patch Set 19 : use common test key and lookup #

Patch Set 20 : gni variable cross check #

Patch Set 21 : README file update #

Total comments: 2

Patch Set 22 : move some gn defs #

Total comments: 64

Patch Set 23 : ddorwin comments #

Total comments: 10

Patch Set 24 : ddorwin nits #

Patch Set 25 : rebase #

Total comments: 22

Patch Set 26 : rebase #

Patch Set 27 : rebase #

Patch Set 28 : yucliu1 + ddorwin comments #

Patch Set 29 : rebase #

Patch Set 30 : Fix bug with multiple EP3Bs in one block #

Patch Set 31 : rebase #

Patch Set 32 : rebase properly this time #

Patch Set 33 : rebase #

Patch Set 34 : rebase #

Patch Set 35 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1379 lines, -62 lines) Patch
M media/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 5 chunks +17 lines, -0 lines 0 comments Download
M media/base/bit_reader.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 chunks +6 lines, -0 lines 0 comments Download
M media/base/bit_reader.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +14 lines, -0 lines 0 comments Download
M media/base/test_data_util.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +12 lines, -0 lines 0 comments Download
M media/base/test_data_util.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2 chunks +40 lines, -0 lines 0 comments Download
A media/formats/mp2t/descriptors.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +67 lines, -0 lines 0 comments Download
A media/formats/mp2t/descriptors.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 1 chunk +156 lines, -0 lines 0 comments Download
M media/formats/mp2t/es_parser.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 chunks +3 lines, -1 line 0 comments Download
M media/formats/mp2t/es_parser_adts.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 chunks +20 lines, -0 lines 0 comments Download
M media/formats/mp2t/es_parser_adts.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 7 chunks +80 lines, -9 lines 0 comments Download
M media/formats/mp2t/es_parser_h264.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 chunks +15 lines, -0 lines 0 comments Download
M media/formats/mp2t/es_parser_h264.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 6 chunks +216 lines, -5 lines 0 comments Download
M media/formats/mp2t/mp2t_stream_parser.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 4 chunks +30 lines, -1 line 0 comments Download
M media/formats/mp2t/mp2t_stream_parser.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 6 chunks +137 lines, -1 line 0 comments Download
M media/formats/mp2t/mp2t_stream_parser_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 10 chunks +182 lines, -1 line 0 comments Download
A media/formats/mp2t/ts_section_cat.h View 1 2 3 4 5 6 7 8 9 1 chunk +38 lines, -0 lines 0 comments Download
A media/formats/mp2t/ts_section_cat.cc View 1 2 3 4 5 6 7 8 9 1 chunk +85 lines, -0 lines 0 comments Download
A media/formats/mp2t/ts_section_cets_ecm.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 1 chunk +46 lines, -0 lines 0 comments Download
A media/formats/mp2t/ts_section_cets_ecm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +84 lines, -0 lines 0 comments Download
A media/formats/mp2t/ts_section_cets_pssh.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 1 chunk +41 lines, -0 lines 0 comments Download
A media/formats/mp2t/ts_section_cets_pssh.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +56 lines, -0 lines 0 comments Download
M media/formats/mp2t/ts_section_pmt.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 chunks +4 lines, -4 lines 0 comments Download
M media/formats/mp2t/ts_section_pmt.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 3 chunks +9 lines, -10 lines 0 comments Download
M media/formats/mpeg/adts_constants.h View 1 chunk +2 lines, -0 lines 0 comments Download
M media/media_options.gni View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 1 chunk +8 lines, -0 lines 0 comments Download
M media/test/data/README View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 chunk +6 lines, -0 lines 0 comments Download
A media/test/data/bear-1280x720-hls.ts View 1 2 3 4 5 6 7 8 9 Binary file 0 comments Download
A media/test/data/bear-1280x720-hls-sample-aes.ts View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Binary file 0 comments Download
M media/test/pipeline_integration_test.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 4 chunks +5 lines, -30 lines 0 comments Download

Messages

Total messages: 71 (36 generated)
dougsteed
5 years ago (2015-12-09 23:45:48 UTC) #3
DaleCurtis
=>ddorwin
5 years ago (2015-12-09 23:47:35 UTC) #5
ddorwin
I skipped most of media/formats/mp2t/. Does the define cover all CENC in TS, v3, or ...
5 years ago (2015-12-10 20:10:59 UTC) #6
yucliu1
https://codereview.chromium.org/1517473002/diff/40001/media/formats/mp2t/es_parser_adts.cc File media/formats/mp2t/es_parser_adts.cc (right): https://codereview.chromium.org/1517473002/diff/40001/media/formats/mp2t/es_parser_adts.cc#newcode131 media/formats/mp2t/es_parser_adts.cc:131: get_decrypt_config_cb_(GetDecryptConfigCB()), Maybe simply get_decrypt_config_cb_()? https://codereview.chromium.org/1517473002/diff/40001/media/formats/mp2t/es_parser_adts.cc#newcode140 media/formats/mp2t/es_parser_adts.cc:140: const GetDecryptConfigCB get_decrypt_config_cb, ...
5 years ago (2015-12-11 19:55:31 UTC) #7
yucliu1
https://codereview.chromium.org/1517473002/diff/40001/media/formats/mp2t/descriptors.cc File media/formats/mp2t/descriptors.cc (right): https://codereview.chromium.org/1517473002/diff/40001/media/formats/mp2t/descriptors.cc#newcode147 media/formats/mp2t/descriptors.cc:147: return private_data_indicator = value; I think the "=" here ...
5 years ago (2015-12-11 21:34:55 UTC) #8
dougsteed
PTAL Note that I had to temporarily suppress the new unittest pending suitable test files. ...
5 years ago (2015-12-14 22:51:46 UTC) #9
dougsteed
Answers to ddorwin overall comment: {Does the define cover all CENC in TS, v3, or ...
5 years ago (2015-12-14 23:09:17 UTC) #10
slan
https://codereview.chromium.org/1517473002/diff/320001/media/media_options.gni File media/media_options.gni (right): https://codereview.chromium.org/1517473002/diff/320001/media/media_options.gni#newcode50 media/media_options.gni:50: enable_hls_sample_aes = proprietary_codecs && is_cast_desktop_build Hey Doug, I think ...
4 years, 9 months ago (2016-03-18 22:31:23 UTC) #17
dougsteed
xhwang@ now that the CL on which this depends has landed, would like to focus ...
4 years, 9 months ago (2016-03-21 18:11:06 UTC) #18
slan
On 2016/03/21 18:11:06, dougsteed wrote: > xhwang@ now that the CL on which this depends ...
4 years, 9 months ago (2016-03-23 21:05:57 UTC) #19
ddorwin
https://codereview.chromium.org/1517473002/diff/320001/media/BUILD.gn File media/BUILD.gn (right): https://codereview.chromium.org/1517473002/diff/320001/media/BUILD.gn#newcode22 media/BUILD.gn:22: "ENABLE_HLS_SAMPLE_AES=$enable_hls_sample_aes", Is this a subset/dependent on enable_mse_mpeg2ts_stream_parser? If so, ...
4 years, 9 months ago (2016-03-23 22:29:27 UTC) #20
dougsteed
https://codereview.chromium.org/1517473002/diff/320001/media/test/data/README File media/test/data/README (right): https://codereview.chromium.org/1517473002/diff/320001/media/test/data/README#newcode80 media/test/data/README:80: need to mock key delivery). keyid= On 2016/03/23 22:29:26, ...
4 years, 9 months ago (2016-03-24 22:13:36 UTC) #21
ddorwin
https://codereview.chromium.org/1517473002/diff/320001/media/test/data/README File media/test/data/README (right): https://codereview.chromium.org/1517473002/diff/320001/media/test/data/README#newcode80 media/test/data/README:80: need to mock key delivery). keyid= On 2016/03/24 22:13:36, ...
4 years, 9 months ago (2016-03-24 22:44:52 UTC) #22
dougsteed
ddorwin@ I think I took into account all your comments xhwang@ can you take a ...
4 years, 8 months ago (2016-03-31 19:09:50 UTC) #23
ddorwin
Thanks. https://codereview.chromium.org/1517473002/diff/320001/media/BUILD.gn File media/BUILD.gn (right): https://codereview.chromium.org/1517473002/diff/320001/media/BUILD.gn#newcode309 media/BUILD.gn:309: if (proprietary_codecs && enable_hls_sample_aes) { On 2016/03/31 19:09:50, ...
4 years, 8 months ago (2016-03-31 20:59:22 UTC) #24
dougsteed
https://codereview.chromium.org/1517473002/diff/320001/media/BUILD.gn File media/BUILD.gn (right): https://codereview.chromium.org/1517473002/diff/320001/media/BUILD.gn#newcode309 media/BUILD.gn:309: if (proprietary_codecs && enable_hls_sample_aes) { On 2016/03/31 20:59:21, ddorwin ...
4 years, 8 months ago (2016-04-01 01:19:28 UTC) #25
xhwang
I'll defer to ddorwin@ to finish the review of this CL as media/ OWNER. He ...
4 years, 8 months ago (2016-04-11 23:13:15 UTC) #27
ddorwin
I only skimmed media/formats/mp2t/. You'll need someone to review that code. https://chromiumcodereview.appspot.com/1517473002/diff/420001/media/base/bit_reader.cc File media/base/bit_reader.cc (right): ...
4 years, 8 months ago (2016-04-12 00:40:48 UTC) #28
dougsteed
ddorwin@ PTAL. "I only skimmed media/formats/mp2t/. You'll need someone to review that code". You have ...
4 years, 7 months ago (2016-05-08 23:18:45 UTC) #29
ddorwin
LG. On 2016/05/08 23:18:45, dougsteed wrote: > ddorwin@ PTAL. > "I only skimmed media/formats/mp2t/. You'll ...
4 years, 7 months ago (2016-05-18 20:06:51 UTC) #30
dougsteed
https://chromiumcodereview.appspot.com/1517473002/diff/440001/media/formats/mp2t/descriptors.h File media/formats/mp2t/descriptors.h (right): https://chromiumcodereview.appspot.com/1517473002/diff/440001/media/formats/mp2t/descriptors.h#newcode26 media/formats/mp2t/descriptors.h:26: Descriptors(const Descriptors& other); On 2016/05/18 20:06:51, ddorwin wrote: > ...
4 years, 7 months ago (2016-05-26 02:33:15 UTC) #31
yucliu1
On 2016/05/26 02:33:15, dougsteed wrote: > https://chromiumcodereview.appspot.com/1517473002/diff/440001/media/formats/mp2t/descriptors.h > File media/formats/mp2t/descriptors.h (right): > > https://chromiumcodereview.appspot.com/1517473002/diff/440001/media/formats/mp2t/descriptors.h#newcode26 > ...
4 years, 7 months ago (2016-05-26 23:28:30 UTC) #32
yucliu1
https://codereview.chromium.org/1517473002/diff/480001/media/formats/mp2t/descriptors.cc File media/formats/mp2t/descriptors.cc (right): https://codereview.chromium.org/1517473002/diff/480001/media/formats/mp2t/descriptors.cc#newcode69 media/formats/mp2t/descriptors.cc:69: descriptors_.insert(Descriptor(tag, std::string(data, length))); nit: Use 'emplace' instead? https://codereview.chromium.org/1517473002/diff/480001/media/formats/mp2t/mp2t_stream_parser.cc File ...
4 years, 7 months ago (2016-05-26 23:28:47 UTC) #33
ddorwin
Minor stuff, plus please address yucliu1's comments. Other than that, L G T M. https://codereview.chromium.org/1517473002/diff/480001/media/formats/mp2t/es_parser_adts.cc ...
4 years, 6 months ago (2016-06-23 19:42:01 UTC) #34
yucliu1
https://codereview.chromium.org/1517473002/diff/480001/media/formats/mp2t/es_parser_adts.cc File media/formats/mp2t/es_parser_adts.cc (right): https://codereview.chromium.org/1517473002/diff/480001/media/formats/mp2t/es_parser_adts.cc#newcode269 media/formats/mp2t/es_parser_adts.cc:269: ? audio_decoder_config.samples_per_second() / 2 On 2016/06/23 19:42:00, ddorwin wrote: ...
4 years, 6 months ago (2016-06-23 20:30:55 UTC) #35
dougsteed
yucliu1@: sorry for the long delay. Can you check one more time, and if it ...
4 years, 2 months ago (2016-09-25 21:52:30 UTC) #36
yucliu1
On 2016/09/25 21:52:30, dougsteed wrote: > yucliu1@: sorry for the long delay. Can you check ...
4 years, 2 months ago (2016-09-25 22:29:20 UTC) #37
servolk
https://codereview.chromium.org/1517473002/diff/480001/media/test/pipeline_integration_test.cc File media/test/pipeline_integration_test.cc (right): https://codereview.chromium.org/1517473002/diff/480001/media/test/pipeline_integration_test.cc#newcode1781 media/test/pipeline_integration_test.cc:1781: // When SBR is not taken into account correctly ...
4 years, 2 months ago (2016-09-26 23:15:21 UTC) #39
dougsteed
yucliu@. Once more, please. Merged in the fix for bug we discovered when testing with ...
4 years, 2 months ago (2016-10-07 17:35:51 UTC) #40
yucliu1
On 2016/10/07 17:35:51, dougsteed wrote: > yucliu@. Once more, please. Merged in the fix for ...
4 years, 2 months ago (2016-10-07 17:45:48 UTC) #41
dougsteed
ddorwin@: you seemed to approve this CL contingent on yucliu's endorsement, but I still need ...
4 years, 2 months ago (2016-10-13 17:32:36 UTC) #54
ddorwin
LGTM Thank you servolk@ for addressing the discussion in pipeline_integration_test.cc.
4 years, 1 month ago (2016-11-07 18:20:43 UTC) #55
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/1517473002/680001
4 years ago (2016-12-02 22:26:03 UTC) #66
commit-bot: I haz the power
Committed patchset #35 (id:680001)
4 years ago (2016-12-02 22:39:46 UTC) #69
commit-bot: I haz the power
4 years ago (2016-12-02 22:41:25 UTC) #71
Message was sent while issue was closed.
Patchset 35 (id:??) landed as
https://crrev.com/a66a6e417397bde59355594554931b0784ec1598
Cr-Commit-Position: refs/heads/master@{#436058}

Powered by Google App Engine
This is Rietveld 408576698