From 708b853aaa0ba185ec2a8658c2b5b393a605da03 Mon Sep 17 00:00:00 2001 From: Ralph Giles Date: Tue, 9 May 2017 12:03:07 -0700 Subject: [PATCH] Bug 1363500 - Remove TestMP4Reader. r=jya The MP4Reader class was removed in bug 1163486, replaced by MediaFormatReader combined with MP4Demuxer. Bug 1175752 disabled the corresponding gtest, but as the underlying object is gone, the test should be removed instead. MozReview-Commit-ID: 7mU4Q98LtKA --HG-- extra : rebase_source : 10b20e749321a50bac708c493badbdf32b41f859 --- dom/media/gtest/TestMP4Reader.cpp | 217 --------------------------- dom/media/gtest/mediasource_test.mp4 | Bin 209832 -> 0 bytes dom/media/gtest/moz.build | 2 - 3 files changed, 219 deletions(-) delete mode 100644 dom/media/gtest/TestMP4Reader.cpp delete mode 100644 dom/media/gtest/mediasource_test.mp4 diff --git a/dom/media/gtest/TestMP4Reader.cpp b/dom/media/gtest/TestMP4Reader.cpp deleted file mode 100644 index 2cf72681585c..000000000000 --- a/dom/media/gtest/TestMP4Reader.cpp +++ /dev/null @@ -1,217 +0,0 @@ -/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "gtest/gtest.h" -#include "MP4Reader.h" -#include "MP4Decoder.h" -#include "mozilla/SharedThreadPool.h" -#include "MockMediaResource.h" -#include "MockMediaDecoderOwner.h" -#include "mozilla/Preferences.h" -#include "TimeUnits.h" - -using namespace mozilla; -using namespace mozilla::dom; - -class TestBinding -{ -public: - NS_INLINE_DECL_THREADSAFE_REFCOUNTING(TestBinding); - - RefPtr decoder; - RefPtr resource; - RefPtr reader; - - explicit TestBinding(const char* aFileName = "gizmo.mp4") - : decoder(new MP4Decoder()) - , resource(new MockMediaResource(aFileName)) - , reader(new MP4Reader(decoder)) - { - EXPECT_EQ(NS_OK, Preferences::SetBool( - "media.use-blank-decoder", true)); - - EXPECT_EQ(NS_OK, resource->Open(nullptr)); - decoder->SetResource(resource); - - reader->Init(nullptr); - // This needs to be done before invoking GetBuffered. This is normally - // done by MediaDecoderStateMachine. - reader->DispatchSetStartTime(0); - } - - void Init() { - nsCOMPtr thread; - nsCOMPtr r = NewRunnableMethod(this, &TestBinding::ReadMetadata); - nsresult rv = NS_NewNamedThread("ReadMetadata", getter_AddRefs(thread), r); - EXPECT_EQ(NS_OK, rv); - thread->Shutdown(); - } - -private: - virtual ~TestBinding() - { - { - RefPtr queue = reader->OwnerThread(); - nsCOMPtr task = NewRunnableMethod(reader, &MP4Reader::Shutdown); - // Hackily bypass the tail dispatcher so that we can AwaitShutdownAndIdle. - // In production code we'd use BeginShutdown + promises. - queue->Dispatch(task.forget(), AbstractThread::AssertDispatchSuccess, - AbstractThread::TailDispatch); - queue->AwaitShutdownAndIdle(); - } - decoder = nullptr; - resource = nullptr; - reader = nullptr; - SharedThreadPool::SpinUntilEmpty(); - } - - void ReadMetadata() - { - MediaInfo info; - MetadataTags* tags; - EXPECT_EQ(NS_OK, reader->ReadMetadata(&info, &tags)); - } -}; - -TEST(MP4Reader, BufferedRange) -{ - RefPtr b = new TestBinding(); - b->Init(); - - // Video 3-4 sec, audio 2.986666-4.010666 sec - b->resource->MockAddBufferedRange(248400, 327455); - - media::TimeIntervals ranges = b->reader->GetBuffered(); - EXPECT_EQ(1U, ranges.Length()); - EXPECT_NEAR(270000 / 90000.0, ranges.Start(0).ToSeconds(), 0.000001); - EXPECT_NEAR(360000 / 90000.0, ranges.End(0).ToSeconds(), 0.000001); -} - -TEST(MP4Reader, BufferedRangeMissingLastByte) -{ - RefPtr b = new TestBinding(); - b->Init(); - - // Dropping the last byte of the video - b->resource->MockClearBufferedRanges(); - b->resource->MockAddBufferedRange(248400, 324912); - b->resource->MockAddBufferedRange(324913, 327455); - - media::TimeIntervals ranges = b->reader->GetBuffered(); - EXPECT_EQ(1U, ranges.Length()); - EXPECT_NEAR(270000.0 / 90000.0, ranges.Start(0).ToSeconds(), 0.000001); - EXPECT_NEAR(357000 / 90000.0, ranges.End(0).ToSeconds(), 0.000001); -} - -TEST(MP4Reader, BufferedRangeSyncFrame) -{ - RefPtr b = new TestBinding(); - b->Init(); - - // Check that missing the first byte at 2 seconds skips right through to 3 - // seconds because of a missing sync frame - b->resource->MockClearBufferedRanges(); - b->resource->MockAddBufferedRange(146336, 327455); - - media::TimeIntervals ranges = b->reader->GetBuffered(); - EXPECT_EQ(1U, ranges.Length()); - EXPECT_NEAR(270000.0 / 90000.0, ranges.Start(0).ToSeconds(), 0.000001); - EXPECT_NEAR(360000 / 90000.0, ranges.End(0).ToSeconds(), 0.000001); -} - -TEST(MP4Reader, CompositionOrder) -{ - RefPtr b = new TestBinding("mediasource_test.mp4"); - b->Init(); - - // The first 5 video samples of this file are: - // Video timescale=2500 - // Frame Start Size Time Duration Sync - // 1 48 5455 166 83 Yes - // 2 5503 145 249 83 - // 3 6228 575 581 83 - // 4 7383 235 415 83 - // 5 8779 183 332 83 - // 6 9543 191 498 83 - // - // Audio timescale=44100 - // 1 5648 580 0 1024 Yes - // 2 6803 580 1024 1058 Yes - // 3 7618 581 2082 1014 Yes - // 4 8199 580 3096 1015 Yes - // 5 8962 581 4111 1014 Yes - // 6 9734 580 5125 1014 Yes - // 7 10314 581 6139 1059 Yes - // 8 11207 580 7198 1014 Yes - // 9 12035 581 8212 1014 Yes - // 10 12616 580 9226 1015 Yes - // 11 13220 581 10241 1014 Yes - - b->resource->MockClearBufferedRanges(); - // First two frames in decoding + first audio frame - b->resource->MockAddBufferedRange(48, 5503); // Video 1 - b->resource->MockAddBufferedRange(5503, 5648); // Video 2 - b->resource->MockAddBufferedRange(6228, 6803); // Video 3 - - // Audio - 5 frames; 0 - 139206 us - b->resource->MockAddBufferedRange(5648, 6228); - b->resource->MockAddBufferedRange(6803, 7383); - b->resource->MockAddBufferedRange(7618, 8199); - b->resource->MockAddBufferedRange(8199, 8779); - b->resource->MockAddBufferedRange(8962, 9563); - b->resource->MockAddBufferedRange(9734, 10314); - b->resource->MockAddBufferedRange(10314, 10895); - b->resource->MockAddBufferedRange(11207, 11787); - b->resource->MockAddBufferedRange(12035, 12616); - b->resource->MockAddBufferedRange(12616, 13196); - b->resource->MockAddBufferedRange(13220, 13901); - - media::TimeIntervals ranges = b->reader->GetBuffered(); - EXPECT_EQ(2U, ranges.Length()); - - EXPECT_NEAR(166.0 / 2500.0, ranges.Start(0).ToSeconds(), 0.000001); - EXPECT_NEAR(332.0 / 2500.0, ranges.End(0).ToSeconds(), 0.000001); - - EXPECT_NEAR(581.0 / 2500.0, ranges.Start(1).ToSeconds(), 0.000001); - EXPECT_NEAR(11255.0 / 44100.0, ranges.End(1).ToSeconds(), 0.000001); -} - -TEST(MP4Reader, Normalised) -{ - RefPtr b = new TestBinding("mediasource_test.mp4"); - b->Init(); - - // The first 5 video samples of this file are: - // Video timescale=2500 - // Frame Start Size Time Duration Sync - // 1 48 5455 166 83 Yes - // 2 5503 145 249 83 - // 3 6228 575 581 83 - // 4 7383 235 415 83 - // 5 8779 183 332 83 - // 6 9543 191 498 83 - // - // Audio timescale=44100 - // 1 5648 580 0 1024 Yes - // 2 6803 580 1024 1058 Yes - // 3 7618 581 2082 1014 Yes - // 4 8199 580 3096 1015 Yes - // 5 8962 581 4111 1014 Yes - // 6 9734 580 5125 1014 Yes - // 7 10314 581 6139 1059 Yes - // 8 11207 580 7198 1014 Yes - // 9 12035 581 8212 1014 Yes - // 10 12616 580 9226 1015 Yes - // 11 13220 581 10241 1014 Yes - - b->resource->MockClearBufferedRanges(); - b->resource->MockAddBufferedRange(48, 13901); - - media::TimeIntervals ranges = b->reader->GetBuffered(); - EXPECT_EQ(1U, ranges.Length()); - - EXPECT_NEAR(166.0 / 2500.0, ranges.Start(0).ToSeconds(), 0.000001); - EXPECT_NEAR(11255.0 / 44100.0, ranges.End(0).ToSeconds(), 0.000001); -} diff --git a/dom/media/gtest/mediasource_test.mp4 b/dom/media/gtest/mediasource_test.mp4 deleted file mode 100644 index 63707a9146b9b07510f332cf0bb5adf8b9c502c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209832 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
  • >n6sORxL8>!7K(X}M`#0+lO0V57UgyxQNwqd%B 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 Rj4|GNbBw`1-WU;W`W09pOu_&F diff --git a/dom/media/gtest/moz.build b/dom/media/gtest/moz.build index bb392cb7b8f5..c66ac4a9437f 100644 --- a/dom/media/gtest/moz.build +++ b/dom/media/gtest/moz.build @@ -22,7 +22,6 @@ UNIFIED_SOURCES += [ 'TestMozPromise.cpp', 'TestMP3Demuxer.cpp', 'TestMP4Demuxer.cpp', - # 'TestMP4Reader.cpp', disabled so we can turn check tests back on (bug 1175752) 'TestRust.cpp', 'TestTrackEncoder.cpp', 'TestVideoSegment.cpp', @@ -43,7 +42,6 @@ TEST_HARNESS_FILES.gtest += [ '../test/vp9cake.webm', 'dash_dashinit.mp4', 'id3v2header.mp3', - 'mediasource_test.mp4', 'negative_duration.mp4', 'noise.mp3', 'noise_vbr.mp3',