Coverage Report

Created: 2018-09-25 14:53

/work/obj-fuzz/dist/include/MediaEventSource.h
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* vim:set ts=2 sw=2 sts=2 et cindent: */
3
/* This Source Code Form is subject to the terms of the Mozilla Public
4
 * License, v. 2.0. If a copy of the MPL was not distributed with this
5
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6
7
#ifndef MediaEventSource_h_
8
#define MediaEventSource_h_
9
10
#include "mozilla/AbstractThread.h"
11
#include "mozilla/Atomics.h"
12
#include "mozilla/Mutex.h"
13
#include "mozilla/Tuple.h"
14
#include "mozilla/TypeTraits.h"
15
#include "mozilla/Unused.h"
16
17
#include "nsISupportsImpl.h"
18
#include "nsTArray.h"
19
#include "nsThreadUtils.h"
20
21
namespace mozilla {
22
23
/**
24
 * A thread-safe tool to communicate "revocation" across threads. It is used to
25
 * disconnect a listener from the event source to prevent future notifications
26
 * from coming. Revoke() can be called on any thread. However, it is recommended
27
 * to be called on the target thread to avoid race condition.
28
 *
29
 * RevocableToken is not exposed to the client code directly.
30
 * Use MediaEventListener below to do the job.
31
 */
32
class RevocableToken {
33
  NS_INLINE_DECL_THREADSAFE_REFCOUNTING(RevocableToken);
34
35
public:
36
0
  RevocableToken() : mRevoked(false) {}
37
38
  void Revoke() {
39
    mRevoked = true;
40
  }
41
42
0
  bool IsRevoked() const {
43
0
    return mRevoked;
44
0
  }
45
46
protected:
47
  // Virtual destructor is required since we might delete a Listener object
48
  // through its base type pointer.
49
0
  virtual ~RevocableToken() { }
50
51
private:
52
  Atomic<bool> mRevoked;
53
};
54
55
enum class ListenerPolicy : int8_t {
56
  // Allow at most one listener. Move will be used when possible
57
  // to pass the event data to save copy.
58
  Exclusive,
59
  // Allow multiple listeners. Event data will always be copied when passed
60
  // to the listeners.
61
  NonExclusive
62
};
63
64
namespace detail {
65
66
/**
67
 * Define how an event type is passed internally in MediaEventSource and to the
68
 * listeners. Specialized for the void type to pass a dummy bool instead.
69
 */
70
template <typename T>
71
struct EventTypeTraits {
72
  typedef T ArgType;
73
};
74
75
template <>
76
struct EventTypeTraits<void> {
77
  typedef bool ArgType;
78
};
79
80
/**
81
 * Test if a method function or lambda accepts one or more arguments.
82
 */
83
template <typename T>
84
class TakeArgsHelper {
85
  template <typename C> static FalseType test(void(C::*)(), int);
86
  template <typename C> static FalseType test(void(C::*)() const, int);
87
  template <typename C> static FalseType test(void(C::*)() volatile, int);
88
  template <typename C> static FalseType test(void(C::*)() const volatile, int);
89
  template <typename F> static FalseType test(F&&, decltype(DeclVal<F>()(), 0));
90
  static TrueType test(...);
91
public:
92
  typedef decltype(test(DeclVal<T>(), 0)) Type;
93
};
94
95
template <typename T>
96
struct TakeArgs : public TakeArgsHelper<T>::Type {};
97
98
template <typename T> struct EventTarget;
99
100
template <>
101
struct EventTarget<nsIEventTarget> {
102
  static void
103
0
  Dispatch(nsIEventTarget* aTarget, already_AddRefed<nsIRunnable> aTask) {
104
0
    aTarget->Dispatch(std::move(aTask), NS_DISPATCH_NORMAL);
105
0
  }
106
};
107
108
template <>
109
struct EventTarget<AbstractThread> {
110
  static void
111
0
  Dispatch(AbstractThread* aTarget, already_AddRefed<nsIRunnable> aTask) {
112
0
    Unused << aTarget->Dispatch(std::move(aTask));
113
0
  }
114
};
115
116
/**
117
 * Encapsulate a raw pointer to be captured by a lambda without causing
118
 * static-analysis errors.
119
 */
120
template <typename T>
121
class RawPtr {
122
public:
123
0
  explicit RawPtr(T* aPtr) : mPtr(aPtr) {}
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaMetadataManager>::RawPtr(mozilla::MediaMetadataManager*)
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoder>::RawPtr(mozilla::MediaDecoder*)
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoderOwner>::RawPtr(mozilla::MediaDecoderOwner*)
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoderStateMachine>::RawPtr(mozilla::MediaDecoderStateMachine*)
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaFormatReader>::RawPtr(mozilla::MediaFormatReader*)
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::media::AudioSink>::RawPtr(mozilla::media::AudioSink*)
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::DecodedStream>::RawPtr(mozilla::DecodedStream*)
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::media::VideoSink>::RawPtr(mozilla::media::VideoSink*)
124
0
  T* get() const { return mPtr; }
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaMetadataManager>::get() const
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoder>::get() const
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoderOwner>::get() const
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaDecoderStateMachine>::get() const
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::MediaFormatReader>::get() const
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::media::AudioSink>::get() const
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::DecodedStream>::get() const
Unexecuted instantiation: mozilla::detail::RawPtr<mozilla::media::VideoSink>::get() const
125
private:
126
  T* const mPtr;
127
};
128
129
template <typename... As>
130
class Listener : public RevocableToken
131
{
132
public:
133
  template <typename... Ts>
134
  void Dispatch(Ts&&... aEvents)
135
0
  {
136
0
    if (CanTakeArgs()) {
137
0
      DispatchTask(NewRunnableMethod<typename Decay<Ts>::Type&&...>(
138
0
        "detail::Listener::ApplyWithArgs",
139
0
        this,
140
0
        &Listener::ApplyWithArgs,
141
0
        std::forward<Ts>(aEvents)...));
142
0
    } else {
143
0
      DispatchTask(NewRunnableMethod(
144
0
        "detail::Listener::ApplyWithNoArgs", this, &Listener::ApplyWithNoArgs));
145
0
    }
146
0
  }
Unexecuted instantiation: void mozilla::detail::Listener<bool>::Dispatch<bool>(bool&&)
Unexecuted instantiation: void mozilla::detail::Listener<mozilla::TimedMetadata>::Dispatch<mozilla::TimedMetadata>(mozilla::TimedMetadata&&)
Unexecuted instantiation: void mozilla::detail::Listener<mozilla::MediaPlaybackEvent>::Dispatch<mozilla::MediaPlaybackEvent::EventType&>(mozilla::MediaPlaybackEvent::EventType&)
Unexecuted instantiation: void mozilla::detail::Listener<mozilla::MediaDecoderOwner::NextFrameStatus>::Dispatch<mozilla::MediaDecoderOwner::NextFrameStatus&>(mozilla::MediaDecoderOwner::NextFrameStatus&)
Unexecuted instantiation: void mozilla::detail::Listener<RefPtr<mozilla::AudioData> >::Dispatch<RefPtr<mozilla::AudioData>&>(RefPtr<mozilla::AudioData>&)
Unexecuted instantiation: void mozilla::detail::Listener<RefPtr<mozilla::VideoData> >::Dispatch<RefPtr<mozilla::VideoData>&>(RefPtr<mozilla::VideoData>&)
Unexecuted instantiation: void mozilla::detail::Listener<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::Dispatch<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >&&, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >&&, mozilla::MediaDecoderEventVisibility&&)
Unexecuted instantiation: void mozilla::detail::Listener<mozilla::MediaPlaybackEvent>::Dispatch<mozilla::MediaPlaybackEvent&>(mozilla::MediaPlaybackEvent&)
Unexecuted instantiation: void mozilla::detail::Listener<mozilla::MediaResult>::Dispatch<mozilla::MediaResult const&>(mozilla::MediaResult const&)
Unexecuted instantiation: void mozilla::detail::Listener<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::Dispatch<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility&>(nsAutoPtr<mozilla::MediaInfo>&&, mozilla::MediaDecoderEventVisibility&)
Unexecuted instantiation: void mozilla::detail::Listener<mozilla::DecoderDoctorEvent>::Dispatch<mozilla::DecoderDoctorEvent&>(mozilla::DecoderDoctorEvent&)
Unexecuted instantiation: void mozilla::detail::Listener<nsTArray<unsigned char>, nsTString<char16_t> >::Dispatch<nsTArray<unsigned char>&, nsTString<char16_t>&>(nsTArray<unsigned char>&, nsTString<char16_t>&)
Unexecuted instantiation: void mozilla::detail::Listener<long>::Dispatch<long&>(long&)
Unexecuted instantiation: void mozilla::detail::Listener<bool>::Dispatch<bool&>(bool&)
Unexecuted instantiation: void mozilla::detail::Listener<mozilla::TrackInfo::TrackType>::Dispatch<mozilla::TrackInfo::TrackType const&>(mozilla::TrackInfo::TrackType const&)
147
148
protected:
149
  virtual ~Listener()
150
0
  {
151
0
    MOZ_ASSERT(IsRevoked(), "Must disconnect the listener.");
152
0
  }
Unexecuted instantiation: mozilla::detail::Listener<mozilla::TimedMetadata>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<mozilla::MediaPlaybackEvent>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<mozilla::MediaResult>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<mozilla::DecoderDoctorEvent>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<bool>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<mozilla::MediaDecoderOwner::NextFrameStatus>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<nsTArray<unsigned char>, nsTString<char16_t> >::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<RefPtr<mozilla::AudioData> >::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<RefPtr<mozilla::VideoData> >::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<mozilla::TrackInfo::TrackType>::~Listener()
Unexecuted instantiation: mozilla::detail::Listener<long>::~Listener()
153
154
private:
155
  virtual void DispatchTask(already_AddRefed<nsIRunnable> aTask) = 0;
156
157
  // True if the underlying listener function takes non-zero arguments.
158
  virtual bool CanTakeArgs() const = 0;
159
  // Pass the event data to the underlying listener function. Should be called
160
  // only when CanTakeArgs() returns true.
161
  virtual void ApplyWithArgs(As&&... aEvents) = 0;
162
  // Invoke the underlying listener function. Should be called only when
163
  // CanTakeArgs() returns false.
164
  virtual void ApplyWithNoArgs() = 0;
165
};
166
167
/**
168
 * Store the registered target thread and function so it knows where and to
169
 * whom to send the event data.
170
 */
171
template <typename Target, typename Function, typename... As>
172
class ListenerImpl : public Listener<As...>
173
{
174
  // Strip CV and reference from Function.
175
  using FunctionStorage = typename Decay<Function>::Type;
176
177
public:
178
  template <typename F>
179
  ListenerImpl(Target* aTarget, F&& aFunction)
180
    : mTarget(aTarget)
181
    , mFunction(std::forward<F>(aFunction))
182
0
  {
183
0
  }
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EEC2ISL_EEPS2_OSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EEC2ISL_EEPS2_OSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EEC2ISZ_EEPS2_OSS_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EEC2ISP_EEPS2_OSJ_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EEC2ISL_EEPS2_OSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EEC2ISN_EEPS2_OSI_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EEC2ISL_EEPS2_OSG_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEEC2ISJ_EEPS2_OSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EEC2ISM_EEPS2_OSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EEC2ISV_EEPS2_OSP_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEEC2ISJ_EEPS2_OSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EEC2ISN_EEPS2_OSI_
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::ListenerImpl<mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21&&)
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::ListenerImpl<mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22&&)
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEEC2ISK_EEPS2_OSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EEC2ISP_EEPS2_OSK_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EEC2ISP_EEPS2_OSK_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEEC2ISJ_EEPS2_OSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EEC2ISM_EEPS2_OSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EEC2ISQ_EEPS2_OSL_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEEC2ISK_EEPS2_OSG_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEEC2ISK_EEPS2_OSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EEC2ISM_EEPS2_OSI_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEEC2ISJ_EEPS2_OSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EEC2ISM_EEPS2_OSI_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EEC2ISO_EEPS2_OSK_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEEC2ISK_EEPS2_OSG_
184
185
private:
186
  void DispatchTask(already_AddRefed<nsIRunnable> aTask) override
187
0
  {
188
0
    EventTarget<Target>::Dispatch(mTarget.get(), std::move(aTask));
189
0
  }
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::DispatchTask(already_AddRefed<nsIRunnable>)
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::DispatchTask(already_AddRefed<nsIRunnable>)
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE12DispatchTaskE16already_AddRefedI11nsIRunnableE
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE12DispatchTaskE16already_AddRefedI11nsIRunnableE
190
191
  bool CanTakeArgs() const override
192
0
  {
193
0
    return TakeArgs<FunctionStorage>::value;
194
0
  }
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE11CanTakeArgsEv
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::CanTakeArgs() const
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::CanTakeArgs() const
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE11CanTakeArgsEv
Unexecuted instantiation: _ZNK7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE11CanTakeArgsEv
195
196
  // |F| takes one or more arguments.
197
  template <typename F>
198
  typename EnableIf<TakeArgs<F>::value, void>::Type
199
  ApplyWithArgsImpl(const F& aFunc, As&&... aEvents)
200
0
  {
201
0
    aFunc(std::move(aEvents)...);
202
0
  }
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE17ApplyWithArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_S9_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE17ApplyWithArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_S9_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE17ApplyWithArgsImplISZ_EENSN_IXsr8TakeArgsISS_EE5valueEvE4TypeERKSS_SW_SX_SY_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE17ApplyWithArgsImplISP_EENSE_IXsr8TakeArgsISJ_EE5valueEvE4TypeERKSJ_SN_SO_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE17ApplyWithArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_S9_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE17ApplyWithArgsImplISN_EENSD_IXsr8TakeArgsISI_EE5valueEvE4TypeERKSI_SM_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE17ApplyWithArgsImplISL_EENSB_IXsr8TakeArgsISG_EE5valueEvE4TypeERKSG_SK_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE17ApplyWithArgsImplISM_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_SL_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE17ApplyWithArgsImplISV_EENSK_IXsr8TakeArgsISP_EE5valueEvE4TypeERKSP_ST_SU_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE17ApplyWithArgsImplISN_EENSD_IXsr8TakeArgsISI_EE5valueEvE4TypeERKSI_SM_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE17ApplyWithArgsImplISK_EENSA_IXsr8TakeArgsISF_EE5valueEvE4TypeERKSF_SJ_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE17ApplyWithArgsImplISP_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_SO_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE17ApplyWithArgsImplISP_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_SO_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE17ApplyWithArgsImplISM_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_SL_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE17ApplyWithArgsImplISQ_EENSG_IXsr8TakeArgsISL_EE5valueEvE4TypeERKSL_SP_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE17ApplyWithArgsImplISK_EENSA_IXsr8TakeArgsISF_EE5valueEvE4TypeERKSF_SJ_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE17ApplyWithArgsImplISO_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_SC_
203
204
  // |F| takes no arguments.
205
  template <typename F>
206
  typename EnableIf<!TakeArgs<F>::value, void>::Type
207
  ApplyWithArgsImpl(const F& aFunc, As&&... aEvents)
208
0
  {
209
0
    MOZ_CRASH("Call ApplyWithNoArgs instead.");
210
0
  }
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE17ApplyWithArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_Ob
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE17ApplyWithArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_Ob
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:_ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_24MediaDecoderStateMachine13DecodingState5EnterEvE4$_21J6RefPtrINS_9AudioDataEEEE17ApplyWithArgsImplIS5_EENS_8EnableIfIXntsr8TakeArgsIT_EE5valueEvE4TypeERKSC_OS8_
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:_ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_24MediaDecoderStateMachine13DecodingState5EnterEvE4$_22J6RefPtrINS_9VideoDataEEEE17ApplyWithArgsImplIS5_EENS_8EnableIfIXntsr8TakeArgsIT_EE5valueEvE4TypeERKSC_OS8_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE17ApplyWithArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_Ob
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE17ApplyWithArgsImplISK_EENSB_IXntsr8TakeArgsISG_EE5valueEvE4TypeERKSG_Ob
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE17ApplyWithArgsImplISM_EENSD_IXntsr8TakeArgsISI_EE5valueEvE4TypeERKSI_OS7_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE17ApplyWithArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_Ob
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE17ApplyWithArgsImplISM_EENSD_IXntsr8TakeArgsISI_EE5valueEvE4TypeERKSI_OS7_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE17ApplyWithArgsImplISK_EENSB_IXntsr8TakeArgsISG_EE5valueEvE4TypeERKSG_Ob
211
212
  void ApplyWithArgs(As&&... aEvents) override
213
0
  {
214
0
    MOZ_RELEASE_ASSERT(TakeArgs<Function>::value);
215
0
    // Don't call the listener if it is disconnected.
216
0
    if (!RevocableToken::IsRevoked()) {
217
0
      ApplyWithArgsImpl(mFunction, std::move(aEvents)...);
218
0
    }
219
0
  }
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE13ApplyWithArgsES9_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE13ApplyWithArgsES9_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE13ApplyWithArgsESW_SX_SY_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE13ApplyWithArgsESN_SO_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE13ApplyWithArgsES9_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE13ApplyWithArgsESM_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE13ApplyWithArgsESK_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE13ApplyWithArgsEOb
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE13ApplyWithArgsESL_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE13ApplyWithArgsEST_SU_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE13ApplyWithArgsEOb
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE13ApplyWithArgsESM_
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::ApplyWithArgs(RefPtr<mozilla::AudioData>&&)
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::ApplyWithArgs(RefPtr<mozilla::VideoData>&&)
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE13ApplyWithArgsESJ_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE13ApplyWithArgsESO_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE13ApplyWithArgsESO_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE13ApplyWithArgsEOb
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE13ApplyWithArgsESL_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE13ApplyWithArgsESP_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE13ApplyWithArgsEOb
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE13ApplyWithArgsESJ_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE13ApplyWithArgsEOS7_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE13ApplyWithArgsEOb
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE13ApplyWithArgsEOS7_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE13ApplyWithArgsESC_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE13ApplyWithArgsEOb
220
221
  // |F| takes one or more arguments.
222
  template <typename F>
223
  typename EnableIf<TakeArgs<F>::value, void>::Type
224
  ApplyWithNoArgsImpl(const F& aFunc)
225
0
  {
226
0
    MOZ_CRASH("Call ApplyWithArgs instead.");
227
0
  }
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE19ApplyWithNoArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE19ApplyWithNoArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE19ApplyWithNoArgsImplISZ_EENSN_IXsr8TakeArgsISS_EE5valueEvE4TypeERKSS_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE19ApplyWithNoArgsImplISP_EENSE_IXsr8TakeArgsISJ_EE5valueEvE4TypeERKSJ_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE19ApplyWithNoArgsImplISL_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE19ApplyWithNoArgsImplISN_EENSD_IXsr8TakeArgsISI_EE5valueEvE4TypeERKSI_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE19ApplyWithNoArgsImplISL_EENSB_IXsr8TakeArgsISG_EE5valueEvE4TypeERKSG_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE19ApplyWithNoArgsImplISM_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE19ApplyWithNoArgsImplISV_EENSK_IXsr8TakeArgsISP_EE5valueEvE4TypeERKSP_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE19ApplyWithNoArgsImplISN_EENSD_IXsr8TakeArgsISI_EE5valueEvE4TypeERKSI_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE19ApplyWithNoArgsImplISK_EENSA_IXsr8TakeArgsISF_EE5valueEvE4TypeERKSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE19ApplyWithNoArgsImplISP_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE19ApplyWithNoArgsImplISP_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE19ApplyWithNoArgsImplISM_EENSC_IXsr8TakeArgsISH_EE5valueEvE4TypeERKSH_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE19ApplyWithNoArgsImplISQ_EENSG_IXsr8TakeArgsISL_EE5valueEvE4TypeERKSL_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE19ApplyWithNoArgsImplISK_EENSA_IXsr8TakeArgsISF_EE5valueEvE4TypeERKSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE19ApplyWithNoArgsImplISO_EENSF_IXsr8TakeArgsISK_EE5valueEvE4TypeERKSK_
228
229
  // |F| takes no arguments.
230
  template <typename F>
231
  typename EnableIf<!TakeArgs<F>::value, void>::Type
232
  ApplyWithNoArgsImpl(const F& aFunc)
233
0
  {
234
0
    aFunc();
235
0
  }
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE19ApplyWithNoArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE19ApplyWithNoArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:_ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_24MediaDecoderStateMachine13DecodingState5EnterEvE4$_21J6RefPtrINS_9AudioDataEEEE19ApplyWithNoArgsImplIS5_EENS_8EnableIfIXntsr8TakeArgsIT_EE5valueEvE4TypeERKSC_
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:_ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_24MediaDecoderStateMachine13DecodingState5EnterEvE4$_22J6RefPtrINS_9VideoDataEEEE19ApplyWithNoArgsImplIS5_EENS_8EnableIfIXntsr8TakeArgsIT_EE5valueEvE4TypeERKSC_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE19ApplyWithNoArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE19ApplyWithNoArgsImplISK_EENSB_IXntsr8TakeArgsISG_EE5valueEvE4TypeERKSG_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE19ApplyWithNoArgsImplISM_EENSD_IXntsr8TakeArgsISI_EE5valueEvE4TypeERKSI_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE19ApplyWithNoArgsImplISJ_EENSA_IXntsr8TakeArgsISF_EE5valueEvE4TypeERKSF_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE19ApplyWithNoArgsImplISM_EENSD_IXntsr8TakeArgsISI_EE5valueEvE4TypeERKSI_
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE19ApplyWithNoArgsImplISK_EENSB_IXntsr8TakeArgsISG_EE5valueEvE4TypeERKSG_
236
237
  virtual void ApplyWithNoArgs() override
238
0
  {
239
0
    MOZ_RELEASE_ASSERT(!TakeArgs<Function>::value);
240
0
    // Don't call the listener if it is disconnected.
241
0
    if (!RevocableToken::IsRevoked()) {
242
0
      ApplyWithNoArgsImpl(mFunction);
243
0
    }
244
0
  }
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_20MediaMetadataManagerEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS6_EEEENS5_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS7_ISE_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSK_FvS9_SG_SH_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SO_EUlOS9_OSG_OSH_E_JS9_SG_SH_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalIS2_NS_12MediaDecoderEMSB_FvS7_S8_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS7_OS8_E_JS7_S8_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvOS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlS9_E_JS5_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalIS2_NS_12MediaDecoderEMS8_FvS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS5_E_JS5_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_12MediaDecoderEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalIS2_NS_12MediaDecoderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMSB_FvRKS6_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SL_EUlOS6_OS8_E_JS6_S8_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalIS2_NS_17MediaDecoderOwnerEMS8_FvRKS5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS5_E_JS5_EE15ApplyWithNoArgsEv
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21, RefPtr<mozilla::AudioData> >::ApplyWithNoArgs()
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::detail::ListenerImpl<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22, RefPtr<mozilla::VideoData> >::ApplyWithNoArgs()
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlObE_JbEE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMSA_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS7_E_JS7_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_24MediaDecoderStateMachineEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalIS2_NS_17MediaFormatReaderEMS9_FvS6_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS6_E_JS6_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_5media9AudioSinkEMSB_FvRKS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SH_EUlOS7_E_JS7_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9AudioSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOlE_JlEE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_13DecodedStreamEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_JbEE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_13DecodedStreamEMSA_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlvE_JS7_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalIS2_NS_5media9VideoSinkEMSB_FvOS7_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlSC_E_JS7_EE15ApplyWithNoArgsEv
Unexecuted instantiation: _ZN7mozilla6detail12ListenerImplINS_14AbstractThreadEZNS_20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalIS2_NS_5media9VideoSinkEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlvE_JbEE15ApplyWithNoArgsEv
245
246
  const RefPtr<Target> mTarget;
247
  FunctionStorage mFunction;
248
};
249
250
/**
251
 * Return true if any type is a reference type.
252
 */
253
template <typename Head, typename... Tails>
254
struct IsAnyReference {
255
  static const bool value = IsReference<Head>::value ||
256
                            IsAnyReference<Tails...>::value;
257
};
258
259
template <typename T>
260
struct IsAnyReference<T> {
261
  static const bool value = IsReference<T>::value;
262
};
263
264
} // namespace detail
265
266
template <ListenerPolicy, typename... Ts> class MediaEventSourceImpl;
267
268
/**
269
 * Not thread-safe since this is not meant to be shared and therefore only
270
 * move constructor is provided. Used to hold the result of
271
 * MediaEventSource<T>::Connect() and call Disconnect() to disconnect the
272
 * listener from an event source.
273
 */
274
class MediaEventListener {
275
  template <ListenerPolicy, typename... Ts>
276
  friend class MediaEventSourceImpl;
277
278
public:
279
  MediaEventListener() {}
280
281
  MediaEventListener(MediaEventListener&& aOther)
282
0
    : mToken(std::move(aOther.mToken)) {}
283
284
0
  MediaEventListener& operator=(MediaEventListener&& aOther) {
285
0
    MOZ_ASSERT(!mToken, "Must disconnect the listener.");
286
0
    mToken = std::move(aOther.mToken);
287
0
    return *this;
288
0
  }
289
290
  ~MediaEventListener() {
291
    MOZ_ASSERT(!mToken, "Must disconnect the listener.");
292
  }
293
294
  void Disconnect() {
295
    mToken->Revoke();
296
    mToken = nullptr;
297
  }
298
299
  void DisconnectIfExists() {
300
    if (mToken) {
301
      Disconnect();
302
    }
303
  }
304
305
private:
306
  // Avoid exposing RevocableToken directly to the client code so that
307
  // listeners can be disconnected in a controlled manner.
308
0
  explicit MediaEventListener(RevocableToken* aToken) : mToken(aToken) {}
309
  RefPtr<RevocableToken> mToken;
310
};
311
312
/**
313
 * A generic and thread-safe class to implement the observer pattern.
314
 */
315
template <ListenerPolicy Lp, typename... Es>
316
class MediaEventSourceImpl {
317
  static_assert(!detail::IsAnyReference<Es...>::value,
318
                "Ref-type not supported!");
319
320
  template <typename T>
321
  using ArgType = typename detail::EventTypeTraits<T>::ArgType;
322
323
  typedef detail::Listener<ArgType<Es>...> Listener;
324
325
  template<typename Target, typename Func>
326
  using ListenerImpl = detail::ListenerImpl<Target, Func, ArgType<Es>...>;
327
328
  template <typename Method>
329
  using TakeArgs = detail::TakeArgs<Method>;
330
331
0
  void PruneListeners() {
332
0
    int32_t last = static_cast<int32_t>(mListeners.Length()) - 1;
333
0
    for (int32_t i = last; i >= 0; --i) {
334
0
      if (mListeners[i]->IsRevoked()) {
335
0
        mListeners.RemoveElementAt(i);
336
0
      }
337
0
    }
338
0
  }
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::DecoderDoctorEvent>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaDecoderOwner::NextFrameStatus>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, nsTArray<unsigned char>, nsTString<char16_t> >::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, bool>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::TrackInfo::TrackType>::PruneListeners()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, long>::PruneListeners()
339
340
  template<typename Target, typename Function>
341
  MediaEventListener
342
0
  ConnectInternal(Target* aTarget, Function&& aFunction) {
343
0
    MutexAutoLock lock(mMutex);
344
0
    PruneListeners();
345
0
    MOZ_ASSERT(Lp == ListenerPolicy::NonExclusive || mListeners.IsEmpty());
346
0
    auto l = mListeners.AppendElement();
347
0
    *l = new ListenerImpl<Target, Function>(
348
0
      aTarget, std::forward<Function>(aFunction));
349
0
    return MediaEventListener(*l);
350
0
  }
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_20MediaMetadataManagerEMS7_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlS8_E_EESD_SH_OSI_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_12MediaDecoderEMS7_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlS8_E_EESD_SH_OSI_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS3_EEEENS2_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS4_ISB_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadEZNSF_15ConnectInternalISH_NS_12MediaDecoderEMSJ_FvS6_SD_SE_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SN_EUlOS6_OSD_OSE_E_EESO_SS_OST_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadEZNS6_15ConnectInternalIS8_NS_12MediaDecoderEMSA_FvS4_S5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_EUlOS4_OS5_E_EESF_SJ_OSK_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_12MediaDecoderEMS7_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlS8_E_EESD_SH_OSI_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_12MediaDecoderEMS7_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS2_E_EESE_SI_OSJ_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_12MediaDecoderEMS7_FvS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlOS2_E_EESC_SG_OSH_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_12MediaDecoderEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlvE_EESB_SF_OSG_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalINS_14AbstractThreadEZNS4_15ConnectInternalIS6_NS_12MediaDecoderEMS8_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS3_E_EESD_SH_OSI_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalINS_14AbstractThreadEZNS6_15ConnectInternalIS8_NS_17MediaDecoderOwnerEMSA_FvRKS3_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SK_EUlOS3_OS5_E_EESL_SP_OSQ_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_17MediaDecoderOwnerEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlvE_EESB_SF_OSG_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadEZNS3_15ConnectInternalIS5_NS_17MediaDecoderOwnerEMS7_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlOS2_E_EESE_SI_OSJ_
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::ConnectInternal<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21&&)
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::ConnectInternal<mozilla::AbstractThread, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22&&)
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_24MediaDecoderStateMachineEMS6_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlObE_EESB_SF_OSG_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_24MediaDecoderStateMachineEMS9_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS4_E_EESG_SK_OSL_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_24MediaDecoderStateMachineEMS9_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlOS4_E_EESG_SK_OSL_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_24MediaDecoderStateMachineEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlvE_EESB_SF_OSG_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalINS_14AbstractThreadEZNS4_15ConnectInternalIS6_NS_17MediaFormatReaderEMS8_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_EUlOS3_E_EESD_SH_OSI_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_5media9AudioSinkEMSA_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SG_EUlOS4_E_EESH_SL_OSM_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_5media9AudioSinkEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_EESC_SG_OSH_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_13DecodedStreamEMS6_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlOlE_EESB_SF_OSG_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_13DecodedStreamEMS9_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlvE_EESE_SI_OSJ_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_13DecodedStreamEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_EUlvE_EESB_SF_OSG_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_13DecodedStreamEMS9_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_EUlvE_EESE_SI_OSJ_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadEZNS5_15ConnectInternalIS7_NS_5media9VideoSinkEMSA_FvOS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_EUlSB_E_EESG_SK_OSL_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadEZNS2_15ConnectInternalIS4_NS_5media9VideoSinkEMS7_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_EUlvE_EESC_SG_OSH_
351
352
  // |Method| takes one or more arguments.
353
  template <typename Target, typename This, typename Method>
354
  typename EnableIf<TakeArgs<Method>::value, MediaEventListener>::Type
355
0
  ConnectInternal(Target* aTarget, This* aThis, Method aMethod) {
356
0
    detail::RawPtr<This> thiz(aThis);
357
0
    return ConnectInternal(aTarget,
358
0
      [=](ArgType<Es>&&... aEvents) {
359
0
        (thiz.get()->*aMethod)(std::move(aEvents)...);
360
0
      });
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadENS_20MediaMetadataManagerEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlS7_E_clES7_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlS7_E_clES7_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS3_EEEENS2_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS4_ISB_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMSI_FvS6_SD_SE_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SM_ENKUlOS6_OSD_OSE_E_clESU_SV_SW_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS9_FvS4_S5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_ENKUlOS4_OS5_E_clESL_SM_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlS7_E_clES7_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ENKUlOS2_E_clESK_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ENKUlOS2_E_clESI_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS7_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlOS3_E_clESJ_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS9_FvRKS3_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SJ_ENKUlOS3_OS5_E_clESR_SS_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS6_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ENKUlOS2_E_clESK_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS5_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlObE_clESH_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS8_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ENKUlOS4_E_clESM_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS8_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ENKUlOS4_E_clESM_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalINS_14AbstractThreadENS_17MediaFormatReaderEMS7_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_ENKUlOS3_E_clESJ_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_5media9AudioSinkEMS9_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_ENKUlOS4_E_clESN_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS5_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlOlE_clESH_
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_5media9VideoSinkEMS9_FvOS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_ENKUlSA_E_clESA_
361
0
  }
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadENS_20MediaMetadataManagerEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_13TimedMetadataEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJNS_9UniquePtrINS_9MediaInfoENS_13DefaultDeleteIS3_EEEENS2_I15nsDataHashtableI16nsCStringHashKey9nsTStringIcEENS4_ISB_EEEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMSI_FvS6_SD_SE_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SM_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE0EJ9nsAutoPtrINS_9MediaInfoEENS_27MediaDecoderEventVisibilityEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS9_FvS4_S5_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SD_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18MediaPlaybackEventEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvOS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_18DecoderDoctorEventEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS6_FvS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_17MediaDecoderOwner15NextFrameStatusEEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS7_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ8nsTArrayIhE9nsTStringIDsEEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS9_FvRKS3_RK12nsTSubstringIDsEEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SJ_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_11MediaResultEEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS6_FvRKS2_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJbEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS5_FvbEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS8_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS8_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJNS_9TrackInfo9TrackTypeEEE15ConnectInternalINS_14AbstractThreadENS_17MediaFormatReaderEMS7_FvS3_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SB_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_5media9AudioSinkEMS9_FvRKS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SF_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJlEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS5_FvlEEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_5media9VideoSinkEMS9_FvOS4_EEENS_8EnableIfIXsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SE_
362
363
  // |Method| takes no arguments. Don't bother passing the event data.
364
  template <typename Target, typename This, typename Method>
365
  typename EnableIf<!TakeArgs<Method>::value, MediaEventListener>::Type
366
0
  ConnectInternal(Target* aTarget, This* aThis, Method aMethod) {
367
0
    detail::RawPtr<This> thiz(aThis);
368
0
    return ConnectInternal(aTarget,
369
0
      [=]() {
370
0
        (thiz.get()->*aMethod)();
371
0
      });
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlvE_clEv
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlvE_clEv
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlvE_clEv
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_5media9AudioSinkEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ENKUlvE_clEv
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ENKUlvE_clEv
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_ENKUlvE_clEv
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_ENKUlvE_clEv
Unexecuted instantiation: _ZZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_5media9VideoSinkEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_ENKUlvE_clEv
372
0
  }
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_12MediaDecoderEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_17MediaDecoderOwnerEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_24MediaDecoderStateMachineEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_5media9AudioSinkEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9AudioDataEEEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS5_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_S9_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJ6RefPtrINS_9VideoDataEEEE15ConnectInternalINS_14AbstractThreadENS_13DecodedStreamEMS8_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SC_
Unexecuted instantiation: _ZN7mozilla20MediaEventSourceImplILNS_14ListenerPolicyE1EJvEE15ConnectInternalINS_14AbstractThreadENS_5media9VideoSinkEMS6_FvvEEENS_8EnableIfIXntsr8TakeArgsIT1_EE5valueENS_18MediaEventListenerEE4TypeEPT_PT0_SA_
373
374
public:
375
  /**
376
   * Register a function to receive notifications from the event source.
377
   *
378
   * @param aTarget The target thread on which the function will run.
379
   * @param aFunction A function to be called on the target thread. The function
380
   *                  parameter must be convertible from |EventType|.
381
   * @return An object used to disconnect from the event source.
382
   */
383
  template<typename Function>
384
  MediaEventListener
385
0
  Connect(AbstractThread* aTarget, Function&& aFunction) {
386
0
    return ConnectInternal(aTarget, std::forward<Function>(aFunction));
387
0
  }
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::Connect<mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_21&&)
Unexecuted instantiation: Unified_cpp_dom_media5.cpp:mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::Connect<mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine::DecodingState::Enter()::$_22&&)
388
389
  template<typename Function>
390
  MediaEventListener
391
  Connect(nsIEventTarget* aTarget, Function&& aFunction) {
392
    return ConnectInternal(aTarget, std::forward<Function>(aFunction));
393
  }
394
395
  /**
396
   * As above.
397
   *
398
   * Note we deliberately keep a weak reference to |aThis| in order not to
399
   * change its lifetime. This is because notifications are dispatched
400
   * asynchronously and removing a listener doesn't always break the reference
401
   * cycle for the pending event could still hold a reference to |aThis|.
402
   *
403
   * The caller must call MediaEventListener::Disconnect() to avoid dangling
404
   * pointers.
405
   */
406
  template <typename This, typename Method>
407
  MediaEventListener
408
0
  Connect(AbstractThread* aTarget, This* aThis, Method aMethod) {
409
0
    return ConnectInternal(aTarget, aThis, aMethod);
410
0
  }
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::Connect<mozilla::MediaMetadataManager, void (mozilla::MediaMetadataManager::*)(mozilla::TimedMetadata&&)>(mozilla::AbstractThread*, mozilla::MediaMetadataManager*, void (mozilla::MediaMetadataManager::*)(mozilla::TimedMetadata&&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::TimedMetadata&&)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::TimedMetadata&&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::MediaPlaybackEvent&&)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::MediaPlaybackEvent&&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::MediaResult const&)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::MediaResult const&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::DecoderDoctorEvent>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::DecoderDoctorEvent)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::DecoderDoctorEvent))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)()>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)())
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaDecoderOwner::NextFrameStatus>::Connect<mozilla::MediaDecoder, void (mozilla::MediaDecoder::*)(mozilla::MediaDecoderOwner::NextFrameStatus)>(mozilla::AbstractThread*, mozilla::MediaDecoder*, void (mozilla::MediaDecoder::*)(mozilla::MediaDecoderOwner::NextFrameStatus))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, nsTArray<unsigned char>, nsTString<char16_t> >::Connect<mozilla::MediaDecoderOwner, void (mozilla::MediaDecoderOwner::*)(nsTArray<unsigned char> const&, nsTSubstring<char16_t> const&)>(mozilla::AbstractThread*, mozilla::MediaDecoderOwner*, void (mozilla::MediaDecoderOwner::*)(nsTArray<unsigned char> const&, nsTSubstring<char16_t> const&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::MediaDecoderOwner, void (mozilla::MediaDecoderOwner::*)()>(mozilla::AbstractThread*, mozilla::MediaDecoderOwner*, void (mozilla::MediaDecoderOwner::*)())
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::Connect<mozilla::MediaDecoderOwner, void (mozilla::MediaDecoderOwner::*)(mozilla::MediaResult const&)>(mozilla::AbstractThread*, mozilla::MediaDecoderOwner*, void (mozilla::MediaDecoderOwner::*)(mozilla::MediaResult const&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, bool>::Connect<mozilla::MediaDecoderStateMachine, void (mozilla::MediaDecoderStateMachine::*)(bool)>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine*, void (mozilla::MediaDecoderStateMachine::*)(bool))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::Connect<mozilla::MediaDecoderStateMachine, void (mozilla::MediaDecoderStateMachine::*)(RefPtr<mozilla::AudioData> const&)>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine*, void (mozilla::MediaDecoderStateMachine::*)(RefPtr<mozilla::AudioData> const&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::Connect<mozilla::MediaDecoderStateMachine, void (mozilla::MediaDecoderStateMachine::*)(RefPtr<mozilla::VideoData> const&)>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine*, void (mozilla::MediaDecoderStateMachine::*)(RefPtr<mozilla::VideoData> const&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::MediaDecoderStateMachine, void (mozilla::MediaDecoderStateMachine::*)()>(mozilla::AbstractThread*, mozilla::MediaDecoderStateMachine*, void (mozilla::MediaDecoderStateMachine::*)())
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::TrackInfo::TrackType>::Connect<mozilla::MediaFormatReader, void (mozilla::MediaFormatReader::*)(mozilla::TrackInfo::TrackType)>(mozilla::AbstractThread*, mozilla::MediaFormatReader*, void (mozilla::MediaFormatReader::*)(mozilla::TrackInfo::TrackType))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::Connect<mozilla::media::AudioSink, void (mozilla::media::AudioSink::*)(RefPtr<mozilla::AudioData> const&)>(mozilla::AbstractThread*, mozilla::media::AudioSink*, void (mozilla::media::AudioSink::*)(RefPtr<mozilla::AudioData> const&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::media::AudioSink, void (mozilla::media::AudioSink::*)()>(mozilla::AbstractThread*, mozilla::media::AudioSink*, void (mozilla::media::AudioSink::*)())
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, long>::Connect<mozilla::DecodedStream, void (mozilla::DecodedStream::*)(long)>(mozilla::AbstractThread*, mozilla::DecodedStream*, void (mozilla::DecodedStream::*)(long))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::Connect<mozilla::DecodedStream, void (mozilla::DecodedStream::*)()>(mozilla::AbstractThread*, mozilla::DecodedStream*, void (mozilla::DecodedStream::*)())
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::DecodedStream, void (mozilla::DecodedStream::*)()>(mozilla::AbstractThread*, mozilla::DecodedStream*, void (mozilla::DecodedStream::*)())
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::Connect<mozilla::DecodedStream, void (mozilla::DecodedStream::*)()>(mozilla::AbstractThread*, mozilla::DecodedStream*, void (mozilla::DecodedStream::*)())
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::Connect<mozilla::media::VideoSink, void (mozilla::media::VideoSink::*)(RefPtr<mozilla::VideoData>&&)>(mozilla::AbstractThread*, mozilla::media::VideoSink*, void (mozilla::media::VideoSink::*)(RefPtr<mozilla::VideoData>&&))
Unexecuted instantiation: mozilla::MediaEventListener mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::Connect<mozilla::media::VideoSink, void (mozilla::media::VideoSink::*)()>(mozilla::AbstractThread*, mozilla::media::VideoSink*, void (mozilla::media::VideoSink::*)())
411
412
  template <typename This, typename Method>
413
  MediaEventListener
414
  Connect(nsIEventTarget* aTarget, This* aThis, Method aMethod) {
415
    return ConnectInternal(aTarget, aThis, aMethod);
416
  }
417
418
protected:
419
0
  MediaEventSourceImpl() : mMutex("MediaEventSourceImpl::mMutex") {}
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::DecoderDoctorEvent>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaDecoderOwner::NextFrameStatus>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::TrackInfo::TrackType>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, nsTArray<unsigned char>, nsTString<char16_t> >::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, bool>::MediaEventSourceImpl()
Unexecuted instantiation: mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, long>::MediaEventSourceImpl()
420
421
  template <typename... Ts>
422
0
  void NotifyInternal(Ts&&... aEvents) {
423
0
    MutexAutoLock lock(mMutex);
424
0
    int32_t last = static_cast<int32_t>(mListeners.Length()) - 1;
425
0
    for (int32_t i = last; i >= 0; --i) {
426
0
      auto&& l = mListeners[i];
427
0
      // Remove disconnected listeners.
428
0
      // It is not optimal but is simple and works well.
429
0
      if (l->IsRevoked()) {
430
0
        mListeners.RemoveElementAt(i);
431
0
        continue;
432
0
      }
433
0
      l->Dispatch(std::forward<Ts>(aEvents)...);
434
0
    }
435
0
  }
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, void>::NotifyInternal<bool>(bool&&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::TimedMetadata>::NotifyInternal<mozilla::TimedMetadata>(mozilla::TimedMetadata&&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::NotifyInternal<mozilla::MediaPlaybackEvent::EventType&>(mozilla::MediaPlaybackEvent::EventType&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaDecoderOwner::NextFrameStatus>::NotifyInternal<mozilla::MediaDecoderOwner::NextFrameStatus&>(mozilla::MediaDecoderOwner::NextFrameStatus&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::AudioData> >::NotifyInternal<RefPtr<mozilla::AudioData>&>(RefPtr<mozilla::AudioData>&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, RefPtr<mozilla::VideoData> >::NotifyInternal<RefPtr<mozilla::VideoData>&>(RefPtr<mozilla::VideoData>&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::NotifyInternal<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >&&, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >&&, mozilla::MediaDecoderEventVisibility&&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaPlaybackEvent>::NotifyInternal<mozilla::MediaPlaybackEvent&>(mozilla::MediaPlaybackEvent&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::MediaResult>::NotifyInternal<mozilla::MediaResult const&>(mozilla::MediaResult const&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)0, nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::NotifyInternal<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility&>(nsAutoPtr<mozilla::MediaInfo>&&, mozilla::MediaDecoderEventVisibility&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::DecoderDoctorEvent>::NotifyInternal<mozilla::DecoderDoctorEvent&>(mozilla::DecoderDoctorEvent&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, nsTArray<unsigned char>, nsTString<char16_t> >::NotifyInternal<nsTArray<unsigned char>&, nsTString<char16_t>&>(nsTArray<unsigned char>&, nsTString<char16_t>&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, long>::NotifyInternal<long&>(long&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, bool>::NotifyInternal<bool&>(bool&)
Unexecuted instantiation: void mozilla::MediaEventSourceImpl<(mozilla::ListenerPolicy)1, mozilla::TrackInfo::TrackType>::NotifyInternal<mozilla::TrackInfo::TrackType const&>(mozilla::TrackInfo::TrackType const&)
436
437
private:
438
  Mutex mMutex;
439
  nsTArray<RefPtr<Listener>> mListeners;
440
};
441
442
template <typename... Es>
443
using MediaEventSource =
444
  MediaEventSourceImpl<ListenerPolicy::NonExclusive, Es...>;
445
446
template <typename... Es>
447
using MediaEventSourceExc =
448
  MediaEventSourceImpl<ListenerPolicy::Exclusive, Es...>;
449
450
/**
451
 * A class to separate the interface of event subject (MediaEventSource)
452
 * and event publisher. Mostly used as a member variable to publish events
453
 * to the listeners.
454
 */
455
template <typename... Es>
456
class MediaEventProducer : public MediaEventSource<Es...> {
457
public:
458
  template <typename... Ts>
459
0
  void Notify(Ts&&... aEvents) {
460
0
    // Pass lvalues to prevent move in NonExclusive mode.
461
0
    this->NotifyInternal(aEvents...);
462
0
  }
Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::MediaPlaybackEvent>::Notify<mozilla::MediaPlaybackEvent::EventType>(mozilla::MediaPlaybackEvent::EventType&&)
Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::MediaDecoderOwner::NextFrameStatus>::Notify<mozilla::MediaDecoderOwner::NextFrameStatus>(mozilla::MediaDecoderOwner::NextFrameStatus&&)
Unexecuted instantiation: void mozilla::MediaEventProducer<RefPtr<mozilla::AudioData> >::Notify<RefPtr<mozilla::AudioData>&>(RefPtr<mozilla::AudioData>&)
Unexecuted instantiation: void mozilla::MediaEventProducer<RefPtr<mozilla::VideoData> >::Notify<RefPtr<mozilla::VideoData>&>(RefPtr<mozilla::VideoData>&)
Unexecuted instantiation: void mozilla::MediaEventProducer<RefPtr<mozilla::AudioData> >::Notify<RefPtr<mozilla::AudioData> >(RefPtr<mozilla::AudioData>&&)
Unexecuted instantiation: void mozilla::MediaEventProducer<RefPtr<mozilla::VideoData> >::Notify<RefPtr<mozilla::VideoData> >(RefPtr<mozilla::VideoData>&&)
Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::MediaPlaybackEvent>::Notify<mozilla::MediaPlaybackEvent>(mozilla::MediaPlaybackEvent&&)
Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::MediaResult>::Notify<mozilla::MediaResult const&>(mozilla::MediaResult const&)
Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::DecoderDoctorEvent>::Notify<mozilla::DecoderDoctorEvent>(mozilla::DecoderDoctorEvent&&)
Unexecuted instantiation: void mozilla::MediaEventProducer<nsTArray<unsigned char>, nsTString<char16_t> >::Notify<nsTArray<unsigned char>&, nsTString<char16_t>&>(nsTArray<unsigned char>&, nsTString<char16_t>&)
Unexecuted instantiation: void mozilla::MediaEventProducer<long>::Notify<long&>(long&)
Unexecuted instantiation: void mozilla::MediaEventProducer<bool>::Notify<bool&>(bool&)
Unexecuted instantiation: void mozilla::MediaEventProducer<mozilla::TrackInfo::TrackType>::Notify<mozilla::TrackInfo::TrackType const&>(mozilla::TrackInfo::TrackType const&)
463
};
464
465
/**
466
 * Specialization for void type. A dummy bool is passed to NotifyInternal
467
 * since there is no way to pass a void value.
468
 */
469
template <>
470
class MediaEventProducer<void> : public MediaEventSource<void> {
471
public:
472
0
  void Notify() {
473
0
    this->NotifyInternal(true /* dummy */);
474
0
  }
475
};
476
477
/**
478
 * A producer allowing at most one listener.
479
 */
480
template <typename... Es>
481
class MediaEventProducerExc : public MediaEventSourceExc<Es...> {
482
public:
483
  template <typename... Ts>
484
0
  void Notify(Ts&&... aEvents) {
485
0
    this->NotifyInternal(std::forward<Ts>(aEvents)...);
486
0
  }
Unexecuted instantiation: void mozilla::MediaEventProducerExc<mozilla::TimedMetadata>::Notify<mozilla::TimedMetadata>(mozilla::TimedMetadata&&)
Unexecuted instantiation: void mozilla::MediaEventProducerExc<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>::Notify<mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >, mozilla::MediaDecoderEventVisibility>(mozilla::UniquePtr<mozilla::MediaInfo, mozilla::DefaultDelete<mozilla::MediaInfo> >&&, mozilla::UniquePtr<nsDataHashtable<nsCStringHashKey, nsTString<char> >, mozilla::DefaultDelete<nsDataHashtable<nsCStringHashKey, nsTString<char> > > >&&, mozilla::MediaDecoderEventVisibility&&)
Unexecuted instantiation: void mozilla::MediaEventProducerExc<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility>::Notify<nsAutoPtr<mozilla::MediaInfo>, mozilla::MediaDecoderEventVisibility&>(nsAutoPtr<mozilla::MediaInfo>&&, mozilla::MediaDecoderEventVisibility&)
487
};
488
489
} // namespace mozilla
490
491
#endif //MediaEventSource_h_