- if (enable) {
- if (is_audio) {
- if (!audio_event_subscriber_.get()) {
- audio_event_subscriber_.reset(new media::cast::EncodingEventSubscriber(
- media::cast::AUDIO_EVENT, kMaxAudioEventEntries));
- cast_environment_->Logging()->AddRawEventSubscriber(
- audio_event_subscriber_.get());
- }
- if (!audio_stats_subscriber_.get()) {
- audio_stats_subscriber_.reset(
- new media::cast::StatsEventSubscriber(media::cast::AUDIO_EVENT));
- cast_environment_->Logging()->AddRawEventSubscriber(
- audio_stats_subscriber_.get());
- }
- } else {
- if (!video_event_subscriber_.get()) {
- video_event_subscriber_.reset(new media::cast::EncodingEventSubscriber(
- media::cast::VIDEO_EVENT, kMaxVideoEventEntries));
- cast_environment_->Logging()->AddRawEventSubscriber(
- video_event_subscriber_.get());
- }
- if (!video_stats_subscriber_.get()) {
- video_stats_subscriber_.reset(
- new media::cast::StatsEventSubscriber(media::cast::VIDEO_EVENT));
- cast_environment_->Logging()->AddRawEventSubscriber(
- video_stats_subscriber_.get());
- }
- }
- } else {
- if (is_audio) {
- if (audio_event_subscriber_.get()) {
- cast_environment_->Logging()->RemoveRawEventSubscriber(
- audio_event_subscriber_.get());
- audio_event_subscriber_.reset();
- }
- if (audio_stats_subscriber_.get()) {
- cast_environment_->Logging()->RemoveRawEventSubscriber(
- audio_stats_subscriber_.get());
- audio_stats_subscriber_.reset();
- }
- } else {
- if (video_event_subscriber_.get()) {
- cast_environment_->Logging()->RemoveRawEventSubscriber(
- video_event_subscriber_.get());
- video_event_subscriber_.reset();
- }
- if (video_stats_subscriber_.get()) {
- cast_environment_->Logging()->RemoveRawEventSubscriber(
- video_stats_subscriber_.get());
- video_stats_subscriber_.reset();
- }
- }
- }