Fix for b/4198446 HC - Support for Widevine Adaptive VOD

Fix for b/4075745 libWVStreamControlAPI crashes when dlopened() and dlclosed()
Added error logging to diagnose problems such as b/4430078 Playback of newly rented
    movie fails with "license expired"

Includes Widevine library build Version 4.5.0.3682

Change-Id: I5708bb3fb92f05a3dd1768620157a795ccebd57a
This commit is contained in:
Jeffrey Tinker
2011-05-21 18:06:12 -07:00
parent 907dd75e31
commit 07b60098b3
9 changed files with 140 additions and 22 deletions

View File

@@ -21,7 +21,7 @@
#include "AndroidConfig.h"
#include "WVStreamControlAPI.h"
#include "WVMInfoListener.h"
#include <media/stagefright/MediaExtractor.h>
#include "WVMExtractor.h"
#include <media/stagefright/DataSource.h>
#include <utils/RefBase.h>
@@ -30,13 +30,13 @@
namespace android {
MediaExtractor *GetInstance(sp<DataSource> dataSource);
WVMLoadableExtractor *GetInstance(sp<DataSource> dataSource);
class WVMMediaSource;
class WVMFileSource;
class WVMExtractorImpl : public MediaExtractor {
class WVMExtractorImpl : public WVMLoadableExtractor {
public:
WVMExtractorImpl(sp<DataSource> dataSource);
@@ -45,9 +45,13 @@ public:
virtual sp<MetaData> getTrackMetaData(size_t index, uint32_t flags);
virtual sp<MetaData> getMetaData();
virtual int64_t getCachedDurationUs(status_t *finalStatus);
virtual void setAdaptiveStreamingMode(bool adaptive);
bool getAdaptiveStreamingMode() const;
protected:
virtual ~WVMExtractorImpl();
void Initialize();
private:
status_t readAVCCMetaData(sp<MetaData> videoMetaData);
@@ -61,6 +65,9 @@ private:
sp<WVMInfoListener> mInfoListener;
bool mHaveMetaData;
bool mUseAdaptiveStreaming;
bool mIsLiveStream;
bool mAdaptivePrefetching;
WVSession *mSession;