blob: d42d2eb9e129e4b895422217ff3927df7827a4da [file] [log] [blame]
Dale Satherccde3cc2016-03-03 15:44:44 -08001// Copyright 2016 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef SERVICES_MEDIA_FRAMEWORK_FFMPEG_FFMPEG_DECODER_H_
6#define SERVICES_MEDIA_FRAMEWORK_FFMPEG_FFMPEG_DECODER_H_
7
8#include <memory>
9
10#include "services/media/framework/parts/decoder.h"
11
12namespace mojo {
13namespace media {
14
15// Abstract base class for ffmpeg-based decoders, just the create function.
16// We don't want the base class implementation here, because we don't want
17// dependent targets to have to deal with ffmpeg includes.
18class FfmpegDecoder : public Decoder {
19 public:
20 // Creates an ffmpeg-based Decoder object for a given media type.
Dale Sather4ccdd212016-03-23 09:27:19 -070021 static Result Create(const StreamType& stream_type,
22 std::shared_ptr<Decoder>* decoder_out);
Dale Satherccde3cc2016-03-03 15:44:44 -080023};
24
25} // namespace media
26} // namespace mojo
27
Dale Sather4ccdd212016-03-23 09:27:19 -070028#endif // SERVICES_MEDIA_FRAMEWORK_FFMPEG_FFMPEG_DECODER_H_