Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Unified Diff: content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java

Issue 411353002: MediaUrlInterceptor for embedders to handle custom urls. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Copyright nit Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java
diff --git a/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java b/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java
index 5e1fa49e38fbe1951085b7c31241be503ac0e8b5..d6955fa86a6fba1ab03727b974db9121235a170e 100644
--- a/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java
+++ b/content/public/android/java/src/org/chromium/content/browser/MediaResourceGetter.java
@@ -9,6 +9,7 @@ import android.content.pm.PackageManager;
import android.media.MediaMetadataRetriever;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
+import android.os.ParcelFileDescriptor;
import android.text.TextUtils;
import android.util.Log;
@@ -117,6 +118,23 @@ class MediaResourceGetter {
context, url, cookies, userAgent);
}
+ @CalledByNative
+ private static MediaMetadata extractMediaMetadataFromFd(int fd,
+ long offset,
+ long length) {
+ return new MediaResourceGetter().extract(fd, offset, length);
+ }
+
+ @VisibleForTesting
+ MediaMetadata extract(int fd, long offset, long length) {
+ if (!androidDeviceOk(android.os.Build.MODEL, android.os.Build.VERSION.SDK_INT)) {
+ return EMPTY_METADATA;
+ }
+
+ configure(fd, offset, length);
+ return doExtractMetadata();
+ }
+
@VisibleForTesting
MediaMetadata extract(final Context context, final String url,
final String cookies, final String userAgent) {
@@ -128,7 +146,10 @@ class MediaResourceGetter {
Log.e(TAG, "Unable to configure metadata extractor");
return EMPTY_METADATA;
}
+ return doExtractMetadata();
+ }
+ private MediaMetadata doExtractMetadata() {
try {
String durationString = extractMetadata(
MediaMetadataRetriever.METADATA_KEY_DURATION);
@@ -367,6 +388,21 @@ class MediaResourceGetter {
}
@VisibleForTesting
+ void configure(int fd, long offset, long length) {
+ ParcelFileDescriptor parcelFd = ParcelFileDescriptor.adoptFd(fd);
+ try {
+ mRetriever.setDataSource(parcelFd.getFileDescriptor(),
+ offset, length);
+ } finally {
+ try {
+ parcelFd.close();
+ } catch (IOException e) {
+ Log.e(TAG, "Failed to close file descriptor: " + e);
+ }
+ }
+ }
+
+ @VisibleForTesting
void configure(String url, Map<String,String> headers) {
mRetriever.setDataSource(url, headers);
}

Powered by Google App Engine
This is Rietveld 408576698