Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
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 MOZILLA_MEDIASTREAMTYPES_h_
8 : #define MOZILLA_MEDIASTREAMTYPES_h_
9 :
10 : #include "StreamTracks.h" // for TrackID
11 :
12 : namespace mozilla {
13 :
14 : enum MediaStreamGraphEvent : uint32_t {
15 : EVENT_FINISHED,
16 : EVENT_REMOVED,
17 : EVENT_HAS_DIRECT_LISTENERS, // transition from no direct listeners
18 : EVENT_HAS_NO_DIRECT_LISTENERS, // transition to no direct listeners
19 : };
20 :
21 : // maskable flags, not a simple enumerated value
22 : enum TrackEventCommand : uint32_t {
23 : TRACK_EVENT_NONE = 0x00,
24 : TRACK_EVENT_CREATED = 0x01,
25 : TRACK_EVENT_ENDED = 0x02,
26 : TRACK_EVENT_UNUSED = ~(TRACK_EVENT_ENDED | TRACK_EVENT_CREATED),
27 : };
28 :
29 : /**
30 : * Describes how a track should be disabled.
31 : *
32 : * ENABLED Not disabled.
33 : * SILENCE_BLACK Audio data is turned into silence, video frames are made black.
34 : * SILENCE_FREEZE Audio data is turned into silence, video freezes at last frame.
35 : */
36 : enum class DisabledTrackMode
37 : {
38 : ENABLED, SILENCE_BLACK, SILENCE_FREEZE
39 : };
40 : struct DisabledTrack {
41 0 : DisabledTrack(TrackID aTrackID, DisabledTrackMode aMode)
42 0 : : mTrackID(aTrackID), mMode(aMode) {}
43 : TrackID mTrackID;
44 : DisabledTrackMode mMode;
45 : };
46 :
47 : } // namespace mozilla
48 :
49 : #endif // MOZILLA_MEDIASTREAMTYPES_h_
|