diff options
author | yukawa@chromium.org <yukawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-27 12:09:35 +0000 |
---|---|---|
committer | yukawa@chromium.org <yukawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-27 12:09:35 +0000 |
commit | b2f8b5916131272bb121f1e224a401eaa7edc2ad (patch) | |
tree | 6fcd62dcbc2ad4f91c49117455b42a2bc52f9b3e /media/media.gyp | |
parent | 0e2e57b6a0ac69b7b3f4fcde50c28b939bb843ca (diff) | |
download | chromium_src-b2f8b5916131272bb121f1e224a401eaa7edc2ad.zip chromium_src-b2f8b5916131272bb121f1e224a401eaa7edc2ad.tar.gz chromium_src-b2f8b5916131272bb121f1e224a401eaa7edc2ad.tar.bz2 |
Use MIDIMessageQueue/IsValidWebMIDIData for MIDI byte stream validation
WebMIDI spec draft: http://www.w3.org/TR/webmidi/
WebMIDI API guarantees that MIDIInput::onmessage is called back with a single MIDI message. To guarantee this, this CL introduces MIDIMessageQueue class, which allows you to
- maintain fragmented MIDI message.
- Skip any invalid data sequence.
- Reorder MIDI messages so that "System Real Time Message", which can be inserted at any point of the byte stream, can be placed at the boundary of complete MIDI messages.
- (Optional) Reconstruct complete MIDI messages from data stream that is compressed with "running status".
This CL also replaces existing System Exclusive message validation logic in MIDIHost::OnSendData with MIDIHost::IsValidWebMIDIData, which can detect SysEx message even when it is concatenated with non-SysEx messages.
With this change, renderer/blink can be much simpler and free from this kind of data validation.
BUG=303599, 317355
TEST=media_unittests --gtest_filter=MIDI*, content_unittests --gtest_filter=MIDI*
Review URL: https://codereview.chromium.org/68353002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237558 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/media.gyp')
-rw-r--r-- | media/media.gyp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/media/media.gyp b/media/media.gyp index e2223c1..daff23d 100644 --- a/media/media.gyp +++ b/media/media.gyp @@ -400,6 +400,10 @@ 'midi/midi_manager.h', 'midi/midi_manager_mac.cc', 'midi/midi_manager_mac.h', + 'midi/midi_message_queue.cc', + 'midi/midi_message_queue.h', + 'midi/midi_message_util.cc', + 'midi/midi_message_util.h', 'midi/midi_port_info.cc', 'midi/midi_port_info.h', 'video/capture/android/video_capture_device_android.cc', @@ -978,6 +982,8 @@ 'filters/video_decoder_selector_unittest.cc', 'filters/video_frame_stream_unittest.cc', 'filters/video_renderer_impl_unittest.cc', + 'midi/midi_message_queue_unittest.cc', + 'midi/midi_message_util_unittest.cc', 'video/capture/video_capture_device_unittest.cc', 'webm/cluster_builder.cc', 'webm/cluster_builder.h', |