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

Issue 1577953002: Motown in-proc streaming framework used to implement media services. (Closed)

Created:
4 years, 11 months ago by dalesat
Modified:
4 years, 10 months ago
Reviewers:
jamesr, jeffbrown, johngro
CC:
mojo-reviews_chromium.org, qsr+mojo_chromium.org
Base URL:
https://github.com/domokit/mojo.git@master
Target Ref:
refs/heads/master
Project:
mojo
Visibility:
Public.

Description

Motown in-proc streaming framework used to implement media services. Includes the engine that hosts the various 'parts' that make up in-proc streaming graphs, as well as the parts that aren't dependendent on ffmpeg or mojo. framework_create is where ffmpeg and other technologies will be integrated. For now, the 'Create' functions simply fail. R=johngro@google.com Committed: https://chromium.googlesource.com/external/mojo/+/bd2a17d65fabcdb7785c67b43769e5a52cf6f8aa

Patch Set 1 #

Patch Set 2 : removed build/util/LASTCHANGE #

Total comments: 52

Patch Set 3 : Changed lpcm input/output to use packets for supplying frames. Some name changes. Synced to master. #

Total comments: 26

Patch Set 4 : Addressed feedback including non-const ref parameters. #

Total comments: 74

Patch Set 5 : Various fixes based on feedback. #

Total comments: 26

Patch Set 6 : Fixes based on feedback. #

Patch Set 7 : Fixes based on feedback. #

Total comments: 42

Patch Set 8 : Sync, updates based on feedback, some functions declared const. #

Total comments: 129

Patch Set 9 : Many changes in response to feedback. Sync. #

Patch Set 10 : sync #

Unified diffs Side-by-side diffs Delta from patch set Stats (+6189 lines, -5 lines) Patch
M services/media/BUILD.gn View 1 chunk +2 lines, -0 lines 0 comments Download
A services/media/framework/BUILD.gn View 1 2 3 4 5 6 7 8 1 chunk +72 lines, -0 lines 0 comments Download
A services/media/framework/allocator.h View 1 2 3 4 5 6 1 chunk +31 lines, -0 lines 0 comments Download
A services/media/framework/allocator.cc View 1 2 3 4 5 6 1 chunk +46 lines, -0 lines 0 comments Download
A services/media/framework/conversion_pipeline_builder.h View 1 2 3 1 chunk +29 lines, -0 lines 0 comments Download
A services/media/framework/conversion_pipeline_builder.cc View 1 2 3 4 5 6 7 8 1 chunk +341 lines, -0 lines 0 comments Download
A services/media/framework/engine.h View 1 2 3 4 5 6 7 8 1 chunk +432 lines, -0 lines 0 comments Download
A services/media/framework/engine.cc View 1 2 3 4 5 6 7 8 1 chunk +434 lines, -0 lines 0 comments Download
A services/media/framework/formatting.h View 1 2 3 4 5 6 7 8 1 chunk +88 lines, -0 lines 0 comments Download
A services/media/framework/formatting.cc View 1 2 3 4 5 6 7 8 1 chunk +385 lines, -0 lines 0 comments Download
A services/media/framework/lpcm_util.h View 1 2 3 4 5 1 chunk +46 lines, -0 lines 0 comments Download
A services/media/framework/lpcm_util.cc View 1 2 3 4 5 6 7 8 1 chunk +169 lines, -0 lines 0 comments Download
A services/media/framework/metadata.h View 1 2 3 4 5 6 7 8 1 chunk +87 lines, -0 lines 0 comments Download
A services/media/framework/metadata.cc View 1 2 3 4 5 6 7 8 1 chunk +48 lines, -0 lines 0 comments Download
A services/media/framework/models/active_sink.h View 1 2 3 4 5 6 7 8 1 chunk +46 lines, -0 lines 0 comments Download
A services/media/framework/models/active_source.h View 1 2 3 4 5 6 7 8 1 chunk +42 lines, -0 lines 0 comments Download
A services/media/framework/models/demand.h View 1 2 3 4 5 6 7 8 1 chunk +28 lines, -0 lines 0 comments Download
A services/media/framework/models/lpcm_frame_buffer.h View 1 2 3 4 5 6 7 8 1 chunk +83 lines, -0 lines 0 comments Download
A services/media/framework/models/lpcm_frame_buffer.cc View 1 2 3 4 5 6 7 8 1 chunk +19 lines, -0 lines 0 comments Download
A services/media/framework/models/lpcm_transform.h View 1 2 3 4 5 6 7 8 1 chunk +39 lines, -0 lines 0 comments Download
A services/media/framework/models/multistream_packet_source.h View 1 chunk +35 lines, -0 lines 0 comments Download
A services/media/framework/models/packet_transform.h View 1 2 3 1 chunk +38 lines, -0 lines 0 comments Download
A services/media/framework/packet.h View 1 2 3 4 5 6 7 8 1 chunk +84 lines, -0 lines 0 comments Download
A services/media/framework/packet.cc View 1 2 3 4 5 6 7 8 1 chunk +106 lines, -0 lines 0 comments Download
A services/media/framework/parts/decoder.h View 1 2 3 4 5 6 7 8 1 chunk +42 lines, -0 lines 0 comments Download
A services/media/framework/parts/demux.h View 1 chunk +77 lines, -0 lines 0 comments Download
A services/media/framework/parts/file_reader.h View 1 2 3 4 5 6 7 8 1 chunk +45 lines, -0 lines 0 comments Download
A services/media/framework/parts/file_reader.cc View 1 2 3 4 5 6 7 8 1 chunk +67 lines, -0 lines 0 comments Download
A services/media/framework/parts/lpcm_reformatter.h View 1 2 3 4 5 6 7 8 1 chunk +30 lines, -0 lines 0 comments Download
A services/media/framework/parts/lpcm_reformatter.cc View 1 2 3 4 5 6 7 8 1 chunk +348 lines, -0 lines 0 comments Download
A services/media/framework/parts/null_sink.h View 1 2 3 4 5 6 7 8 1 chunk +44 lines, -0 lines 0 comments Download
A services/media/framework/parts/null_sink.cc View 1 2 3 4 5 6 7 8 1 chunk +36 lines, -0 lines 0 comments Download
A services/media/framework/parts/reader.h View 1 2 3 4 5 6 7 8 1 chunk +54 lines, -0 lines 0 comments Download
A services/media/framework/parts/reader.cc View 1 2 3 4 5 6 7 8 1 chunk +37 lines, -0 lines 0 comments Download
A services/media/framework/ptr.h View 1 2 3 4 5 1 chunk +64 lines, -0 lines 0 comments Download
A services/media/framework/result.h View 1 2 3 4 5 1 chunk +26 lines, -0 lines 0 comments Download
A services/media/framework/stages/active_sink_stage.h View 1 2 3 4 5 1 chunk +49 lines, -0 lines 0 comments Download
A services/media/framework/stages/active_sink_stage.cc View 1 2 3 4 5 6 7 8 1 chunk +67 lines, -0 lines 0 comments Download
A services/media/framework/stages/active_source_stage.h View 1 2 3 4 5 1 chunk +47 lines, -0 lines 0 comments Download
A services/media/framework/stages/active_source_stage.cc View 1 2 3 4 5 6 7 8 1 chunk +69 lines, -0 lines 0 comments Download
A services/media/framework/stages/distributor_stage.h View 1 2 3 4 5 1 chunk +47 lines, -0 lines 0 comments Download
A services/media/framework/stages/distributor_stage.cc View 1 2 3 4 5 1 chunk +91 lines, -0 lines 0 comments Download
A services/media/framework/stages/lpcm_stage_input.h View 1 2 3 4 5 6 7 8 1 chunk +102 lines, -0 lines 0 comments Download
A services/media/framework/stages/lpcm_stage_input.cc View 1 2 3 4 5 6 7 8 1 chunk +211 lines, -0 lines 0 comments Download
A services/media/framework/stages/lpcm_stage_output.h View 1 2 3 4 5 6 7 8 1 chunk +120 lines, -0 lines 0 comments Download
A services/media/framework/stages/lpcm_stage_output.cc View 1 2 3 4 5 6 7 8 1 chunk +85 lines, -0 lines 0 comments Download
A services/media/framework/stages/lpcm_transform_stage.h View 1 2 3 4 5 1 chunk +43 lines, -0 lines 0 comments Download
A services/media/framework/stages/lpcm_transform_stage.cc View 1 2 3 4 5 6 7 8 1 chunk +68 lines, -0 lines 0 comments Download
A services/media/framework/stages/packet_transform_stage.h View 1 2 3 4 5 6 7 8 1 chunk +45 lines, -0 lines 0 comments Download
A services/media/framework/stages/packet_transform_stage.cc View 1 2 3 4 5 6 7 8 1 chunk +73 lines, -0 lines 0 comments Download
A services/media/framework/stages/stage.h View 1 2 3 4 5 6 7 8 1 chunk +72 lines, -0 lines 0 comments Download
A services/media/framework/stages/stage.cc View 1 2 3 4 5 1 chunk +25 lines, -0 lines 0 comments Download
A services/media/framework/stages/stage_input.h View 1 2 3 4 5 1 chunk +83 lines, -0 lines 0 comments Download
A services/media/framework/stages/stage_input.cc View 1 2 3 4 5 1 chunk +73 lines, -0 lines 0 comments Download
A services/media/framework/stages/stage_output.h View 1 2 3 4 5 6 7 8 1 chunk +81 lines, -0 lines 0 comments Download
A services/media/framework/stages/stage_output.cc View 1 2 3 4 5 6 7 8 1 chunk +122 lines, -0 lines 0 comments Download
A services/media/framework/stream_type.h View 1 2 3 4 5 6 7 8 1 chunk +637 lines, -0 lines 0 comments Download
A services/media/framework/stream_type.cc View 1 2 3 4 5 6 7 8 1 chunk +339 lines, -0 lines 0 comments Download
A + services/media/framework_create/BUILD.gn View 1 chunk +8 lines, -5 lines 0 comments Download
A services/media/framework_create/decoder.cc View 1 chunk +17 lines, -0 lines 0 comments Download
A services/media/framework_create/demux.cc View 1 chunk +15 lines, -0 lines 0 comments Download

Messages

Total messages: 22 (3 generated)
johngro
publishing comments in progress. More to come https://codereview.chromium.org/1577953002/diff/20001/services/media/framework/allocator.cc File services/media/framework/allocator.cc (right): https://codereview.chromium.org/1577953002/diff/20001/services/media/framework/allocator.cc#newcode34 services/media/framework/allocator.cc:34: static DefaultAllocator ...
4 years, 11 months ago (2016-01-20 00:25:33 UTC) #3
dalesat
https://codereview.chromium.org/1577953002/diff/20001/services/media/framework/conversion_pipeline_builder.cc File services/media/framework/conversion_pipeline_builder.cc (right): https://codereview.chromium.org/1577953002/diff/20001/services/media/framework/conversion_pipeline_builder.cc#newcode192 services/media/framework/conversion_pipeline_builder.cc:192: NOTREACHED() << "conversion requires mixdown/up - not supported"; On ...
4 years, 11 months ago (2016-01-25 17:47:29 UTC) #4
johngro
publishing more comments so I can put this revision down and move onto the next ...
4 years, 11 months ago (2016-01-25 18:55:43 UTC) #5
dalesat
https://codereview.chromium.org/1577953002/diff/20001/services/media/framework/allocator.cc File services/media/framework/allocator.cc (right): https://codereview.chromium.org/1577953002/diff/20001/services/media/framework/allocator.cc#newcode34 services/media/framework/allocator.cc:34: static DefaultAllocator default_allocator; On 2016/01/20 00:25:32, johngro wrote: > ...
4 years, 11 months ago (2016-01-25 23:29:38 UTC) #6
johngro
got down to parts/lpcm_refomatter. Will resume in the morning, working on PS#4 https://codereview.chromium.org/1577953002/diff/40001/services/media/framework/metadata.h File services/media/framework/metadata.h ...
4 years, 11 months ago (2016-01-26 01:32:39 UTC) #7
dalesat
https://codereview.chromium.org/1577953002/diff/40001/services/media/framework/metadata.h File services/media/framework/metadata.h (right): https://codereview.chromium.org/1577953002/diff/40001/services/media/framework/metadata.h#newcode19 services/media/framework/metadata.h:19: class Metadata { On 2016/01/26 01:32:38, johngro wrote: > ...
4 years, 10 months ago (2016-01-26 21:17:51 UTC) #8
johngro
first pass complete, time for me to start again and go over your responses to ...
4 years, 10 months ago (2016-01-26 23:47:31 UTC) #9
johngro
publishing feedback on the current responses to the first round of feedback. Looks like you ...
4 years, 10 months ago (2016-01-27 22:35:23 UTC) #10
dalesat
https://codereview.chromium.org/1577953002/diff/20001/services/media/framework/allocator.cc File services/media/framework/allocator.cc (right): https://codereview.chromium.org/1577953002/diff/20001/services/media/framework/allocator.cc#newcode34 services/media/framework/allocator.cc:34: static DefaultAllocator default_allocator; On 2016/01/27 22:35:22, johngro wrote: > ...
4 years, 10 months ago (2016-01-28 18:49:18 UTC) #11
johngro
first round of feedback about thread safety modifications. TL;DR? I have concerns about the locking ...
4 years, 10 months ago (2016-01-28 19:14:55 UTC) #12
dalesat
https://codereview.chromium.org/1577953002/diff/80001/services/media/framework/allocator.cc File services/media/framework/allocator.cc (right): https://codereview.chromium.org/1577953002/diff/80001/services/media/framework/allocator.cc#newcode49 services/media/framework/allocator.cc:49: DCHECK(buffer); On 2016/01/28 19:14:54, johngro wrote: > Given that ...
4 years, 10 months ago (2016-01-29 01:08:30 UTC) #13
johngro
LGTM minor comments remaining (spelling, requests for tracking issues, etc) I just checked, Jeff is ...
4 years, 10 months ago (2016-02-01 22:38:17 UTC) #14
dalesat
https://codereview.chromium.org/1577953002/diff/40001/services/media/framework/packet.h File services/media/framework/packet.h (right): https://codereview.chromium.org/1577953002/diff/40001/services/media/framework/packet.h#newcode37 services/media/framework/packet.h:37: bool end_of_stream, On 2016/02/01 22:38:16, johngro wrote: > On ...
4 years, 10 months ago (2016-02-01 23:01:28 UTC) #15
jeffbrown
My comments are mostly advisory. These are things you should think about in future changes ...
4 years, 10 months ago (2016-02-02 05:35:49 UTC) #16
johngro
https://codereview.chromium.org/1577953002/diff/120001/services/media/framework/allocator.cc File services/media/framework/allocator.cc (right): https://codereview.chromium.org/1577953002/diff/120001/services/media/framework/allocator.cc#newcode17 services/media/framework/allocator.cc:17: constexpr DefaultAllocator() {} On 2016/02/02 05:35:45, jeffbrown wrote: > ...
4 years, 10 months ago (2016-02-02 17:21:37 UTC) #17
dalesat
Responding to general points: >> 1. Don't subclass C++ standard library types just to add ...
4 years, 10 months ago (2016-02-02 21:46:41 UTC) #18
dalesat
Committed patchset #10 (id:180001) manually as bd2a17d65fabcdb7785c67b43769e5a52cf6f8aa (presubmit successful).
4 years, 10 months ago (2016-02-03 00:15:24 UTC) #20
jeffbrown
https://codereview.chromium.org/1577953002/diff/140001/services/media/framework/ptr.h File services/media/framework/ptr.h (right): https://codereview.chromium.org/1577953002/diff/140001/services/media/framework/ptr.h#newcode20 services/media/framework/ptr.h:20: UniquePtr(std::nullptr_t) : std::unique_ptr<T, Deleter>() {} On 2016/02/02 21:46:40, dalesat ...
4 years, 10 months ago (2016-02-03 01:46:56 UTC) #21
jamesr
4 years, 10 months ago (2016-02-03 18:53:02 UTC) #22
Message was sent while issue was closed.
This doesn't compile on android:

FAILED: /b/build/goma/gomacc
../../third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-g++
-MMD -MF obj/services/media/framework/framework.stream_type.o.d
-DV8_DEPRECATION_WARNINGS -DCLD_VERSION=1 -DDONT_EMBED_BUILD_METADATA
-DUSE_OPENSSL=1 -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DDISABLE_NACL
-DCHROMIUM_BUILD -D_FILE_OFFSET_BITS=64 -DANDROID -DHAVE_SYS_UIO_H
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2
-D__GNU_SOURCE=1 -DNDEBUG -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -I../..
-Igen -fno-strict-aliasing -march=armv7-a -mfloat-abi=softfp
-mtune=generic-armv7-a -mthumb -mthumb-interwork -fno-tree-sra -fno-caller-saves
-funwind-tables -fPIC -pipe -ffunction-sections -funwind-tables -fno-short-enums
-finline-limit=64 -mfpu=vfpv3-d16 -Wall -Wsign-compare -Wendif-labels -Werror
-Wno-missing-field-initializers -Wno-unused-parameter -Wno-psabi -Wno-extra
-Wno-ignored-qualifiers -Wno-type-limits -Wno-unused-local-typedefs
-isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++/libcxx/include
-isystem../../third_party/android_tools/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/include
-isystem../../third_party/android_tools/ndk/sources/android/support/include
-fvisibility=hidden
--sysroot=/b/build/slave/mojo/build/src/third_party/android_tools/ndk/platforms/android-16/arch-arm
-fno-ident -fdata-sections -ffunction-sections -fomit-frame-pointer -Os -g2
-fno-threadsafe-statics -fvisibility-inlines-hidden -std=c++11 -Wno-narrowing
-Wno-literal-suffix -Wno-error=c++0x-compat -Wno-non-virtual-dtor
-Wno-sign-promo -fno-rtti -fno-exceptions -c
../../services/media/framework/stream_type.cc -o
obj/services/media/framework/framework.stream_type.o
../../services/media/framework/stream_type.cc: In static member function 'static
uint32_t
mojo::media::LpcmStreamType::SampleSizeFromFormat(mojo::media::LpcmStreamType::SampleFormat)':
../../services/media/framework/stream_type.cc:164:1: error: control reaches end
of non-void function [-Werror=return-type]
 }
 ^

where are the tryjob results?

Powered by Google App Engine
This is Rietveld 408576698