Merge b2g-inbound to m-c. a=merge

This commit is contained in:
Ryan VanderMeulen 2015-03-31 13:58:31 -04:00
commit 929954d38f
52 changed files with 205 additions and 93 deletions

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="ef937d1aca7c4cf89ecb5cc43ae8c21c2000a9db">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -19,11 +19,11 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="93f9ba577f68d772093987c2f1c0a4ae293e1802"/>
<project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="527d1c939ee57deb7192166e56e2a3fffa8cb087"/>
<project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="3b3407510d6e2c60242e8b9b5f2bc1783ca0a0e4"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ed2cf97a6c37a4bbd0bbbbffe06ec7136d8c79ff"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="34ea6163f9f0e0122fb0bb03607eccdca31ced7a"/>
<!-- Stock Android things -->

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ed2cf97a6c37a4bbd0bbbbffe06ec7136d8c79ff"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="d99ab92d0b829a6c78b5284481d5b236d3901f11"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="ef937d1aca7c4cf89ecb5cc43ae8c21c2000a9db">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="52775e03a2d8532429dff579cb2cd56718e488c3">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -19,11 +19,11 @@
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="fake-dalvik" path="dalvik" remote="b2g" revision="ca1f327d5acc198bb4be62fa51db2c039032c9ce"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="93f9ba577f68d772093987c2f1c0a4ae293e1802"/>
<project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="527d1c939ee57deb7192166e56e2a3fffa8cb087"/>
<project name="platform_external_qemu" path="external/qemu" remote="b2g" revision="3b3407510d6e2c60242e8b9b5f2bc1783ca0a0e4"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ed2cf97a6c37a4bbd0bbbbffe06ec7136d8c79ff"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="34ea6163f9f0e0122fb0bb03607eccdca31ced7a"/>
<!-- Stock Android things -->

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="ef937d1aca7c4cf89ecb5cc43ae8c21c2000a9db">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -17,7 +17,7 @@
</project>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ed2cf97a6c37a4bbd0bbbbffe06ec7136d8c79ff"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="d99ab92d0b829a6c78b5284481d5b236d3901f11"/>

View File

@ -1,9 +1,9 @@
{
"git": {
"git_revision": "1d14f4a6809de81ebd638117ed4ddd3b1b18f033",
"git_revision": "03164bd160809747e6a198e0dba1b7c3ee7789f5",
"remote": "https://git.mozilla.org/releases/gaia.git",
"branch": ""
},
"revision": "f69a6e0dc3d86a13a8a0960a21e599c3fa9e7845",
"revision": "696e7b30b79f77008c68c3df0a5d501bb8718c0c",
"repo_path": "integration/gaia-central"
}

View File

@ -17,7 +17,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="5ef30994f4778b4052e58a4383dbe7890048c87e"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="ed2cf97a6c37a4bbd0bbbbffe06ec7136d8c79ff"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="d99ab92d0b829a6c78b5284481d5b236d3901f11"/>

View File

@ -15,7 +15,7 @@
<project name="platform_build" path="build" remote="b2g" revision="52775e03a2d8532429dff579cb2cd56718e488c3">
<copyfile dest="Makefile" src="core/root.mk"/>
</project>
<project name="gaia" path="gaia" remote="mozillaorg" revision="1d14f4a6809de81ebd638117ed4ddd3b1b18f033"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="03164bd160809747e6a198e0dba1b7c3ee7789f5"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="2aa4a75c63cd6e93870a8bddbba45f863cbfd9a3"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="1b3591a50ed352fc6ddb77462b7b35d0bfa555a3"/>

View File

@ -433,6 +433,19 @@ enum BluetoothAvrcpPlayerAttribute {
AVRCP_PLAYER_ATTRIBUTE_SCAN
};
enum BluetoothAvrcpPlayerRepeatValue {
AVRCP_PLAYER_VAL_OFF_REPEAT = 0x01,
AVRCP_PLAYER_VAL_SINGLE_REPEAT = 0x02,
AVRCP_PLAYER_VAL_ALL_REPEAT = 0x03,
AVRCP_PLAYER_VAL_GROUP_REPEAT = 0x04,
};
enum BluetoothAvrcpPlayerShuffleValue {
AVRCP_PLAYER_VAL_OFF_SHUFFLE = 0x01,
AVRCP_PLAYER_VAL_ALL_SHUFFLE = 0x02,
AVRCP_PLAYER_VAL_GROUP_SHUFFLE = 0x03,
};
enum BluetoothAvrcpStatus {
AVRCP_STATUS_BAD_COMMAND,
AVRCP_STATUS_BAD_PARAMETER,

View File

@ -926,6 +926,14 @@ BluetoothA2dpManager::UpdateRegisterNotification(BluetoothAvrcpEvent aEvent,
}
mPlaybackInterval = aParam;
break;
case AVRCP_EVENT_APP_SETTINGS_CHANGED:
mAppSettingsChangedNotifyType = AVRCP_NTF_INTERIM;
param.mNumAttr = 2;
param.mIds[0] = AVRCP_PLAYER_ATTRIBUTE_REPEAT;
param.mValues[0] = AVRCP_PLAYER_VAL_OFF_REPEAT;
param.mIds[1] = AVRCP_PLAYER_ATTRIBUTE_SHUFFLE;
param.mValues[1] = AVRCP_PLAYER_VAL_OFF_SHUFFLE;
break;
default:
break;
}

View File

@ -161,6 +161,7 @@ private:
BluetoothAvrcpNotification mPlayStatusChangedNotifyType;
BluetoothAvrcpNotification mTrackChangedNotifyType;
BluetoothAvrcpNotification mPlayPosChangedNotifyType;
BluetoothAvrcpNotification mAppSettingsChangedNotifyType;
};
END_BLUETOOTH_NAMESPACE

View File

@ -1861,7 +1861,8 @@ NS_IMETHODIMP HTMLMediaElement::SetMuted(bool aMuted)
}
already_AddRefed<DOMMediaStream>
HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded)
HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded,
MediaStreamGraph* aGraph)
{
nsIDOMWindow* window = OwnerDoc()->GetInnerWindow();
if (!window) {
@ -1873,7 +1874,7 @@ HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded)
}
#endif
OutputMediaStream* out = mOutputStreams.AppendElement();
out->mStream = DOMMediaStream::CreateTrackUnionStream(window);
out->mStream = DOMMediaStream::CreateTrackUnionStream(window, aGraph);
nsRefPtr<nsIPrincipal> principal = GetCurrentPrincipal();
out->mStream->CombineWithPrincipal(principal);
out->mStream->SetCORSMode(mCORSMode);
@ -1885,8 +1886,8 @@ HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded)
// back into the output stream.
out->mStream->GetStream()->ChangeExplicitBlockerCount(1);
if (mDecoder) {
mDecoder->AddOutputStream(
out->mStream->GetStream()->AsProcessedStream(), aFinishWhenEnded);
mDecoder->AddOutputStream(out->mStream->GetStream()->AsProcessedStream(),
aFinishWhenEnded);
if (mReadyState >= HAVE_METADATA) {
// Expose the tracks to JS directly.
if (HasAudio()) {
@ -1904,9 +1905,10 @@ HTMLMediaElement::CaptureStreamInternal(bool aFinishWhenEnded)
}
already_AddRefed<DOMMediaStream>
HTMLMediaElement::MozCaptureStream(ErrorResult& aRv)
HTMLMediaElement::MozCaptureStream(ErrorResult& aRv,
MediaStreamGraph* aGraph)
{
nsRefPtr<DOMMediaStream> stream = CaptureStreamInternal(false);
nsRefPtr<DOMMediaStream> stream = CaptureStreamInternal(false, aGraph);
if (!stream) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
@ -1916,9 +1918,10 @@ HTMLMediaElement::MozCaptureStream(ErrorResult& aRv)
}
already_AddRefed<DOMMediaStream>
HTMLMediaElement::MozCaptureStreamUntilEnded(ErrorResult& aRv)
HTMLMediaElement::MozCaptureStreamUntilEnded(ErrorResult& aRv,
MediaStreamGraph* aGraph)
{
nsRefPtr<DOMMediaStream> stream = CaptureStreamInternal(true);
nsRefPtr<DOMMediaStream> stream = CaptureStreamInternal(true, aGraph);
if (!stream) {
aRv.Throw(NS_ERROR_FAILURE);
return nullptr;
@ -2790,7 +2793,7 @@ nsresult HTMLMediaElement::FinishDecoderSetup(MediaDecoder* aDecoder,
for (uint32_t i = 0; i < mOutputStreams.Length(); ++i) {
OutputMediaStream* ms = &mOutputStreams[i];
aDecoder->AddOutputStream(ms->mStream->GetStream()->AsProcessedStream(),
ms->mFinishWhenEnded);
ms->mFinishWhenEnded);
}
// Update decoder principal before we start decoding, since it

View File

@ -576,9 +576,11 @@ public:
return mAutoplayEnabled;
}
already_AddRefed<DOMMediaStream> MozCaptureStream(ErrorResult& aRv);
already_AddRefed<DOMMediaStream> MozCaptureStream(ErrorResult& aRv,
MediaStreamGraph* aGraph = nullptr);
already_AddRefed<DOMMediaStream> MozCaptureStreamUntilEnded(ErrorResult& aRv);
already_AddRefed<DOMMediaStream> MozCaptureStreamUntilEnded(ErrorResult& aRv,
MediaStreamGraph* aGraph = nullptr);
bool MozAudioCaptured() const
{
@ -724,7 +726,8 @@ protected:
* When aFinishWhenEnded is false, ending playback does not finish the stream.
* The stream will never finish.
*/
already_AddRefed<DOMMediaStream> CaptureStreamInternal(bool aFinishWhenEnded);
already_AddRefed<DOMMediaStream> CaptureStreamInternal(bool aFinishWhenEnded,
MediaStreamGraph* aGraph = nullptr);
/**
* Initialize a decoder as a clone of an existing decoder in another

View File

@ -274,19 +274,26 @@ DOMMediaStream::IsFinished()
}
void
DOMMediaStream::InitSourceStream(nsIDOMWindow* aWindow)
DOMMediaStream::InitSourceStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph)
{
mWindow = aWindow;
MediaStreamGraph* gm = MediaStreamGraph::GetInstance();
InitStreamCommon(gm->CreateSourceStream(this));
if (!aGraph) {
aGraph = MediaStreamGraph::GetInstance();
}
InitStreamCommon(aGraph->CreateSourceStream(this));
}
void
DOMMediaStream::InitTrackUnionStream(nsIDOMWindow* aWindow)
DOMMediaStream::InitTrackUnionStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph)
{
mWindow = aWindow;
MediaStreamGraph* gm = MediaStreamGraph::GetInstance();
InitStreamCommon(gm->CreateTrackUnionStream(this));
if (!aGraph) {
aGraph = MediaStreamGraph::GetInstance();
}
InitStreamCommon(aGraph->CreateTrackUnionStream(this));
}
void
@ -300,18 +307,20 @@ DOMMediaStream::InitStreamCommon(MediaStream* aStream)
}
already_AddRefed<DOMMediaStream>
DOMMediaStream::CreateSourceStream(nsIDOMWindow* aWindow)
DOMMediaStream::CreateSourceStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph)
{
nsRefPtr<DOMMediaStream> stream = new DOMMediaStream();
stream->InitSourceStream(aWindow);
stream->InitSourceStream(aWindow, aGraph);
return stream.forget();
}
already_AddRefed<DOMMediaStream>
DOMMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow)
DOMMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph)
{
nsRefPtr<DOMMediaStream> stream = new DOMMediaStream();
stream->InitTrackUnionStream(aWindow);
stream->InitTrackUnionStream(aWindow, aGraph);
return stream.forget();
}
@ -623,18 +632,20 @@ DOMLocalMediaStream::Stop()
}
already_AddRefed<DOMLocalMediaStream>
DOMLocalMediaStream::CreateSourceStream(nsIDOMWindow* aWindow)
DOMLocalMediaStream::CreateSourceStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph)
{
nsRefPtr<DOMLocalMediaStream> stream = new DOMLocalMediaStream();
stream->InitSourceStream(aWindow);
stream->InitSourceStream(aWindow, aGraph);
return stream.forget();
}
already_AddRefed<DOMLocalMediaStream>
DOMLocalMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow)
DOMLocalMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph)
{
nsRefPtr<DOMLocalMediaStream> stream = new DOMLocalMediaStream();
stream->InitTrackUnionStream(aWindow);
stream->InitTrackUnionStream(aWindow, aGraph);
return stream.forget();
}
@ -649,9 +660,10 @@ DOMAudioNodeMediaStream::~DOMAudioNodeMediaStream()
already_AddRefed<DOMAudioNodeMediaStream>
DOMAudioNodeMediaStream::CreateTrackUnionStream(nsIDOMWindow* aWindow,
AudioNode* aNode)
AudioNode* aNode,
MediaStreamGraph* aGraph)
{
nsRefPtr<DOMAudioNodeMediaStream> stream = new DOMAudioNodeMediaStream(aNode);
stream->InitTrackUnionStream(aWindow);
stream->InitTrackUnionStream(aWindow, aGraph);
return stream.forget();
}

View File

@ -34,6 +34,7 @@ namespace mozilla {
class DOMLocalMediaStream;
class MediaStream;
class MediaEngineSource;
class MediaStreamGraph;
namespace dom {
class AudioNode;
@ -180,14 +181,14 @@ public:
/**
* Create an nsDOMMediaStream whose underlying stream is a SourceMediaStream.
*/
static already_AddRefed<DOMMediaStream>
CreateSourceStream(nsIDOMWindow* aWindow);
static already_AddRefed<DOMMediaStream> CreateSourceStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph = nullptr);
/**
* Create an nsDOMMediaStream whose underlying stream is a TrackUnionStream.
*/
static already_AddRefed<DOMMediaStream>
CreateTrackUnionStream(nsIDOMWindow* aWindow);
static already_AddRefed<DOMMediaStream> CreateTrackUnionStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph = nullptr);
void SetLogicalStreamStartTime(StreamTime aTime)
{
@ -249,8 +250,10 @@ protected:
virtual ~DOMMediaStream();
void Destroy();
void InitSourceStream(nsIDOMWindow* aWindow);
void InitTrackUnionStream(nsIDOMWindow* aWindow);
void InitSourceStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph = nullptr);
void InitTrackUnionStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph = nullptr);
void InitStreamCommon(MediaStream* aStream);
already_AddRefed<AudioTrack> CreateAudioTrack(AudioStreamTrack* aStreamTrack);
already_AddRefed<VideoTrack> CreateVideoTrack(VideoStreamTrack* aStreamTrack);
@ -331,13 +334,15 @@ public:
* Create an nsDOMLocalMediaStream whose underlying stream is a SourceMediaStream.
*/
static already_AddRefed<DOMLocalMediaStream>
CreateSourceStream(nsIDOMWindow* aWindow);
CreateSourceStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph = nullptr);
/**
* Create an nsDOMLocalMediaStream whose underlying stream is a TrackUnionStream.
*/
static already_AddRefed<DOMLocalMediaStream>
CreateTrackUnionStream(nsIDOMWindow* aWindow);
CreateTrackUnionStream(nsIDOMWindow* aWindow,
MediaStreamGraph* aGraph = nullptr);
protected:
virtual ~DOMLocalMediaStream();
@ -360,7 +365,8 @@ public:
*/
static already_AddRefed<DOMAudioNodeMediaStream>
CreateTrackUnionStream(nsIDOMWindow* aWindow,
AudioNode* aNode);
AudioNode* aNode,
MediaStreamGraph* aGraph = nullptr);
protected:
~DOMAudioNodeMediaStream();

View File

@ -480,16 +480,21 @@ void MediaDecoder::UpdateStreamBlockingForStateMachinePlaying()
}
}
void MediaDecoder::RecreateDecodedStream(int64_t aStartTimeUSecs)
void MediaDecoder::RecreateDecodedStream(int64_t aStartTimeUSecs,
MediaStreamGraph* aGraph)
{
MOZ_ASSERT(NS_IsMainThread());
ReentrantMonitorAutoEnter mon(GetReentrantMonitor());
DECODER_LOG("RecreateDecodedStream aStartTimeUSecs=%lld!", aStartTimeUSecs);
if (!aGraph) {
aGraph = mDecodedStream->mStream->Graph();
}
DestroyDecodedStream();
mDecodedStream = new DecodedStreamData(this, aStartTimeUSecs,
MediaStreamGraph::GetInstance()->CreateSourceStream(nullptr));
mDecodedStream = new DecodedStreamData(this,
aStartTimeUSecs,
aGraph->CreateSourceStream(nullptr));
// Note that the delay between removing ports in DestroyDecodedStream
// and adding new ones won't cause a glitch since all graph operations
@ -522,7 +527,7 @@ void MediaDecoder::AddOutputStream(ProcessedMediaStream* aStream,
if (!GetDecodedStream()) {
int64_t t = mDecoderStateMachine ?
mDecoderStateMachine->GetCurrentTimeUs() : 0;
RecreateDecodedStream(t);
RecreateDecodedStream(t, aStream->Graph());
}
OutputStreamData* os = mOutputStreams.AppendElement();
os->Init(this, aStream);

View File

@ -519,7 +519,8 @@ public:
* aStartTimeUSecs is relative to the state machine's mStartTime.
* Decoder monitor must be held.
*/
void RecreateDecodedStream(int64_t aStartTimeUSecs);
void RecreateDecodedStream(int64_t aStartTimeUSecs,
MediaStreamGraph* aGraph = nullptr);
/**
* Call this when mDecoderStateMachine or mDecoderStateMachine->IsPlaying() changes.
* Decoder monitor must be held.

View File

@ -1823,8 +1823,10 @@ MediaDecoderStateMachine::InitiateSeek()
// as far as fast-seek is concerned. It also fix the problem where stream
// clock seems to go backwards during seeking.
nsCOMPtr<nsIRunnable> event =
NS_NewRunnableMethodWithArg<int64_t>(mDecoder, &MediaDecoder::RecreateDecodedStream,
seekTime - mStartTime);
NS_NewRunnableMethodWithArgs<int64_t, MediaStreamGraph*>(mDecoder,
&MediaDecoder::RecreateDecodedStream,
seekTime - mStartTime,
nullptr);
NS_DispatchToMainThread(event, NS_DISPATCH_NORMAL);
}

View File

@ -1910,6 +1910,7 @@ MediaStream::SetGraphImpl(MediaStreamGraphImpl* aGraph)
{
MOZ_ASSERT(!mGraph, "Should only be called once");
mGraph = aGraph;
mAudioChannelType = static_cast<AudioChannel>(aGraph->AudioChannel());
mBuffer.InitGraphRate(aGraph->GraphRate());
}

View File

@ -300,7 +300,8 @@ AudioContext::CreateMediaElementSource(HTMLMediaElement& aMediaElement,
return nullptr;
}
#endif
nsRefPtr<DOMMediaStream> stream = aMediaElement.MozCaptureStream(aRv);
nsRefPtr<DOMMediaStream> stream = aMediaElement.MozCaptureStream(aRv,
mDestination->Stream()->Graph());
if (aRv.Failed()) {
return nullptr;
}

View File

@ -18,7 +18,7 @@
"use strict";
/* globals Components, XPCOMUtils, SE, dump, libcutils, Services,
iccProvider, SEUtils */
iccProvider, iccService, SEUtils */
const { interfaces: Ci, utils: Cu } = Components;
@ -47,6 +47,10 @@ XPCOMUtils.defineLazyServiceGetter(this, "iccProvider",
"@mozilla.org/ril/content-helper;1",
"nsIIccProvider");
XPCOMUtils.defineLazyServiceGetter(this, "iccService",
"@mozilla.org/icc/iccservice;1",
"nsIIccService");
const UICCCONNECTOR_CONTRACTID =
"@mozilla.org/secureelement/connector/uicc;1";
const UICCCONNECTOR_CID =
@ -84,7 +88,8 @@ UiccConnector.prototype = {
_init: function() {
Services.obs.addObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID, false);
iccProvider.registerIccMsg(PREFERRED_UICC_CLIENTID, this);
let icc = iccService.getIccByServiceId(PREFERRED_UICC_CLIENTID);
icc.registerListener(this);
// Update the state in order to avoid race condition.
// By this time, 'notifyCardStateChanged (with proper card state)'
@ -94,21 +99,22 @@ UiccConnector.prototype = {
_shutdown: function() {
Services.obs.removeObserver(this, NS_XPCOM_SHUTDOWN_OBSERVER_ID);
iccProvider.unregisterIccMsg(PREFERRED_UICC_CLIENTID, this);
let icc = iccService.getIccByServiceId(PREFERRED_UICC_CLIENTID);
icc.unregisterListener(this);
},
_updatePresenceState: function() {
// Consider following Card states as not quite ready for performing
// IccChannel* related commands
let notReadyStates = [
"unknown",
"illegal",
"personalizationInProgress",
"permanentBlocked",
let uiccNotReadyStates = [
Ci.nsIIcc.CARD_STATE_UNKNOWN,
Ci.nsIIcc.CARD_STATE_ILLEGAL,
Ci.nsIIcc.CARD_STATE_PERSONALIZATION_IN_PROGRESS,
Ci.nsIIcc.CARD_STATE_PERMANENT_BLOCKED,
Ci.nsIIcc.CARD_STATE_UNDETECTED
];
let cardState = iccProvider.getCardState(PREFERRED_UICC_CLIENTID);
let cardState = iccService.getIccByServiceId(PREFERRED_UICC_CLIENTID).cardState;
this._isPresent = cardState !== null &&
notReadyStates.indexOf(cardState) == -1;
uiccNotReadyStates.indexOf(cardState) == -1;
},
// See GP Spec, 11.1.4 Class Byte Coding

View File

@ -221,6 +221,10 @@ class Graph(object):
@CommandArgument('--project',
required=True,
help='Project to use for creating task graph. Example: --project=try')
@CommandArgument('--pushlog-id',
dest='pushlog_id',
required=False,
default=0)
@CommandArgument('--owner',
required=True,
help='email address of who owns this graph')
@ -247,6 +251,8 @@ class Graph(object):
job_graph = parse_commit(message, jobs)
# Template parameters used when expanding the graph
parameters = dict(gaia_info().items() + {
'project': project,
'pushlog_id': params.get('pushlog_id', 0),
'docker_image': docker_image,
'base_repository': params['base_repository'] or \
params['head_repository'],

View File

@ -17,6 +17,9 @@ task:
provisionerId: aws-provisioner
schedulerId: task-graph-scheduler
routes:
- 'index.gecko.v1.{{project}}.revision.{{head_rev}}.{{build_name}}.{{build_type}}'
- 'index.gecko.v1.{{project}}.latest.{{build_name}}.{{build_type}}'
scopes:
# Nearly all of our build tasks use tc-vcs so just include the scope across
# the board.
@ -54,6 +57,8 @@ task:
MOZHARNESS_REF: '{{mozharness_ref}}'
extra:
index:
rank: {{pushlog_id}}
treeherder:
groupSymbol: tc
groupName: Submitted by taskcluster

View File

@ -1,6 +1,7 @@
$inherits:
from: 'tasks/builds/b2g_desktop_base.yml'
variables:
build_name: 'b2g-desktop'
build_type: 'debug'
task:

View File

@ -1,8 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_desktop_base.yml'
variables:
build_name: 'b2g-desktop'
build_type: 'opt'
task:
scopes:
- 'docker-worker:cache:workspace-b2g-desktop-objects-opt'

View File

@ -15,4 +15,3 @@ task:
extra:
locations:
img: 'private/build/dolphin.zip'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_name: 'emulator-ics'
build_type: 'debug'
task:
workerType: emulator-ics-debug
scopes:

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_type: 'opt'
build_name: 'emulator-ics'
task:
workerType: emulator-ics
scopes:
@ -18,4 +21,3 @@ task:
env:
TARGET: 'emulator'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_name: 'emualtor-jb'
build_type: 'debug'
task:
workerType: emulator-jb-debug
scopes:
@ -22,4 +25,3 @@ task:
env:
TARGET: 'emulator-jb'
B2G_DEBUG: 1

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_name: 'emualtor-jb'
build_type: 'opt'
task:
workerType: emulator-jb
scopes:

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_name: 'emualtor-kk'
build_type: 'debug'
task:
workerType: emulator-kk-debug
scopes:

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_name: 'emualtor-kk'
build_type: 'opt'
task:
workerType: emulator-kk
scopes:
@ -22,4 +25,3 @@ task:
workspace-emulator-kk-opt: /home/worker/workspace
env:
TARGET: 'emulator-kk'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_name: 'emualtor-l'
build_type: 'opt'
task:
workerType: emulator-l-debug
scopes:
@ -25,4 +28,3 @@ task:
env:
TARGET: 'emulator-l'
B2G_DEBUG: 1

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_name: 'emualtor-l'
build_type: 'opt'
task:
workerType: emulator-l
scopes:
@ -22,5 +25,3 @@ task:
workspace-emulator-l-opt: /home/worker/workspace
env:
TARGET: 'emulator-l'

View File

@ -31,4 +31,3 @@ task:
tests: 'public/build/b2g-tests.zip'
symbols: 'public/build/b2g-crashreporter-symbols.zip'
sources: 'public/build/sources.xml'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_x86_base.yml'
variables:
build_name: 'emualtor-x86-kk'
build_type: 'opt'
task:
workerType: emualtor-x86-kk
scopes:

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_emulator_base.yml'
variables:
build_name: 'emualtor-x86-l'
build_type: 'opt'
task:
workerType: emulator-l
scopes:
@ -29,6 +32,3 @@ task:
workspace-emulator-l-x86-opt: /home/worker/workspace
env:
TARGET: 'emulator-x86-l'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_phone_base.yml'
variables:
build_name: 'flame-kk-eng'
build_type: 'opt'
task:
workerType: flame-kk
scopes:

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_phone_base.yml'
variables:
build_name: 'flame-kk-nightly'
build_type: 'opt'
task:
workerType: flame-kk
scopes:
@ -29,4 +32,3 @@ task:
locations:
img: 'private/build/flame-kk.zip'
mar: 'public/build/b2g-flame-gecko-update.mar'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_phone_base.yml'
variables:
build_name: 'flame-kk'
build_type: 'opt'
task:
workerType: flame-kk
scopes:
@ -27,4 +30,3 @@ task:
platform: b2g-device-image
locations:
img: 'private/build/flame-kk.zip'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_phone_base.yml'
variables:
build_name: 'hamachi-eng'
build_type: 'opt'
task:
scopes:
- 'docker-worker:cache:build-hamachi-eng'
@ -15,4 +18,3 @@ task:
extra:
locations:
img: 'private/build/hamachi.zip'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_phone_base.yml'
variables:
build_name: 'hamachi'
build_type: 'opt'
task:
scopes:
- 'docker-worker:cache:build-hamachi-user'
@ -14,4 +17,3 @@ task:
extra:
locations:
img: 'private/build/hamachi.zip'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_phone_base.yml'
variables:
build_name: 'helix'
build_type: 'opt'
task:
scopes:
- 'docker-worker:cache:build-helix-user'
@ -14,4 +17,3 @@ task:
extra:
locations:
img: 'private/build/helix.zip'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_phone_base.yml'
variables:
build_name: 'nexus-4-eng'
build_type: 'opt'
task:
scopes:
- 'docker-worker:cache:build-nexus-4-eng'
@ -14,4 +17,3 @@ task:
extra:
locations:
img: 'private/build/nexus-4.zip'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/builds/b2g_phone_base.yml'
variables:
build_name: 'nexus-4-user'
build_type: 'opt'
task:
scopes:
- 'docker-worker:cache:build-nexus-4-user'
@ -21,4 +24,3 @@ task:
platform: b2g-device-image
locations:
img: 'private/build/nexus-4.zip'

View File

@ -1,5 +1,8 @@
$inherits:
from: 'tasks/build.yml'
variables:
build_name: 'mulet'
build_type: 'opt'
task:
metadata:
name: '[TC] Mulet Linux'

View File

@ -67,6 +67,7 @@ tasks:
- >
source ./bin/decision.sh &&
./mach taskcluster-graph
--pushlog-id='{{pushlog_id}}'
--message='{{comment}}'
--project='{{project}}'
--owner='{{owner}}'
@ -78,4 +79,3 @@ tasks:
extra:
treeherder:
symbol: D

View File

@ -73,6 +73,7 @@ tasks:
checkout-gecko workspace &&
cd workspace/gecko &&
./mach taskcluster-graph
--pushlog-id='{{pushlog_id}}'
--project='{{project}}'
--message='{{comment}}'
--owner='{{owner}}'
@ -84,4 +85,3 @@ tasks:
extra:
treeherder:
symbol: D

View File

@ -169,7 +169,6 @@ GeckoTouchDispatcher::DispatchTouchMoveEvents(TimeStamp aVsyncTime)
{
MutexAutoLock lock(mTouchQueueLock);
if (!mHavePendingTouchMoves) {
MOZ_ASSERT(mTouchMoveEvents.empty());
return;
}
mHavePendingTouchMoves = false;