mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-26 11:45:37 +00:00
2e91854fcd
We have three implementations, in the MP4, WebM and MediaSource decoders. The WebM and MP4 are the same. Ogg and other decoders don't have an implementation, but if we create a default implementation in MediaDecoder, they'll get it for free. MediaSourceDecoder needs a custom override still. MozReview-Commit-ID: AXxn2Xhn0Jn --HG-- extra : rebase_source : 83d0facbe26f8385c7163dc85d5512e7a43e80f4
41 lines
1.0 KiB
C++
41 lines
1.0 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
#if !defined(WebMDecoder_h_)
|
|
#define WebMDecoder_h_
|
|
|
|
#include "ChannelMediaDecoder.h"
|
|
|
|
namespace mozilla {
|
|
|
|
class MediaContainerType;
|
|
|
|
class WebMDecoder : public ChannelMediaDecoder
|
|
{
|
|
public:
|
|
explicit WebMDecoder(MediaDecoderInit& aInit)
|
|
: ChannelMediaDecoder(aInit)
|
|
{
|
|
}
|
|
|
|
// Returns true if aContainerType is a WebM type that we think we can render
|
|
// with an enabled platform decoder backend.
|
|
// If provided, codecs are checked for support.
|
|
static bool IsSupportedType(const MediaContainerType& aContainerType);
|
|
|
|
private:
|
|
ChannelMediaDecoder* CloneImpl(MediaDecoderInit& aInit) override
|
|
{
|
|
if (!IsWebMEnabled()) {
|
|
return nullptr;
|
|
}
|
|
return new WebMDecoder(aInit);
|
|
}
|
|
};
|
|
|
|
} // namespace mozilla
|
|
|
|
#endif
|