Title: [285520] trunk/Source
Revision
285520
Author
[email protected]
Date
2021-11-09 11:50:56 -0800 (Tue, 09 Nov 2021)

Log Message

Keep track of captured data time in SpeechRecognizer
https://bugs.webkit.org/show_bug.cgi?id=232867

Reviewed by Youenn Fablet.

Source/WebCore:

The time parameter passed to SpeechRecognizer::dataCaptured is not started from zero.

Manually tested.

* Modules/speech/SpeechRecognizer.cpp:
(WebCore::SpeechRecognizer::SpeechRecognizer):
* Modules/speech/SpeechRecognizer.h:
* Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
(WebCore::SpeechRecognizer::dataCaptured):

Source/WebKit:

Removed a redundant call.

* WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
(WebKit::RemoteCaptureSampleManager::RemoteAudio::setStorage):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (285519 => 285520)


--- trunk/Source/WebCore/ChangeLog	2021-11-09 19:42:11 UTC (rev 285519)
+++ trunk/Source/WebCore/ChangeLog	2021-11-09 19:50:56 UTC (rev 285520)
@@ -1,3 +1,20 @@
+2021-11-09  Sihui Liu  <[email protected]>
+
+        Keep track of captured data time in SpeechRecognizer
+        https://bugs.webkit.org/show_bug.cgi?id=232867
+
+        Reviewed by Youenn Fablet.
+
+        The time parameter passed to SpeechRecognizer::dataCaptured is not started from zero. 
+
+        Manually tested.
+
+        * Modules/speech/SpeechRecognizer.cpp:
+        (WebCore::SpeechRecognizer::SpeechRecognizer):
+        * Modules/speech/SpeechRecognizer.h:
+        * Modules/speech/cocoa/SpeechRecognizerCocoa.mm:
+        (WebCore::SpeechRecognizer::dataCaptured):
+
 2021-11-09  Commit Queue  <[email protected]>
 
         Unreviewed, reverting r285318.

Modified: trunk/Source/WebCore/Modules/speech/SpeechRecognizer.cpp (285519 => 285520)


--- trunk/Source/WebCore/Modules/speech/SpeechRecognizer.cpp	2021-11-09 19:42:11 UTC (rev 285519)
+++ trunk/Source/WebCore/Modules/speech/SpeechRecognizer.cpp	2021-11-09 19:50:56 UTC (rev 285520)
@@ -32,6 +32,7 @@
 
 #if PLATFORM(COCOA)
 #include "MediaUtilities.h"
+#include <pal/cf/CoreMediaSoftLink.h>
 #endif
 
 namespace WebCore {
@@ -39,6 +40,9 @@
 SpeechRecognizer::SpeechRecognizer(DelegateCallback&& delegateCallback, UniqueRef<SpeechRecognitionRequest>&& request)
     : m_delegateCallback(WTFMove(delegateCallback))
     , m_request(WTFMove(request))
+#if HAVE(SPEECHRECOGNIZER)
+    , m_currentAudioSampleTime(PAL::kCMTimeZero)
+#endif
 {
 }
 

Modified: trunk/Source/WebCore/Modules/speech/SpeechRecognizer.h (285519 => 285520)


--- trunk/Source/WebCore/Modules/speech/SpeechRecognizer.h	2021-11-09 19:42:11 UTC (rev 285519)
+++ trunk/Source/WebCore/Modules/speech/SpeechRecognizer.h	2021-11-09 19:50:56 UTC (rev 285520)
@@ -31,6 +31,7 @@
 #include <wtf/UniqueRef.h>
 
 #if HAVE(SPEECHRECOGNIZER)
+#include <CoreMedia/CMTime.h>
 #include <wtf/RetainPtr.h>
 OBJC_CLASS WebSpeechRecognizerTask;
 #endif
@@ -82,6 +83,7 @@
 
 #if HAVE(SPEECHRECOGNIZER)
     RetainPtr<WebSpeechRecognizerTask> m_task;
+    CMTime m_currentAudioSampleTime;
 #endif
 };
 

Modified: trunk/Source/WebCore/Modules/speech/cocoa/SpeechRecognizerCocoa.mm (285519 => 285520)


--- trunk/Source/WebCore/Modules/speech/cocoa/SpeechRecognizerCocoa.mm	2021-11-09 19:42:11 UTC (rev 285519)
+++ trunk/Source/WebCore/Modules/speech/cocoa/SpeechRecognizerCocoa.mm	2021-11-09 19:50:56 UTC (rev 285520)
@@ -36,10 +36,11 @@
 
 namespace WebCore {
 
-void SpeechRecognizer::dataCaptured(const MediaTime& time, const PlatformAudioData& data, const AudioStreamDescription& description, size_t sampleCount)
+void SpeechRecognizer::dataCaptured(const MediaTime&, const PlatformAudioData& data, const AudioStreamDescription& description, size_t sampleCount)
 {
-    auto buffer = createAudioSampleBuffer(data, description, PAL::toCMTime(time), sampleCount);
+    auto buffer = createAudioSampleBuffer(data, description, m_currentAudioSampleTime, sampleCount);
     [m_task audioSamplesAvailable:buffer.get()];
+    m_currentAudioSampleTime = CMTimeAdd(m_currentAudioSampleTime, PAL::toCMTime(MediaTime(sampleCount, description.sampleRate())));
 }
 
 bool SpeechRecognizer::startRecognition(bool mockSpeechRecognitionEnabled, SpeechRecognitionConnectionClientIdentifier identifier, const String& localeIdentifier, bool continuous, bool interimResults, uint64_t alternatives)

Modified: trunk/Source/WebKit/ChangeLog (285519 => 285520)


--- trunk/Source/WebKit/ChangeLog	2021-11-09 19:42:11 UTC (rev 285519)
+++ trunk/Source/WebKit/ChangeLog	2021-11-09 19:50:56 UTC (rev 285520)
@@ -1,3 +1,15 @@
+2021-11-09  Sihui Liu  <[email protected]>
+
+        Keep track of captured data time in SpeechRecognizer
+        https://bugs.webkit.org/show_bug.cgi?id=232867
+
+        Reviewed by Youenn Fablet.
+
+        Removed a redundant call.
+
+        * WebProcess/cocoa/RemoteCaptureSampleManager.cpp:
+        (WebKit::RemoteCaptureSampleManager::RemoteAudio::setStorage):
+
 2021-11-09  Devin Rousso  <[email protected]>
 
         Unreviewed internal build fix after r285424

Modified: trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp (285519 => 285520)


--- trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp	2021-11-09 19:42:11 UTC (rev 285519)
+++ trunk/Source/WebKit/WebProcess/cocoa/RemoteCaptureSampleManager.cpp	2021-11-09 19:50:56 UTC (rev 285520)
@@ -222,8 +222,7 @@
     m_frameChunkSize = frameChunkSize;
 
     m_ringBuffer = CARingBuffer::adoptStorage(makeUniqueRef<ReadOnlySharedRingBufferStorage>(handle), description, numberOfFrames).moveToUniquePtr();
-    m_buffer = makeUnique<WebAudioBufferList>(description, numberOfFrames);
-    m_buffer->setSampleCount(m_frameChunkSize);
+    m_buffer = makeUnique<WebAudioBufferList>(description, m_frameChunkSize);
 
     startThread();
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to