Revert "Cleanup MultiStreamTester"

This reverts commit d6b9b0a1f4132474c737b5e673e380c3d8e12e2c.

Reason for revert: breaks internal ios tests

Original change's description:
> Cleanup MultiStreamTester
> 
> Instead of taking TaskQueue from outside create one internally.
> Detach MultiStreamTests from test::CallTest since that inheritance
> only used for constants and (now unneeded) task_queue object.
> 
> Bug: webrtc:10933
> Change-Id: I7e30ddcf6faaa134ebcd9d53b578b40fdedf2a3c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159034
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#29744}

TBR=danilchap@webrtc.org,ilnik@webrtc.org

Change-Id: I0fe3d265fe12795ec96b420c21bdc934743c9c2f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10933
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/159222
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#29745}
diff --git a/video/end_to_end_tests/multi_stream_tester.cc b/video/end_to_end_tests/multi_stream_tester.cc
index 0f94e22..104b9d4 100644
--- a/video/end_to_end_tests/multi_stream_tester.cc
+++ b/video/end_to_end_tests/multi_stream_tester.cc
@@ -31,20 +31,23 @@
 
 namespace webrtc {
 
-MultiStreamTester::MultiStreamTester() {
+MultiStreamTester::MultiStreamTester(TaskQueueBase* task_queue)
+    : task_queue_(task_queue) {
   // TODO(sprang): Cleanup when msvc supports explicit initializers for array.
   codec_settings[0] = {1, 640, 480};
   codec_settings[1] = {2, 320, 240};
   codec_settings[2] = {3, 240, 160};
+  class multi_stream_test {
+   public:
+    multi_stream_test();
+  };
 }
 
-MultiStreamTester::~MultiStreamTester() = default;
+MultiStreamTester::~MultiStreamTester() {}
 
 void MultiStreamTester::RunTest() {
   webrtc::RtcEventLogNull event_log;
   auto task_queue_factory = CreateDefaultTaskQueueFactory();
-  auto task_queue = task_queue_factory->CreateTaskQueue(
-      "TaskQueue", TaskQueueFactory::Priority::NORMAL);
   Call::Config config(&event_log);
   config.task_queue_factory = task_queue_factory.get();
   std::unique_ptr<Call> sender_call;
@@ -61,12 +64,12 @@
       CreateBuiltinVideoBitrateAllocatorFactory();
   InternalDecoderFactory decoder_factory;
 
-  SendTask(RTC_FROM_HERE, task_queue.get(), [&]() {
+  SendTask(RTC_FROM_HERE, task_queue_, [&]() {
     sender_call = absl::WrapUnique(Call::Create(config));
     receiver_call = absl::WrapUnique(Call::Create(config));
-    sender_transport = CreateSendTransport(task_queue.get(), sender_call.get());
+    sender_transport = CreateSendTransport(task_queue_, sender_call.get());
     receiver_transport =
-        CreateReceiveTransport(task_queue.get(), receiver_call.get());
+        CreateReceiveTransport(task_queue_, receiver_call.get());
 
     sender_transport->SetReceiver(receiver_call->Receiver());
     receiver_transport->SetReceiver(sender_call->Receiver());
@@ -122,7 +125,7 @@
 
   Wait();
 
-  SendTask(RTC_FROM_HERE, task_queue.get(), [&]() {
+  SendTask(RTC_FROM_HERE, task_queue_, [&]() {
     for (size_t i = 0; i < kNumStreams; ++i) {
       frame_generators[i]->Stop();
       sender_call->DestroyVideoSendStream(send_streams[i]);
diff --git a/video/end_to_end_tests/multi_stream_tester.h b/video/end_to_end_tests/multi_stream_tester.h
index 1753741..845442e 100644
--- a/video/end_to_end_tests/multi_stream_tester.h
+++ b/video/end_to_end_tests/multi_stream_tester.h
@@ -35,7 +35,7 @@
     int height;
   } codec_settings[kNumStreams];
 
-  MultiStreamTester();
+  explicit MultiStreamTester(TaskQueueBase* task_queue);
 
   virtual ~MultiStreamTester();
 
@@ -58,6 +58,8 @@
   virtual std::unique_ptr<test::DirectTransport> CreateReceiveTransport(
       TaskQueueBase* task_queue,
       Call* receiver_call);
+
+  TaskQueueBase* const task_queue_;
 };
 }  // namespace webrtc
 #endif  // VIDEO_END_TO_END_TESTS_MULTI_STREAM_TESTER_H_
diff --git a/video/end_to_end_tests/multi_stream_tests.cc b/video/end_to_end_tests/multi_stream_tests.cc
index e20d70f..0eed98d 100644
--- a/video/end_to_end_tests/multi_stream_tests.cc
+++ b/video/end_to_end_tests/multi_stream_tests.cc
@@ -21,14 +21,20 @@
 #include "call/video_receive_stream.h"
 #include "call/video_send_stream.h"
 #include "rtc_base/event.h"
+#include "test/call_test.h"
 #include "test/frame_generator_capturer.h"
 #include "test/gtest.h"
 #include "video/end_to_end_tests/multi_stream_tester.h"
 
 namespace webrtc {
+class MultiStreamEndToEndTest : public test::CallTest {
+ public:
+  MultiStreamEndToEndTest() = default;
+};
+
 // Each renderer verifies that it receives the expected resolution, and as soon
 // as every renderer has received a frame, the test finishes.
-TEST(MultiStreamEndToEndTest, SendsAndReceivesMultipleStreams) {
+TEST_F(MultiStreamEndToEndTest, SendsAndReceivesMultipleStreams) {
   class VideoOutputObserver : public rtc::VideoSinkInterface<VideoFrame> {
    public:
     VideoOutputObserver(const MultiStreamTester::CodecSettings& settings,
@@ -45,7 +51,7 @@
 
     uint32_t Ssrc() { return ssrc_; }
 
-    bool Wait() { return done_.Wait(30 * 1000); }
+    bool Wait() { return done_.Wait(kDefaultTimeoutMs); }
 
    private:
     const MultiStreamTester::CodecSettings& settings_;
@@ -56,8 +62,9 @@
 
   class Tester : public MultiStreamTester {
    public:
-    Tester() = default;
-    ~Tester() override = default;
+    explicit Tester(TaskQueueBase* task_queue)
+        : MultiStreamTester(task_queue) {}
+    virtual ~Tester() {}
 
    protected:
     void Wait() override {
@@ -72,9 +79,9 @@
         VideoSendStream::Config* send_config,
         VideoEncoderConfig* encoder_config,
         test::FrameGeneratorCapturer** frame_generator) override {
-      observers_[stream_index] = std::make_unique<VideoOutputObserver>(
+      observers_[stream_index].reset(new VideoOutputObserver(
           codec_settings[stream_index], send_config->rtp.ssrcs.front(),
-          frame_generator);
+          frame_generator));
     }
 
     void UpdateReceiveConfig(
@@ -85,7 +92,7 @@
 
    private:
     std::unique_ptr<VideoOutputObserver> observers_[kNumStreams];
-  } tester;
+  } tester(task_queue());
 
   tester.RunTest();
 }
diff --git a/video/end_to_end_tests/transport_feedback_tests.cc b/video/end_to_end_tests/transport_feedback_tests.cc
index 55c8bc4..0f7b737 100644
--- a/video/end_to_end_tests/transport_feedback_tests.cc
+++ b/video/end_to_end_tests/transport_feedback_tests.cc
@@ -29,13 +29,15 @@
 };
 }  // namespace
 
-TEST(TransportFeedbackMultiStreamTest, AssignsTransportSequenceNumbers) {
-  static constexpr int kSendRtxPayloadType = 98;
-  static constexpr int kDefaultTimeoutMs = 30 * 1000;
-  static constexpr int kNackRtpHistoryMs = 1000;
-  static constexpr uint32_t kSendRtxSsrcs[MultiStreamTester::kNumStreams] = {
-      0xBADCAFD, 0xBADCAFE, 0xBADCAFF};
+class TransportFeedbackEndToEndTest : public test::CallTest {
+ public:
+  TransportFeedbackEndToEndTest() {
+    RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
+                                      kTransportSequenceNumberExtensionId));
+  }
+};
 
+TEST_F(TransportFeedbackEndToEndTest, AssignsTransportSequenceNumbers) {
   class RtpExtensionHeaderObserver : public test::DirectTransport {
    public:
     RtpExtensionHeaderObserver(
@@ -54,6 +56,7 @@
           parser_(RtpHeaderParser::CreateForTest()),
           first_media_ssrc_(first_media_ssrc),
           rtx_to_media_ssrcs_(ssrc_map),
+          padding_observed_(false),
           rtx_padding_observed_(false),
           retransmit_observed_(false),
           started_(false) {
@@ -146,7 +149,6 @@
       return done_.Wait(kDefaultTimeoutMs);
     }
 
-   private:
     rtc::CriticalSection lock_;
     rtc::Event done_;
     std::unique_ptr<RtpHeaderParser> parser_;
@@ -156,6 +158,7 @@
     std::map<uint32_t, std::set<uint16_t>> dropped_seq_;
     const uint32_t& first_media_ssrc_;
     const std::map<uint32_t, uint32_t>& rtx_to_media_ssrcs_;
+    bool padding_observed_;
     bool rtx_padding_observed_;
     bool retransmit_observed_;
     bool started_;
@@ -163,9 +166,11 @@
 
   class TransportSequenceNumberTester : public MultiStreamTester {
    public:
-    TransportSequenceNumberTester()
-        : first_media_ssrc_(0), observer_(nullptr) {}
-    ~TransportSequenceNumberTester() override = default;
+    explicit TransportSequenceNumberTester(TaskQueueBase* task_queue)
+        : MultiStreamTester(task_queue),
+          first_media_ssrc_(0),
+          observer_(nullptr) {}
+    virtual ~TransportSequenceNumberTester() {}
 
    protected:
     void Wait() override {
@@ -233,19 +238,11 @@
     uint32_t first_media_ssrc_;
     std::map<uint32_t, uint32_t> rtx_to_media_ssrcs_;
     RtpExtensionHeaderObserver* observer_;
-  } tester;
+  } tester(task_queue());
 
   tester.RunTest();
 }
 
-class TransportFeedbackEndToEndTest : public test::CallTest {
- public:
-  TransportFeedbackEndToEndTest() {
-    RegisterRtpExtension(RtpExtension(RtpExtension::kTransportSequenceNumberUri,
-                                      kTransportSequenceNumberExtensionId));
-  }
-};
-
 class TransportFeedbackTester : public test::EndToEndTest {
  public:
   TransportFeedbackTester(bool feedback_enabled,