Skip to content

Commit

Permalink
Merge b2g-inbound to m-c.
Browse files Browse the repository at this point in the history
  • Loading branch information
rvandermeulen committed Feb 11, 2014
2 parents 262a88d + 4503435 commit dcea739
Show file tree
Hide file tree
Showing 28 changed files with 864 additions and 202 deletions.
2 changes: 1 addition & 1 deletion b2g/config/emulator-ics/sources.xml
Expand Up @@ -12,7 +12,7 @@
<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="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="eda08beb3ba9a159843c70ffde0f9660ec351eb9"/>
Expand Down
2 changes: 1 addition & 1 deletion b2g/config/emulator-jb/sources.xml
Expand Up @@ -11,7 +11,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="3d5c964015967ca8c86abe6dbbebee3cb82b1609"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="a314508e397c8f1814228d36259ea8708034444e"/>
Expand Down
2 changes: 1 addition & 1 deletion b2g/config/emulator/sources.xml
Expand Up @@ -12,7 +12,7 @@
<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="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="platform_hardware_ril" path="hardware/ril" remote="b2g" revision="eda08beb3ba9a159843c70ffde0f9660ec351eb9"/>
Expand Down
2 changes: 1 addition & 1 deletion b2g/config/gaia.json
@@ -1,4 +1,4 @@
{
"revision": "052499d9ddb89a1168cb5fcd092c15095ef3a6a9",
"revision": "01b437206d143e1632ee5a5fd49cc649aee2e970",
"repo_path": "/integration/gaia-central"
}
2 changes: 1 addition & 1 deletion b2g/config/hamachi/sources.xml
Expand Up @@ -11,7 +11,7 @@
<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="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
Expand Down
2 changes: 1 addition & 1 deletion b2g/config/helix/sources.xml
Expand Up @@ -10,7 +10,7 @@
<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="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
Expand Down
2 changes: 1 addition & 1 deletion b2g/config/inari/sources.xml
Expand Up @@ -12,7 +12,7 @@
<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="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
Expand Down
2 changes: 1 addition & 1 deletion b2g/config/leo/sources.xml
Expand Up @@ -11,7 +11,7 @@
<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="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
Expand Down
2 changes: 1 addition & 1 deletion b2g/config/mako/sources.xml
Expand Up @@ -11,7 +11,7 @@
</project>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="fake-libdvm" path="dalvik" remote="b2g" revision="d50ae982b19f42f0b66d08b9eb306be81687869f"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="moztt" path="external/moztt" remote="b2g" revision="3d5c964015967ca8c86abe6dbbebee3cb82b1609"/>
<project name="apitrace" path="external/apitrace" remote="apitrace" revision="a314508e397c8f1814228d36259ea8708034444e"/>
Expand Down
2 changes: 1 addition & 1 deletion b2g/config/wasabi/sources.xml
Expand Up @@ -11,7 +11,7 @@
<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="bbe0fd0ca135d089b662975eeced57530ebb7554"/>
<project name="gaia.git" path="gaia" remote="mozillaorg" revision="4c6b5142d3b716f1c4ea502eeb92d3119f2b01c6"/>
<project name="gonk-misc" path="gonk-misc" remote="b2g" revision="78b908b493bfe0b477e3d4f6edec8c46a2c0d096"/>
<project name="rilproxy" path="rilproxy" remote="b2g" revision="827214fcf38d6569aeb5c6d6f31cb296d1f09272"/>
<project name="librecovery" path="librecovery" remote="b2g" revision="84f2f2fce22605e17d511ff1767e54770067b5b5"/>
Expand Down
13 changes: 7 additions & 6 deletions content/media/MediaCache.cpp
Expand Up @@ -381,7 +381,8 @@ MediaCacheStream::MediaCacheStream(ChannelMediaResource* aClient)
mPlaybackBytesPerSecond(10000),
mPinCount(0),
mCurrentMode(MODE_PLAYBACK),
mMetadataInPartialBlockBuffer(false)
mMetadataInPartialBlockBuffer(false),
mPartialBlockBuffer(new int64_t[BLOCK_SIZE/sizeof(int64_t)])
{
}

Expand Down Expand Up @@ -1735,12 +1736,12 @@ MediaCacheStream::NotifyDataReceived(int64_t aSize, const char* aData,
// to clear this flag.
mMetadataInPartialBlockBuffer = false;
}
memcpy(reinterpret_cast<char*>(mPartialBlockBuffer) + blockOffset,
memcpy(reinterpret_cast<char*>(mPartialBlockBuffer.get()) + blockOffset,
data, chunkSize);

if (blockOffset + chunkSize == BLOCK_SIZE) {
// We completed a block, so lets write it out.
blockDataToStore = reinterpret_cast<char*>(mPartialBlockBuffer);
blockDataToStore = reinterpret_cast<char*>(mPartialBlockBuffer.get());
if (mMetadataInPartialBlockBuffer) {
mode = MODE_METADATA;
}
Expand Down Expand Up @@ -1788,7 +1789,7 @@ MediaCacheStream::FlushPartialBlockInternal(bool aNotifyAll)
aNotifyAll ? "yes" : "no"));

// Write back the partial block
memset(reinterpret_cast<char*>(mPartialBlockBuffer) + blockOffset, 0,
memset(reinterpret_cast<char*>(mPartialBlockBuffer.get()) + blockOffset, 0,
BLOCK_SIZE - blockOffset);
gMediaCache->AllocateAndWriteBlock(this, mPartialBlockBuffer,
mMetadataInPartialBlockBuffer ? MODE_METADATA : MODE_PLAYBACK);
Expand Down Expand Up @@ -2182,7 +2183,7 @@ MediaCacheStream::Read(char* aBuffer, uint32_t aCount, uint32_t* aBytes)
// the cache.
bytes = std::min<int64_t>(size, streamWithPartialBlock->mChannelOffset - mStreamOffset);
memcpy(aBuffer,
reinterpret_cast<char*>(streamWithPartialBlock->mPartialBlockBuffer) + offsetInStreamBlock, bytes);
reinterpret_cast<char*>(streamWithPartialBlock->mPartialBlockBuffer.get()) + offsetInStreamBlock, bytes);
if (mCurrentMode == MODE_METADATA) {
streamWithPartialBlock->mMetadataInPartialBlockBuffer = true;
}
Expand Down Expand Up @@ -2277,7 +2278,7 @@ MediaCacheStream::ReadFromCache(char* aBuffer,
// the cache.
bytes = std::min<int64_t>(size, mChannelOffset - streamOffset);
memcpy(aBuffer + count,
reinterpret_cast<char*>(mPartialBlockBuffer) + offsetInStreamBlock, bytes);
reinterpret_cast<char*>(mPartialBlockBuffer.get()) + offsetInStreamBlock, bytes);
} else {
if (cacheBlock < 0) {
// We expect all blocks to be cached! Fail!
Expand Down
4 changes: 3 additions & 1 deletion content/media/MediaCache.h
Expand Up @@ -499,7 +499,9 @@ class MediaCacheStream {
// mChannelOffset%BLOCK_SIZE bytes have been filled in with good data,
// the rest are garbage.
// Use int64_t so that the data is well-aligned.
int64_t mPartialBlockBuffer[BLOCK_SIZE/sizeof(int64_t)];
// Heap allocate this buffer since the exact power-of-2 will cause allocation
// slop when combined with the rest of the object members.
nsAutoArrayPtr<int64_t> mPartialBlockBuffer;
};

} // namespace mozilla
Expand Down
10 changes: 5 additions & 5 deletions content/media/MediaRecorder.cpp
Expand Up @@ -86,7 +86,7 @@ class MediaRecorder::Session: public nsIObserver
if (mSession->IsEncoderError()) {
recorder->NotifyError(NS_ERROR_UNEXPECTED);
}
nsresult rv = recorder->CreateAndDispatchBlobEvent(mSession);
nsresult rv = recorder->CreateAndDispatchBlobEvent(mSession->GetEncodedData());
if (NS_FAILED(rv)) {
recorder->NotifyError(rv);
}
Expand Down Expand Up @@ -544,8 +544,8 @@ MediaRecorder::RequestData(ErrorResult& aResult)
}

NS_DispatchToMainThread(
NS_NewRunnableMethodWithArg<Session *>(this,
&MediaRecorder::CreateAndDispatchBlobEvent, mSession),
NS_NewRunnableMethodWithArg<const already_AddRefed<nsIDOMBlob> >(this,
&MediaRecorder::CreateAndDispatchBlobEvent, mSession->GetEncodedData()),
NS_DISPATCH_NORMAL);
}

Expand Down Expand Up @@ -576,7 +576,7 @@ MediaRecorder::Constructor(const GlobalObject& aGlobal,
}

nsresult
MediaRecorder::CreateAndDispatchBlobEvent(Session *aSession)
MediaRecorder::CreateAndDispatchBlobEvent(const already_AddRefed<nsIDOMBlob> &aBlob)
{
NS_ABORT_IF_FALSE(NS_IsMainThread(), "Not running on main thread");

Expand All @@ -588,7 +588,7 @@ MediaRecorder::CreateAndDispatchBlobEvent(Session *aSession)
BlobEventInit init;
init.mBubbles = false;
init.mCancelable = false;
init.mData = aSession->GetEncodedData();
init.mData = aBlob;
nsRefPtr<BlobEvent> event =
BlobEvent::Constructor(this,
NS_LITERAL_STRING("dataavailable"),
Expand Down
2 changes: 1 addition & 1 deletion content/media/MediaRecorder.h
Expand Up @@ -85,7 +85,7 @@ class MediaRecorder : public nsDOMEventTargetHelper
protected:
MediaRecorder& operator = (const MediaRecorder& x) MOZ_DELETE;
// Create dataavailable event with Blob data and it runs in main thread
nsresult CreateAndDispatchBlobEvent(Session *session);
nsresult CreateAndDispatchBlobEvent(const already_AddRefed<nsIDOMBlob> &aBlob);
// Creating a simple event to notify UA simple event.
void DispatchSimpleEvent(const nsAString & aStr);
// Creating a error event with message.
Expand Down
1 change: 1 addition & 0 deletions content/media/test/mochitest.ini
Expand Up @@ -258,6 +258,7 @@ support-files =
[test_mediarecorder_record_immediate_stop.html]
[test_mediarecorder_record_session.html]
[test_mediarecorder_record_startstopstart.html]
[test_mediarecorder_getencodeddata.html]
[test_mediarecorder_unsupported_src.html]
[test_playback.html]
[test_seekLies.html]
Expand Down
68 changes: 68 additions & 0 deletions content/media/test/test_mediarecorder_getencodeddata.html
@@ -0,0 +1,68 @@
<!DOCTYPE HTML>
<html>
<head>
<title>Bug 957452 Test GetEncodedData problem on asan build</title>
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
</head>
<body>
<pre id="test">
<script class="testbody" type="text/javascript">
SimpleTest.waitForExplicitFinish();
SpecialPowers.pushPrefEnv({"set": [["media.ogg.enabled", false]]},
function () {
var ac = new window.AudioContext();
var dest = ac.createMediaStreamDestination();
var stream = dest.stream;
var onErrorFired = false;
var expectedMimeType = '';
var ondataavailableFired = false;
setTimeout(function() {
var mediaRecorder = new MediaRecorder(stream);
mediaRecorder.onstop = function(e) {
is(e.target.state, 'inactive',
'Media recorder is inactive after being stopped');
ok(onErrorFired, 'onStop after onError');
ok(ondataavailableFired, 'ondataavailableFired');

SimpleTest.finish();
}
mediaRecorder.ondataavailable = function(evt) {
if (onErrorFired) {
ondataavailableFired = true;
ok(evt instanceof BlobEvent,
'Events fired from ondataavailable should be BlobEvent');
is(evt.type, 'dataavailable',
'Event type should dataavailable');
is(evt.data.size, 0,
'Blob data size received is equal to zero');
is(evt.data.type, expectedMimeType,
'Blob data received should have type = ' + expectedMimeType);
is(evt.target.mimeType, expectedMimeType,
'Mime type in ondataavailable = ' + expectedMimeType);
} else {
ok(false, 'should get onError first');
}
}
mediaRecorder.onerror = function(evt) {
ok(evt instanceof RecordErrorEvent,
'Events fired from onerror should be RecordErrorEvent');
is(evt.type, 'error',
'Event type should onerror');
is(evt.name, 'GenericError',
'Event name is GenericError');
onErrorFired = true;
}
mediaRecorder.start(0);
is(mediaRecorder.state, 'recording', 'Media recorder should be recording');
is(mediaRecorder.stream, stream,
'Media recorder stream = element stream at the start of recording');
mediaRecorder.requestData();
mediaRecorder.stop();
}, 100);
}
);
</script>
</pre>
</body>
</html>

0 comments on commit dcea739

Please sign in to comment.