content/media/directshow/DirectShowDecoder.h

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:52e921ca3625
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 #if !defined(DirectShowDecoder_h_)
8 #define DirectShowDecoder_h_
9
10 #include "MediaDecoder.h"
11
12 namespace mozilla {
13
14 // Decoder that uses DirectShow to playback MP3 files only.
15 class DirectShowDecoder : public MediaDecoder
16 {
17 public:
18
19 DirectShowDecoder();
20 virtual ~DirectShowDecoder();
21
22 MediaDecoder* Clone() MOZ_OVERRIDE {
23 if (!IsEnabled()) {
24 return nullptr;
25 }
26 return new DirectShowDecoder();
27 }
28
29 MediaDecoderStateMachine* CreateStateMachine() MOZ_OVERRIDE;
30
31 // Returns true if aType is a MIME type that we render with the
32 // DirectShow backend. If aCodecList is non null,
33 // it is filled with a (static const) null-terminated list of strings
34 // denoting the codecs we'll playback. Note that playback is strictly
35 // limited to MP3 only.
36 static bool GetSupportedCodecs(const nsACString& aType,
37 char const *const ** aCodecList);
38
39 // Returns true if the DirectShow backend is preffed on.
40 static bool IsEnabled();
41 };
42
43 } // namespace mozilla
44
45 #endif

mercurial