Prevent channels being set on stopped transceiver.

Fixing bug that allows a channel to be set on a stopped transceiver.
This CL contains the following refactoring:
1. Extracted ChannelInterface from BaseChannel
2. Unified SetXxxMediaChannel (Voice, Video) into SetMediaChannel

Bug: webrtc:9932
Change-Id: I2fbf00c823b7848ad4f2acb6e80b1b58ac45ee38
Reviewed-on: https://webrtc-review.googlesource.com/c/110564
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25641}
diff --git a/media/base/mediachannel.h b/media/base/mediachannel.h
index 69c7b00..108ae26 100644
--- a/media/base/mediachannel.h
+++ b/media/base/mediachannel.h
@@ -184,6 +184,8 @@
   MediaChannel();
   ~MediaChannel() override;
 
+  virtual cricket::MediaType media_type() const = 0;
+
   // Sets the abstract interface class for sending RTP/RTCP data and
   // interface for media transport (experimental). If media transport is
   // provided, it should be used instead of RTP/RTCP.
@@ -700,6 +702,8 @@
   explicit VoiceMediaChannel(const MediaConfig& config)
       : MediaChannel(config) {}
   ~VoiceMediaChannel() override {}
+
+  cricket::MediaType media_type() const override;
   virtual bool SetSendParameters(const AudioSendParameters& params) = 0;
   virtual bool SetRecvParameters(const AudioRecvParameters& params) = 0;
   virtual webrtc::RtpParameters GetRtpSendParameters(uint32_t ssrc) const = 0;
@@ -772,6 +776,7 @@
       : MediaChannel(config) {}
   ~VideoMediaChannel() override {}
 
+  cricket::MediaType media_type() const override;
   virtual bool SetSendParameters(const VideoSendParameters& params) = 0;
   virtual bool SetRecvParameters(const VideoRecvParameters& params) = 0;
   virtual webrtc::RtpParameters GetRtpSendParameters(uint32_t ssrc) const = 0;
@@ -883,6 +888,7 @@
   explicit DataMediaChannel(const MediaConfig& config);
   ~DataMediaChannel() override;
 
+  cricket::MediaType media_type() const override;
   virtual bool SetSendParameters(const DataSendParameters& params) = 0;
   virtual bool SetRecvParameters(const DataRecvParameters& params) = 0;