1 // Copyright (c) 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_ANDROID_MEDIA_RESOURCE_GETTER_H_ 6 #define MEDIA_BASE_ANDROID_MEDIA_RESOURCE_GETTER_H_ 7 8 #include <string> 9 10 #include "base/callback.h" 11 #include "base/files/file_path.h" 12 #include "base/time/time.h" 13 #include "media/base/media_export.h" 14 #include "url/gurl.h" 15 16 namespace media { 17 18 // Class for asynchronously retrieving resources for a media URL. All callbacks 19 // are executed on the caller's thread. 20 class MEDIA_EXPORT MediaResourceGetter { 21 public: 22 typedef base::Callback<void(const std::string&)> GetCookieCB; 23 typedef base::Callback<void(const std::string&)> GetPlatformPathCB; 24 typedef base::Callback<void(base::TimeDelta, int, int, bool)> 25 ExtractMediaMetadataCB; 26 virtual ~MediaResourceGetter(); 27 28 // Method for getting the cookies for a given URL. 29 virtual void GetCookies(const GURL& url, 30 const GURL& first_party_for_cookies, 31 const GetCookieCB& callback) = 0; 32 33 // Method for getting the platform path from a file system URL. 34 virtual void GetPlatformPathFromFileSystemURL( 35 const GURL& url, 36 const GetPlatformPathCB& callback) = 0; 37 38 // Extract the metadata from a media URL. Once completed, the provided 39 // callback function will be run. 40 virtual void ExtractMediaMetadata( 41 const std::string& url, 42 const std::string& cookies, 43 const ExtractMediaMetadataCB& callback) = 0; 44 }; 45 46 } // namespace media 47 48 #endif // MEDIA_BASE_ANDROID_MEDIA_RESOURCE_GETTER_H_ 49