summaryrefslogtreecommitdiffstats
path: root/media/media.gyp
diff options
context:
space:
mode:
authoryukawa@chromium.org <yukawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-27 12:09:35 +0000
committeryukawa@chromium.org <yukawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-27 12:09:35 +0000
commitb2f8b5916131272bb121f1e224a401eaa7edc2ad (patch)
tree6fcd62dcbc2ad4f91c49117455b42a2bc52f9b3e /media/media.gyp
parent0e2e57b6a0ac69b7b3f4fcde50c28b939bb843ca (diff)
downloadchromium_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.gyp6
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',