Bug 1353607. P8 - use TimeUnit in DispatchSetFragmentEndTime(). draft
authorJW Wang <jwwang@mozilla.com>
Tue, 28 Mar 2017 18:01:23 +0800
changeset 557655 407e05273837ed6f4c3c9a93a2501a004c0239cf
parent 557654 7d6a035331a9913388f1c903805eeec33ba0ac94
child 557656 83f54b2788a4a38a6fe8be6910bce43961ed6cc6
push id52775
push userjwwang@mozilla.com
push dateFri, 07 Apr 2017 03:28:07 +0000
bugs1353607
milestone55.0a1
Bug 1353607. P8 - use TimeUnit in DispatchSetFragmentEndTime(). MozReview-Commit-ID: IBLT0j7yMLK
dom/media/MediaDecoder.cpp
dom/media/MediaDecoderStateMachine.h
--- a/dom/media/MediaDecoder.cpp
+++ b/dom/media/MediaDecoder.cpp
@@ -1427,17 +1427,17 @@ MediaDecoder::GetSeekable()
 }
 
 void
 MediaDecoder::SetFragmentEndTime(double aTime)
 {
   MOZ_ASSERT(NS_IsMainThread());
   if (mDecoderStateMachine) {
     mDecoderStateMachine->DispatchSetFragmentEndTime(
-      static_cast<int64_t>(aTime * USECS_PER_S));
+      media::TimeUnit::FromSeconds(aTime));
   }
 }
 
 void
 MediaDecoder::Suspend()
 {
   MOZ_ASSERT(NS_IsMainThread());
   if (mResource) {
--- a/dom/media/MediaDecoderStateMachine.h
+++ b/dom/media/MediaDecoderStateMachine.h
@@ -184,25 +184,24 @@ public:
   void DispatchSetPlaybackRate(double aPlaybackRate)
   {
     OwnerThread()->DispatchStateChange(NewRunnableMethod<double>(
       this, &MediaDecoderStateMachine::SetPlaybackRate, aPlaybackRate));
   }
 
   RefPtr<ShutdownPromise> BeginShutdown();
 
-  // Set the media fragment end time. aEndTime is in microseconds.
-  void DispatchSetFragmentEndTime(int64_t aEndTime)
+  // Set the media fragment end time.
+  void DispatchSetFragmentEndTime(const media::TimeUnit& aEndTime)
   {
     RefPtr<MediaDecoderStateMachine> self = this;
     nsCOMPtr<nsIRunnable> r = NS_NewRunnableFunction([self, aEndTime] () {
       // A negative number means we don't have a fragment end time at all.
-      self->mFragmentEndTime = aEndTime >= 0
-        ? media::TimeUnit::FromMicroseconds(aEndTime)
-        : media::TimeUnit::Invalid();
+      self->mFragmentEndTime = aEndTime >= media::TimeUnit::Zero()
+        ? aEndTime : media::TimeUnit::Invalid();
     });
     OwnerThread()->Dispatch(r.forget());
   }
 
   // Drop reference to mResource. Only called during shutdown dance.
   void BreakCycles() {
     MOZ_ASSERT(NS_IsMainThread());
     mResource = nullptr;