1// Copyright 2014 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_ANDROID_MEDIA_URL_INTERCEPTOR_H_
6#define MEDIA_BASE_ANDROID_MEDIA_URL_INTERCEPTOR_H_
7
8#include <string>
9
10#include "base/android/jni_android.h"
11#include "media/base/media_export.h"
12
13namespace media {
14
15// Interceptor for content embedders to handle custom media urls
16// and translate them into files containing media.
17class MEDIA_EXPORT MediaUrlInterceptor {
18 public:
19  virtual ~MediaUrlInterceptor() {};
20
21  // Returns true if the embedder has intercepted the url and
22  // false otherwise.
23  // Output arguments (only when the url has been intercepted):
24  // - |fd|: file descriptor to the file containing the media element.
25  // - |offset|: offset in bytes from the start of the file to the
26  //             media element.
27  // - |size|: size in bytes of the media element.
28  virtual bool Intercept(const std::string& url,
29                         int* fd,
30                         int64* offset,
31                         int64* size) const = 0;
32};
33
34}  // namespace media
35
36#endif  // MEDIA_BASE_ANDROID_MEDIA_URL_INTERCEPTOR_H_
37