summaryrefslogtreecommitdiffstats
path: root/media/libavextensions
diff options
context:
space:
mode:
authorApurupa Pattapu <apurupa@codeaurora.org>2015-07-07 12:27:10 -0700
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:24:30 -0600
commit0c4d3ced0a20b5cef6c51410754b40d4254f596b (patch)
treed6fd24c95573ca43af5c96325fb7bd61664b8836 /media/libavextensions
parentdaef932059bbeaf1b88a8871f348be128fdf0bfe (diff)
downloadframeworks_av-0c4d3ced0a20b5cef6c51410754b40d4254f596b.zip
frameworks_av-0c4d3ced0a20b5cef6c51410754b40d4254f596b.tar.gz
frameworks_av-0c4d3ced0a20b5cef6c51410754b40d4254f596b.tar.bz2
Stagefright: Extensions for HTTP progressive streaming.
- Extend NuPlayer setDataSource for streaming - Create ExtendedCachedSource only for MediaPlayer streaming usecases by passing a flag to DataSource to use extended cache - Add extension for MediaHTTP Change-Id: Ic87c3744bf905eb8742863951b809e38d0a60339
Diffstat (limited to 'media/libavextensions')
-rw-r--r--media/libavextensions/Android.mk3
-rw-r--r--media/libavextensions/stagefright/AVExtensions.h9
-rw-r--r--media/libavextensions/stagefright/AVFactory.cpp14
3 files changed, 25 insertions, 1 deletions
diff --git a/media/libavextensions/Android.mk b/media/libavextensions/Android.mk
index 511f13f..26c9f85 100644
--- a/media/libavextensions/Android.mk
+++ b/media/libavextensions/Android.mk
@@ -12,7 +12,8 @@ LOCAL_C_INCLUDES:= \
$(TOP)/frameworks/native/include/media/hardware \
$(TOP)/frameworks/native/include/media/openmax \
$(TOP)/external/flac/include \
- $(TOP)/hardware/qcom/media/mm-core/inc
+ $(TOP)/hardware/qcom/media/mm-core/inc \
+ $(TOP)/frameworks/av/media/libstagefright \
LOCAL_CFLAGS += -Wno-multichar
diff --git a/media/libavextensions/stagefright/AVExtensions.h b/media/libavextensions/stagefright/AVExtensions.h
index 04588d5..06257be 100644
--- a/media/libavextensions/stagefright/AVExtensions.h
+++ b/media/libavextensions/stagefright/AVExtensions.h
@@ -39,6 +39,9 @@ struct ACodec;
class MediaExtractor;
struct MediaCodec;
class AudioParameter;
+struct NuCachedSource2;
+struct MediaHTTP;
+struct IMediaHTTPConnection;
/*
* Factory to create objects of base-classes in libstagefright
@@ -47,6 +50,12 @@ struct AVFactory {
virtual sp<ACodec> createACodec();
virtual MediaExtractor* createExtendedExtractor(
const sp<DataSource> &source, const char *mime);
+ virtual sp<NuCachedSource2> createCachedSource(
+ const sp<DataSource> &source,
+ const char *cacheConfig = NULL,
+ bool disconnectAtHighwatermark = false);
+ virtual MediaHTTP* createMediaHTTP(
+ const sp<IMediaHTTPConnection> &conn);
// ----- NO TRESSPASSING BEYOND THIS LINE ------
DECLARE_LOADABLE_SINGLETON(AVFactory);
diff --git a/media/libavextensions/stagefright/AVFactory.cpp b/media/libavextensions/stagefright/AVFactory.cpp
index da60167..22969a2 100644
--- a/media/libavextensions/stagefright/AVFactory.cpp
+++ b/media/libavextensions/stagefright/AVFactory.cpp
@@ -40,9 +40,11 @@
#include <media/stagefright/DataSource.h>
#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MediaExtractor.h>
+#include <media/stagefright/MediaHTTP.h>
#include "common/ExtensionsLoader.hpp"
#include "stagefright/AVExtensions.h"
+#include "include/NuCachedSource2.h"
namespace android {
@@ -55,6 +57,18 @@ MediaExtractor* AVFactory::createExtendedExtractor(
return NULL;
}
+sp<NuCachedSource2> AVFactory::createCachedSource(
+ const sp<DataSource> &source,
+ const char *cacheConfig,
+ bool disconnectAtHighwatermark) {
+ return new NuCachedSource2(source, cacheConfig, disconnectAtHighwatermark);
+}
+
+MediaHTTP* AVFactory::createMediaHTTP(
+ const sp<IMediaHTTPConnection> &conn) {
+ return new MediaHTTP(conn);
+}
+
// ----- NO TRESSPASSING BEYOND THIS LINE ------
AVFactory::AVFactory() {
}