mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1073003 - More Werror bustage fixes on a CLOSED TREE. r=bustage
--HG-- extra : rebase_source : 86466eea48ddfc7b5698d97ca574ed6cdf79326e extra : amend_source : 9eb590b24276a068bbb078152509b3c743bb40f8
This commit is contained in:
parent
eeea26bbd6
commit
7a523334f9
@ -34,9 +34,9 @@ IsPukCardLockType(IccLockType aLockType)
|
|||||||
case IccLockType::RcckPuk:
|
case IccLockType::RcckPuk:
|
||||||
case IccLockType::RspckPuk:
|
case IccLockType::RspckPuk:
|
||||||
return true;
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
@ -55,18 +55,18 @@ PRLogModuleInfo* gAudioOffloadPlayerLog;
|
|||||||
static const uint64_t OFFLOAD_PAUSE_MAX_MSECS = 60000ll;
|
static const uint64_t OFFLOAD_PAUSE_MAX_MSECS = 60000ll;
|
||||||
|
|
||||||
AudioOffloadPlayer::AudioOffloadPlayer(MediaOmxCommonDecoder* aObserver) :
|
AudioOffloadPlayer::AudioOffloadPlayer(MediaOmxCommonDecoder* aObserver) :
|
||||||
mObserver(aObserver),
|
|
||||||
mInputBuffer(nullptr),
|
|
||||||
mSampleRate(0),
|
|
||||||
mSeeking(false),
|
|
||||||
mSeekDuringPause(false),
|
|
||||||
mReachedEOS(false),
|
|
||||||
mSeekTimeUs(0),
|
|
||||||
mStartPosUs(0),
|
|
||||||
mPositionTimeMediaUs(-1),
|
|
||||||
mStarted(false),
|
mStarted(false),
|
||||||
mPlaying(false),
|
mPlaying(false),
|
||||||
mIsElementVisible(true)
|
mSeeking(false),
|
||||||
|
mReachedEOS(false),
|
||||||
|
mSeekDuringPause(false),
|
||||||
|
mIsElementVisible(true),
|
||||||
|
mSampleRate(0),
|
||||||
|
mStartPosUs(0),
|
||||||
|
mSeekTimeUs(0),
|
||||||
|
mPositionTimeMediaUs(-1),
|
||||||
|
mInputBuffer(nullptr),
|
||||||
|
mObserver(aObserver)
|
||||||
{
|
{
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
|
|
||||||
|
@ -33,11 +33,11 @@ extern PRLogModuleInfo* gAudioOffloadPlayerLog;
|
|||||||
using namespace android;
|
using namespace android;
|
||||||
|
|
||||||
AudioOutput::AudioOutput(int aSessionId, int aUid) :
|
AudioOutput::AudioOutput(int aSessionId, int aUid) :
|
||||||
mCallback(nullptr),
|
|
||||||
mCallbackCookie(nullptr),
|
mCallbackCookie(nullptr),
|
||||||
|
mCallback(nullptr),
|
||||||
mCallbackData(nullptr),
|
mCallbackData(nullptr),
|
||||||
mSessionId(aSessionId),
|
mUid(aUid),
|
||||||
mUid(aUid)
|
mSessionId(aSessionId)
|
||||||
{
|
{
|
||||||
#ifdef PR_LOGGING
|
#ifdef PR_LOGGING
|
||||||
if (!gAudioOffloadPlayerLog) {
|
if (!gAudioOffloadPlayerLog) {
|
||||||
|
@ -26,8 +26,6 @@
|
|||||||
|
|
||||||
#include "AudioSink.h"
|
#include "AudioSink.h"
|
||||||
|
|
||||||
#define LOG_TAG "AudioOffloadPlayer"
|
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,9 +12,8 @@
|
|||||||
#include <stagefright/MetaData.h>
|
#include <stagefright/MetaData.h>
|
||||||
#include "stagefright/MediaErrors.h"
|
#include "stagefright/MediaErrors.h"
|
||||||
|
|
||||||
#define LOG_TAG "MediaCodecProxy"
|
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
#define ALOG(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
|
#define MCP_LOG(...) __android_log_print(ANDROID_LOG_DEBUG, "MediaCodecProxy", __VA_ARGS__)
|
||||||
#define TIMEOUT_DEQUEUE_INPUTBUFFER_MS 1000000ll
|
#define TIMEOUT_DEQUEUE_INPUTBUFFER_MS 1000000ll
|
||||||
|
|
||||||
namespace android {
|
namespace android {
|
||||||
@ -183,7 +182,7 @@ MediaCodecProxy::releaseCodec()
|
|||||||
|
|
||||||
// Release MediaCodec
|
// Release MediaCodec
|
||||||
if (mCodec != nullptr) {
|
if (mCodec != nullptr) {
|
||||||
status_t err = mCodec->stop();
|
mCodec->stop();
|
||||||
mCodec->release();
|
mCodec->release();
|
||||||
mCodec = nullptr;
|
mCodec = nullptr;
|
||||||
}
|
}
|
||||||
@ -494,17 +493,16 @@ MediaCodecProxy::resourceCanceled()
|
|||||||
bool MediaCodecProxy::Prepare()
|
bool MediaCodecProxy::Prepare()
|
||||||
{
|
{
|
||||||
|
|
||||||
status_t err;
|
|
||||||
if (start() != OK) {
|
if (start() != OK) {
|
||||||
ALOG("Couldn't start MediaCodec");
|
MCP_LOG("Couldn't start MediaCodec");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (getInputBuffers(&mInputBuffers) != OK) {
|
if (getInputBuffers(&mInputBuffers) != OK) {
|
||||||
ALOG("Couldn't get input buffers from MediaCodec");
|
MCP_LOG("Couldn't get input buffers from MediaCodec");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (getOutputBuffers(&mOutputBuffers) != OK) {
|
if (getOutputBuffers(&mOutputBuffers) != OK) {
|
||||||
ALOG("Couldn't get output buffers from MediaCodec");
|
MCP_LOG("Couldn't get output buffers from MediaCodec");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -514,13 +512,13 @@ bool MediaCodecProxy::Prepare()
|
|||||||
bool MediaCodecProxy::UpdateOutputBuffers()
|
bool MediaCodecProxy::UpdateOutputBuffers()
|
||||||
{
|
{
|
||||||
if (mCodec == nullptr) {
|
if (mCodec == nullptr) {
|
||||||
ALOG("MediaCodec has not been inited from input!");
|
MCP_LOG("MediaCodec has not been inited from input!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t err = getOutputBuffers(&mOutputBuffers);
|
status_t err = getOutputBuffers(&mOutputBuffers);
|
||||||
if (err != OK){
|
if (err != OK){
|
||||||
ALOG("Couldn't update output buffers from MediaCodec");
|
MCP_LOG("Couldn't update output buffers from MediaCodec");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -530,14 +528,14 @@ status_t MediaCodecProxy::Input(const uint8_t* aData, uint32_t aDataSize,
|
|||||||
int64_t aTimestampUsecs, uint64_t aflags)
|
int64_t aTimestampUsecs, uint64_t aflags)
|
||||||
{
|
{
|
||||||
if (mCodec == nullptr) {
|
if (mCodec == nullptr) {
|
||||||
ALOG("MediaCodec has not been inited from input!");
|
MCP_LOG("MediaCodec has not been inited from input!");
|
||||||
return NO_INIT;
|
return NO_INIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t index;
|
size_t index;
|
||||||
status_t err = dequeueInputBuffer(&index, TIMEOUT_DEQUEUE_INPUTBUFFER_MS);
|
status_t err = dequeueInputBuffer(&index, TIMEOUT_DEQUEUE_INPUTBUFFER_MS);
|
||||||
if (err != OK) {
|
if (err != OK) {
|
||||||
ALOG("dequeueInputBuffer returned %d", err);
|
MCP_LOG("dequeueInputBuffer returned %d", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -554,7 +552,7 @@ status_t MediaCodecProxy::Input(const uint8_t* aData, uint32_t aDataSize,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (err != OK) {
|
if (err != OK) {
|
||||||
ALOG("queueInputBuffer returned %d", err);
|
MCP_LOG("queueInputBuffer returned %d", err);
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
return err;
|
return err;
|
||||||
@ -563,7 +561,7 @@ status_t MediaCodecProxy::Input(const uint8_t* aData, uint32_t aDataSize,
|
|||||||
status_t MediaCodecProxy::Output(MediaBuffer** aBuffer, int64_t aTimeoutUs)
|
status_t MediaCodecProxy::Output(MediaBuffer** aBuffer, int64_t aTimeoutUs)
|
||||||
{
|
{
|
||||||
if (mCodec == nullptr) {
|
if (mCodec == nullptr) {
|
||||||
ALOG("MediaCodec has not been inited from output!");
|
MCP_LOG("MediaCodec has not been inited from output!");
|
||||||
return NO_INIT;
|
return NO_INIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -138,15 +138,15 @@ void MediaOmxReader::CancelProcessCachedData()
|
|||||||
MediaOmxReader::MediaOmxReader(AbstractMediaDecoder *aDecoder)
|
MediaOmxReader::MediaOmxReader(AbstractMediaDecoder *aDecoder)
|
||||||
: MediaOmxCommonReader(aDecoder)
|
: MediaOmxCommonReader(aDecoder)
|
||||||
, mMutex("MediaOmxReader.Data")
|
, mMutex("MediaOmxReader.Data")
|
||||||
, mMP3FrameParser(-1)
|
|
||||||
, mHasVideo(false)
|
, mHasVideo(false)
|
||||||
, mHasAudio(false)
|
, mHasAudio(false)
|
||||||
, mVideoSeekTimeUs(-1)
|
, mVideoSeekTimeUs(-1)
|
||||||
, mAudioSeekTimeUs(-1)
|
, mAudioSeekTimeUs(-1)
|
||||||
|
, mLastParserDuration(-1)
|
||||||
, mSkipCount(0)
|
, mSkipCount(0)
|
||||||
, mUseParserDuration(false)
|
, mUseParserDuration(false)
|
||||||
, mLastParserDuration(-1)
|
|
||||||
, mIsShutdown(false)
|
, mIsShutdown(false)
|
||||||
|
, mMP3FrameParser(-1)
|
||||||
, mIsWaitingResources(false)
|
, mIsWaitingResources(false)
|
||||||
{
|
{
|
||||||
#ifdef PR_LOGGING
|
#ifdef PR_LOGGING
|
||||||
|
@ -84,8 +84,8 @@ struct AVCParamSet {
|
|||||||
{
|
{
|
||||||
// 2 bytes length value.
|
// 2 bytes length value.
|
||||||
uint8_t size[] = {
|
uint8_t size[] = {
|
||||||
(mSize & 0xFF00) >> 8, // MSB.
|
uint8_t((mSize & 0xFF00) >> 8), // MSB.
|
||||||
mSize & 0x00FF, // LSB.
|
uint8_t(mSize & 0x00FF), // LSB.
|
||||||
};
|
};
|
||||||
aOutputBuf->AppendElements(size, sizeof(size));
|
aOutputBuf->AppendElements(size, sizeof(size));
|
||||||
|
|
||||||
@ -189,7 +189,6 @@ GenerateAVCDescriptorBlob(sp<AMessage>& aConfigData,
|
|||||||
return ERROR_MALFORMED;
|
return ERROR_MALFORMED;
|
||||||
}
|
}
|
||||||
|
|
||||||
status_t result = OK;
|
|
||||||
if (aFormat == OMXVideoEncoder::BlobFormat::AVC_NAL) {
|
if (aFormat == OMXVideoEncoder::BlobFormat::AVC_NAL) {
|
||||||
// SPS + PPS.
|
// SPS + PPS.
|
||||||
aOutputBuf->AppendElements(sps->data(), sps->size());
|
aOutputBuf->AppendElements(sps->data(), sps->size());
|
||||||
|
@ -55,11 +55,11 @@ OMXCodecProxy::OMXCodecProxy(
|
|||||||
const sp<ANativeWindow> &nativeWindow)
|
const sp<ANativeWindow> &nativeWindow)
|
||||||
: mOMX(omx),
|
: mOMX(omx),
|
||||||
mSrcMeta(meta),
|
mSrcMeta(meta),
|
||||||
mIsEncoder(createEncoder),
|
|
||||||
mSource(source),
|
|
||||||
mComponentName(nullptr),
|
mComponentName(nullptr),
|
||||||
|
mIsEncoder(createEncoder),
|
||||||
mFlags(flags),
|
mFlags(flags),
|
||||||
mNativeWindow(nativeWindow),
|
mNativeWindow(nativeWindow),
|
||||||
|
mSource(source),
|
||||||
mState(MediaResourceManagerClient::CLIENT_STATE_WAIT_FOR_RESOURCE)
|
mState(MediaResourceManagerClient::CLIENT_STATE_WAIT_FOR_RESOURCE)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -287,11 +287,11 @@ ConvertPlanarYCbCrToNV12(const PlanarYCbCrData* aSource, uint8_t* aDestination)
|
|||||||
size_t vPixStride = horiSubsample * (1 + aSource->mCrSkip);
|
size_t vPixStride = horiSubsample * (1 + aSource->mCrSkip);
|
||||||
size_t lineStride = uvSize.height / uvHeight * aSource->mCbCrStride;
|
size_t lineStride = uvSize.height / uvHeight * aSource->mCbCrStride;
|
||||||
|
|
||||||
for (int i = 0; i < uvHeight; i++) {
|
for (size_t i = 0; i < uvHeight; i++) {
|
||||||
// 1st pixel per line.
|
// 1st pixel per line.
|
||||||
uint8_t* uSrc = u;
|
uint8_t* uSrc = u;
|
||||||
uint8_t* vSrc = v;
|
uint8_t* vSrc = v;
|
||||||
for (int j = 0; j < uvWidth; j++) {
|
for (size_t j = 0; j < uvWidth; j++) {
|
||||||
*aDestination++ = *uSrc;
|
*aDestination++ = *uSrc;
|
||||||
*aDestination++ = *vSrc;
|
*aDestination++ = *vSrc;
|
||||||
// Pick next source pixel.
|
// Pick next source pixel.
|
||||||
@ -495,10 +495,10 @@ OMXVideoEncoder::AppendFrame(nsTArray<uint8_t>* aOutputBuf,
|
|||||||
}
|
}
|
||||||
// Replace start code with data length.
|
// Replace start code with data length.
|
||||||
uint8_t length[] = {
|
uint8_t length[] = {
|
||||||
(aSize >> 24) & 0xFF,
|
uint8_t((aSize >> 24) & 0xFF),
|
||||||
(aSize >> 16) & 0xFF,
|
uint8_t((aSize >> 16) & 0xFF),
|
||||||
(aSize >> 8) & 0xFF,
|
uint8_t((aSize >> 8) & 0xFF),
|
||||||
aSize & 0xFF,
|
uint8_t(aSize & 0xFF),
|
||||||
};
|
};
|
||||||
aOutputBuf->AppendElements(length, sizeof(length));
|
aOutputBuf->AppendElements(length, sizeof(length));
|
||||||
aOutputBuf->AppendElements(aData + sizeof(length), aSize);
|
aOutputBuf->AppendElements(aData + sizeof(length), aSize);
|
||||||
@ -592,8 +592,8 @@ public:
|
|||||||
, mInputFlags(aInputFlags)
|
, mInputFlags(aInputFlags)
|
||||||
, mIndex(0)
|
, mIndex(0)
|
||||||
, mData(nullptr)
|
, mData(nullptr)
|
||||||
, mOffset(0)
|
|
||||||
, mCapicity(0)
|
, mCapicity(0)
|
||||||
|
, mOffset(0)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
~InputBufferHelper()
|
~InputBufferHelper()
|
||||||
@ -908,14 +908,14 @@ OMXAudioEncoder::AppendDecoderConfig(nsTArray<uint8_t>* aOutputBuf,
|
|||||||
// Decoder config descriptor
|
// Decoder config descriptor
|
||||||
const uint8_t decConfig[] = {
|
const uint8_t decConfig[] = {
|
||||||
0x04, // Decoder config descriptor tag.
|
0x04, // Decoder config descriptor tag.
|
||||||
15 + csdSize, // Size: following bytes + csd size.
|
uint8_t(15 + csdSize), // Size: following bytes + csd size.
|
||||||
0x40, // Object type: MPEG-4 audio.
|
0x40, // Object type: MPEG-4 audio.
|
||||||
0x15, // Stream type: audio, reserved: 1.
|
0x15, // Stream type: audio, reserved: 1.
|
||||||
0x00, 0x03, 0x00, // Buffer size: 768 (kAACFrameSize).
|
0x00, 0x03, 0x00, // Buffer size: 768 (kAACFrameSize).
|
||||||
0x00, 0x01, 0x77, 0x00, // Max bitrate: 96000 (kAACBitrate).
|
0x00, 0x01, 0x77, 0x00, // Max bitrate: 96000 (kAACBitrate).
|
||||||
0x00, 0x01, 0x77, 0x00, // Avg bitrate: 96000 (kAACBitrate).
|
0x00, 0x01, 0x77, 0x00, // Avg bitrate: 96000 (kAACBitrate).
|
||||||
0x05, // Decoder specific descriptor tag.
|
0x05, // Decoder specific descriptor tag.
|
||||||
csdSize, // Data size.
|
uint8_t(csdSize), // Data size.
|
||||||
};
|
};
|
||||||
// SL config descriptor.
|
// SL config descriptor.
|
||||||
const uint8_t slConfig[] = {
|
const uint8_t slConfig[] = {
|
||||||
|
@ -33,9 +33,8 @@
|
|||||||
#include "OMXCodecProxy.h"
|
#include "OMXCodecProxy.h"
|
||||||
#include "OmxDecoder.h"
|
#include "OmxDecoder.h"
|
||||||
|
|
||||||
#define LOG_TAG "OmxDecoder"
|
|
||||||
#include <android/log.h>
|
#include <android/log.h>
|
||||||
#define ALOG(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
|
#define OD_LOG(...) __android_log_print(ANDROID_LOG_DEBUG, "OmxDecoder", __VA_ARGS__)
|
||||||
|
|
||||||
#ifdef PR_LOGGING
|
#ifdef PR_LOGGING
|
||||||
PRLogModuleInfo *gOmxDecoderLog;
|
PRLogModuleInfo *gOmxDecoderLog;
|
||||||
@ -65,13 +64,13 @@ OmxDecoder::OmxDecoder(MediaResource *aResource,
|
|||||||
mAudioChannels(-1),
|
mAudioChannels(-1),
|
||||||
mAudioSampleRate(-1),
|
mAudioSampleRate(-1),
|
||||||
mDurationUs(-1),
|
mDurationUs(-1),
|
||||||
|
mVideoLastFrameTime(-1),
|
||||||
mVideoBuffer(nullptr),
|
mVideoBuffer(nullptr),
|
||||||
mAudioBuffer(nullptr),
|
mAudioBuffer(nullptr),
|
||||||
mIsVideoSeeking(false),
|
mIsVideoSeeking(false),
|
||||||
mAudioMetadataRead(false),
|
mAudioMetadataRead(false),
|
||||||
mAudioPaused(false),
|
mAudioPaused(false),
|
||||||
mVideoPaused(false),
|
mVideoPaused(false)
|
||||||
mVideoLastFrameTime(-1)
|
|
||||||
{
|
{
|
||||||
mLooper = new ALooper;
|
mLooper = new ALooper;
|
||||||
mLooper->setName("OmxDecoder");
|
mLooper->setName("OmxDecoder");
|
||||||
@ -119,7 +118,6 @@ bool OmxDecoder::Init(sp<MediaExtractor>& extractor) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char* extractorMime;
|
|
||||||
sp<MetaData> meta = extractor->getMetaData();
|
sp<MetaData> meta = extractor->getMetaData();
|
||||||
|
|
||||||
ssize_t audioTrackIndex = -1;
|
ssize_t audioTrackIndex = -1;
|
||||||
@ -177,7 +175,6 @@ bool OmxDecoder::EnsureMetadata() {
|
|||||||
}
|
}
|
||||||
if (mAudioTrack.get()) {
|
if (mAudioTrack.get()) {
|
||||||
durationUs = -1;
|
durationUs = -1;
|
||||||
const char* audioMime;
|
|
||||||
sp<MetaData> meta = mAudioTrack->getFormat();
|
sp<MetaData> meta = mAudioTrack->getFormat();
|
||||||
|
|
||||||
if ((durationUs == -1) && meta->findInt64(kKeyDuration, &durationUs)) {
|
if ((durationUs == -1) && meta->findInt64(kKeyDuration, &durationUs)) {
|
||||||
@ -604,7 +601,7 @@ bool OmxDecoder::ReadVideo(VideoFrame *aFrame, int64_t aTimeUs,
|
|||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
} else if (err != OK) {
|
} else if (err != OK) {
|
||||||
ALOG("Unexpected error when seeking to %lld", aTimeUs);
|
OD_LOG("Unexpected error when seeking to %lld", aTimeUs);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// For some codecs, the length of first decoded frame after seek is 0.
|
// For some codecs, the length of first decoded frame after seek is 0.
|
||||||
|
@ -148,7 +148,7 @@ void MediaResourceManagerService::onMessageReceived(const sp<AMessage> &msg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const sp<IBinder>& req = mResources.nextRequest(type);
|
sp<IBinder> req = mResources.nextRequest(type);
|
||||||
mResources.aquireResource(req, type, found);
|
mResources.aquireResource(req, type, found);
|
||||||
// Notify resource assignment to the client.
|
// Notify resource assignment to the client.
|
||||||
sp<IMediaResourceManagerClient> client = interface_cast<IMediaResourceManagerClient>(req);
|
sp<IMediaResourceManagerClient> client = interface_cast<IMediaResourceManagerClient>(req);
|
||||||
@ -292,7 +292,7 @@ uint32_t MediaResourceManagerService::ResourceTable::countRequests(ResourceType
|
|||||||
return queue.size();
|
return queue.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
const sp<IBinder>& MediaResourceManagerService::ResourceTable::nextRequest(ResourceType type)
|
sp<IBinder> MediaResourceManagerService::ResourceTable::nextRequest(ResourceType type)
|
||||||
{
|
{
|
||||||
ssize_t found = mMap.indexOfKey(type);
|
ssize_t found = mMap.indexOfKey(type);
|
||||||
if (found == NAME_NOT_FOUND) {
|
if (found == NAME_NOT_FOUND) {
|
||||||
@ -333,7 +333,7 @@ status_t MediaResourceManagerService::ResourceTable::dequeueRequest(ResourceType
|
|||||||
status_t MediaResourceManagerService::ResourceTable::forgetClient(const sp<IBinder>& client)
|
status_t MediaResourceManagerService::ResourceTable::forgetClient(const sp<IBinder>& client)
|
||||||
{
|
{
|
||||||
// Traverse all resources.
|
// Traverse all resources.
|
||||||
for (int i = 0; i < mMap.size(); i++) {
|
for (size_t i = 0; i < mMap.size(); i++) {
|
||||||
forgetClient(client, mMap.keyAt(i));
|
forgetClient(client, mMap.keyAt(i));
|
||||||
}
|
}
|
||||||
return OK;
|
return OK;
|
||||||
@ -358,7 +358,7 @@ status_t MediaResourceManagerService::ResourceTable::forgetClient(const sp<IBind
|
|||||||
|
|
||||||
// Revoke ownership for given client.
|
// Revoke ownership for given client.
|
||||||
Slots& slots = resources.mSlots;
|
Slots& slots = resources.mSlots;
|
||||||
for (int i = 0; i < slots.size(); i++) {
|
for (size_t i = 0; i < slots.size(); i++) {
|
||||||
ResourceSlot& slot = slots.editItemAt(i);
|
ResourceSlot& slot = slots.editItemAt(i);
|
||||||
if (client.get() == slot.mClient.get()) {
|
if (client.get() == slot.mClient.get()) {
|
||||||
slot.mClient = nullptr;
|
slot.mClient = nullptr;
|
||||||
|
@ -99,7 +99,7 @@ private:
|
|||||||
// Request operations.
|
// Request operations.
|
||||||
bool hasRequest(ResourceType type);
|
bool hasRequest(ResourceType type);
|
||||||
uint32_t countRequests(ResourceType type);
|
uint32_t countRequests(ResourceType type);
|
||||||
const sp<IBinder>& nextRequest(ResourceType type);
|
sp<IBinder> nextRequest(ResourceType type);
|
||||||
status_t enqueueRequest(const sp<IBinder>& client, ResourceType type);
|
status_t enqueueRequest(const sp<IBinder>& client, ResourceType type);
|
||||||
status_t dequeueRequest(ResourceType type);
|
status_t dequeueRequest(ResourceType type);
|
||||||
status_t forgetClient(const sp<IBinder>& client, ResourceType type);
|
status_t forgetClient(const sp<IBinder>& client, ResourceType type);
|
||||||
|
@ -24,6 +24,14 @@ SOURCES += [
|
|||||||
|
|
||||||
include('/ipc/chromium/chromium-config.mozbuild')
|
include('/ipc/chromium/chromium-config.mozbuild')
|
||||||
|
|
||||||
|
# Suppress some GCC/clang warnings being treated as errors:
|
||||||
|
# - about multi-character constants which are used in codec-related code
|
||||||
|
if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
|
||||||
|
CXXFLAGS += [
|
||||||
|
'-Wno-error=multichar'
|
||||||
|
]
|
||||||
|
|
||||||
|
FINAL_LIBRARY = 'xul'
|
||||||
CXXFLAGS += [
|
CXXFLAGS += [
|
||||||
'-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [
|
'-I%s/%s' % (CONFIG['ANDROID_SOURCE'], d) for d in [
|
||||||
'frameworks/base/include',
|
'frameworks/base/include',
|
||||||
|
@ -79,6 +79,16 @@ if CONFIG['ANDROID_VERSION'] >= '18':
|
|||||||
|
|
||||||
include('/ipc/chromium/chromium-config.mozbuild')
|
include('/ipc/chromium/chromium-config.mozbuild')
|
||||||
|
|
||||||
|
# Suppress some GCC/clang warnings being treated as errors:
|
||||||
|
# - about attributes on forward declarations for types that are already
|
||||||
|
# defined, which complains about an important MOZ_EXPORT for android::AString
|
||||||
|
# - about multi-character constants which are used in codec-related code
|
||||||
|
if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
|
||||||
|
CXXFLAGS += [
|
||||||
|
'-Wno-error=attributes',
|
||||||
|
'-Wno-error=multichar'
|
||||||
|
]
|
||||||
|
|
||||||
FINAL_LIBRARY = 'xul'
|
FINAL_LIBRARY = 'xul'
|
||||||
LOCAL_INCLUDES += [
|
LOCAL_INCLUDES += [
|
||||||
'/dom/base',
|
'/dom/base',
|
||||||
|
@ -231,7 +231,7 @@ TemporaryRef<gfx::DataSourceSurface>
|
|||||||
GrallocTextureHostOGL::GetAsSurface() {
|
GrallocTextureHostOGL::GetAsSurface() {
|
||||||
android::GraphicBuffer* graphicBuffer = GetGraphicBufferFromDesc(mGrallocHandle).get();
|
android::GraphicBuffer* graphicBuffer = GetGraphicBufferFromDesc(mGrallocHandle).get();
|
||||||
uint8_t* grallocData;
|
uint8_t* grallocData;
|
||||||
int32_t rv = graphicBuffer->lock(GRALLOC_USAGE_SW_READ_OFTEN, reinterpret_cast<void**>(&grallocData));
|
graphicBuffer->lock(GRALLOC_USAGE_SW_READ_OFTEN, reinterpret_cast<void**>(&grallocData));
|
||||||
RefPtr<gfx::DataSourceSurface> grallocTempSurf =
|
RefPtr<gfx::DataSourceSurface> grallocTempSurf =
|
||||||
gfx::Factory::CreateWrappingDataSourceSurface(grallocData,
|
gfx::Factory::CreateWrappingDataSourceSurface(grallocData,
|
||||||
graphicBuffer->getStride() * android::bytesPerPixel(graphicBuffer->getPixelFormat()),
|
graphicBuffer->getStride() * android::bytesPerPixel(graphicBuffer->getPixelFormat()),
|
||||||
|
@ -330,32 +330,6 @@ GetThreadInfo(pthread_t threadID) {
|
|||||||
return tinfo;
|
return tinfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Get thread info using the specified native thread ID.
|
|
||||||
*
|
|
||||||
* @return thread_info_t with nativeThreadID == specified threadID
|
|
||||||
*/
|
|
||||||
static thread_info_t*
|
|
||||||
GetThreadInfo(pid_t threadID) {
|
|
||||||
if (sIsNuwaProcess) {
|
|
||||||
REAL(pthread_mutex_lock)(&sThreadCountLock);
|
|
||||||
}
|
|
||||||
thread_info_t *thrinfo = nullptr;
|
|
||||||
for (thread_info_t *tinfo = sAllThreads.getFirst();
|
|
||||||
tinfo;
|
|
||||||
tinfo = tinfo->getNext()) {
|
|
||||||
if (tinfo->origNativeThreadID == threadID) {
|
|
||||||
thrinfo = tinfo;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (sIsNuwaProcess) {
|
|
||||||
pthread_mutex_unlock(&sThreadCountLock);
|
|
||||||
}
|
|
||||||
|
|
||||||
return thrinfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if !defined(HAVE_THREAD_TLS_KEYWORD)
|
#if !defined(HAVE_THREAD_TLS_KEYWORD)
|
||||||
/**
|
/**
|
||||||
* Get thread info of the current thread.
|
* Get thread info of the current thread.
|
||||||
@ -909,11 +883,16 @@ static int sRecreateGatePassed = 0;
|
|||||||
* 3) Freeze point 2: blocks the current thread by acquiring sThreadFreezeLock.
|
* 3) Freeze point 2: blocks the current thread by acquiring sThreadFreezeLock.
|
||||||
* If freezing is not enabled then revert the counter change in freeze
|
* If freezing is not enabled then revert the counter change in freeze
|
||||||
* point 1.
|
* point 1.
|
||||||
|
*
|
||||||
|
* Note: the purpose of the '(void) variable;' statements is to avoid
|
||||||
|
* -Wunused-but-set-variable warnings.
|
||||||
*/
|
*/
|
||||||
#define THREAD_FREEZE_POINT1() \
|
#define THREAD_FREEZE_POINT1() \
|
||||||
bool freezeCountChg = false; \
|
bool freezeCountChg = false; \
|
||||||
bool recreated = false; \
|
bool recreated = false; \
|
||||||
|
(void) recreated; \
|
||||||
volatile bool freezePoint2 = false; \
|
volatile bool freezePoint2 = false; \
|
||||||
|
(void) freezePoint2; \
|
||||||
thread_info_t *tinfo; \
|
thread_info_t *tinfo; \
|
||||||
if (sIsNuwaProcess && \
|
if (sIsNuwaProcess && \
|
||||||
(tinfo = CUR_THREAD_INFO) && \
|
(tinfo = CUR_THREAD_INFO) && \
|
||||||
|
Loading…
Reference in New Issue
Block a user