Merge "Implement new heartbeat error codes" into honeycomb-mr1

This commit is contained in:
Jeffrey Tinker
2011-04-27 11:51:28 -07:00
committed by Android (Google) Code Review
2 changed files with 45 additions and 12 deletions

View File

@@ -20,6 +20,7 @@
#include "WVMMediaSource.h" #include "WVMMediaSource.h"
#include "WVMFileSource.h" #include "WVMFileSource.h"
#include "WVMExtractorImpl.h" #include "WVMExtractorImpl.h"
#include "WVMErrorCodes.h"
#include "media/stagefright/MediaErrors.h" #include "media/stagefright/MediaErrors.h"
#include "media/stagefright/MediaDefs.h" #include "media/stagefright/MediaDefs.h"
#include "media/stagefright/MediaDebug.h" #include "media/stagefright/MediaDebug.h"
@@ -207,23 +208,46 @@ status_t WVMMediaSource::read(MediaBuffer **buffer, const ReadOptions *options)
WVStatus result = WV_GetEsData(mSession, mESSelector, (uint8_t *)mediaBuf->data() + offset, WVStatus result = WV_GetEsData(mSession, mESSelector, (uint8_t *)mediaBuf->data() + offset,
size, bytesRead, auStart, mDts, mPts, syncFrame); size, bytesRead, auStart, mDts, mPts, syncFrame);
if (result == WV_Status_End_Of_Media) {
mediaBuf->release(); if (result != WV_Status_OK &&
return ERROR_END_OF_STREAM; result != WV_Status_Warning_Need_Key &&
} else if (result == WV_Status_Terminate_Requested) { result != WV_Status_Warning_Download_Stalled) {
mediaBuf->release();
return ERROR_NO_LICENSE; status_t status;
} else if (result != WV_Status_OK) {
if (result != WV_Status_Warning_Need_Key && switch(result) {
result != WV_Status_Warning_Download_Stalled) case WV_Status_End_Of_Media:
{ status = ERROR_END_OF_STREAM;
break;
case WV_Status_Terminate_Requested:
status = ERROR_HEARTBEAT_TERMINATE_REQUESTED;
break;
case YT_HEARTBEAT_NO_ACTIVE_PURCHASE_AGREEMENT:
status = ERROR_HEARTBEAT_NO_ACTIVE_PURCHASE_AGREEMENT;
break;
case YT_HEARTBEAT_CONCURRENT_PLAYBACK:
status = ERROR_HEARTBEAT_CONCURRENT_PLAYBACK;
break;
case YT_HEARTBEAT_UNUSUAL_ACTIVITY:
status = ERROR_HEARTBEAT_UNUSUAL_ACTIVITY;
break;
case YT_HEARTBEAT_STREAMING_UNAVAILABLE:
status = ERROR_HEARTBEAT_STREAMING_UNAVAILABLE;
break;
case YT_HEARTBEAT_CANNOT_ACTIVATE_RENTAL:
status = ERROR_HEARTBEAT_CANNOT_ACTIVATE_RENTAL;
break;
default:
if (mLogOnce) { if (mLogOnce) {
LOGE("WV_GetEsData returned ERROR %d in WVMMediaSource::read\n", result); LOGE("WV_GetEsData returned ERROR %d in WVMMediaSource::read\n", result);
mLogOnce = false; mLogOnce = false;
} }
mediaBuf->release(); status = ERROR_IO;
return ERROR_IO; break;
} }
mediaBuf->release();
return status;
} }
if (sLastError != NO_ERROR) { if (sLastError != NO_ERROR) {

View File

@@ -0,0 +1,9 @@
enum {
// YouTube Heartbeat error codes
YT_HEARTBEAT_CANNOT_AUTHENTICATE = 513,
YT_HEARTBEAT_NO_ACTIVE_PURCHASE_AGREEMENT = 514,
YT_HEARTBEAT_CONCURRENT_PLAYBACK = 515,
YT_HEARTBEAT_UNUSUAL_ACTIVITY = 516,
YT_HEARTBEAT_STREAMING_UNAVAILABLE = 517,
YT_HEARTBEAT_CANNOT_ACTIVATE_RENTAL = 518,
};