1// Copyright 2013 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 MEDIA_BASE_MEDIA_FILE_CHECKER_H_
6#define MEDIA_BASE_MEDIA_FILE_CHECKER_H_
7
8#include "base/basictypes.h"
9#include "base/files/file.h"
10#include "media/base/media_export.h"
11
12namespace base {
13class TimeDelta;
14}
15
16namespace media {
17
18// This class tries to determine if a file is a valid media file. The entire
19// file is not decoded so a positive result from this class does not make the
20// file safe to use in the browser process.
21class MEDIA_EXPORT MediaFileChecker {
22 public:
23  explicit MediaFileChecker(base::File file);
24  ~MediaFileChecker();
25
26  // After opening |file|, up to |check_time| amount of wall-clock time is spent
27  // decoding the file. The amount of audio/video data decoded will depend on
28  // the bitrate of the file and the speed of the CPU.
29  bool Start(base::TimeDelta check_time);
30
31 private:
32  base::File file_;
33
34  DISALLOW_COPY_AND_ASSIGN(MediaFileChecker);
35};
36
37}  // namespace media
38
39#endif  // MEDIA_BASE_MEDIA_FILE_CHECKER_H_
40