commit | 1567842287b4097350d33c14e5f795559fa008b5 | [log] [tgz] |
---|---|---|
author | mcasas <mcasas@chromium.org> | Wed Sep 09 23:32:06 2015 |
committer | Commit bot <commit-bot@chromium.org> | Wed Sep 09 23:32:47 2015 |
tree | f50a9f48f649abf87a84590681bf9516026ee812 | |
parent | 7606f64ba73cbc175f2dbffe2d20714bab299de2 [diff] |
MediaRecorderHandler (video part) and unittests MediaRecorderHandler is Blink-orchestrated class implementing MediaRecorder API (see below). It plugs together an existing MediaStreamVideoTrack to a new VideoTrackRecorder-WebmMuxer pair. When MSVTrack passes frames, these get encoded, muxed, and the result is sent to Blink. A *note on threading*: As is customary in MediaStream* and derived classes, all configuration happens on Main Render thread while frame manipulation and forwarding happens on Render IO thread [1]. Moreover, all objects can be, and often are, destroyed in asynchronous and unexpected ways from Blink. This forces ref-counting for VideoTrackRecorder::VpxEncoder. This is the also the reason behind the change in WebmMuxer to 2-threaded. See DD @ https://goo.gl/vSjzC5 (*) for the plan. (*) Used to be https://goo.gl/kreaQj [1] https://code.google.com/p/chromium/codesearch#chromium/src/content/renderer/media/media_stream_video_track.cc&sq=package:chromium&type=cs&l=155&rcl=1440530828 BUG=262211 Review URL: https://codereview.chromium.org/1313603004 Cr-Commit-Position: refs/heads/master@{#348037}