mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1112424 Part 2 - Implement MediaSource methods to return debug information for about:media - r=ajones
--HG-- extra : rebase_source : 192051cdea92aa39ecf2768a119f952761f25c68
This commit is contained in:
parent
a9fd240a72
commit
b89d511acb
@ -290,6 +290,12 @@ MediaSourceDecoder::PrepareReaderInitialization()
|
||||
mReader->PrepareInitialization();
|
||||
}
|
||||
|
||||
void
|
||||
MediaSourceDecoder::GetMozDebugReaderData(nsAString& aString)
|
||||
{
|
||||
mReader->GetMozDebugReaderData(aString);
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
nsresult
|
||||
MediaSourceDecoder::SetCDMProxy(CDMProxy* aProxy)
|
||||
|
@ -79,6 +79,10 @@ public:
|
||||
// reader in this decoders MediaSourceReader.
|
||||
bool IsActiveReader(MediaDecoderReader* aReader);
|
||||
|
||||
// Returns a string describing the state of the MediaSource internal
|
||||
// buffered data. Used for debugging purposes.
|
||||
void GetMozDebugReaderData(nsAString& aString);
|
||||
|
||||
private:
|
||||
void DoSetMediaSourceDuration(double aDuration);
|
||||
void ScheduleDurationChange(double aOldDuration,
|
||||
|
@ -13,6 +13,7 @@
|
||||
#include "MediaSourceUtils.h"
|
||||
#include "SourceBufferDecoder.h"
|
||||
#include "TrackBuffer.h"
|
||||
#include "nsPrintfCString.h"
|
||||
|
||||
#ifdef MOZ_FMP4
|
||||
#include "SharedDecoderManager.h"
|
||||
@ -968,6 +969,40 @@ MediaSourceReader::SetMediaSourceDuration(double aDuration)
|
||||
mMediaSourceDuration = aDuration;
|
||||
}
|
||||
|
||||
void
|
||||
MediaSourceReader::GetMozDebugReaderData(nsAString& aString)
|
||||
{
|
||||
ReentrantMonitorAutoEnter mon(mDecoder->GetReentrantMonitor());
|
||||
nsAutoCString result;
|
||||
result += nsPrintfCString("Dumping data for reader %p:\n", this);
|
||||
if (mAudioTrack) {
|
||||
result += nsPrintfCString("\tDumping Audio Track Decoders: - mLastAudioTime: %f\n", double(mLastAudioTime) / USECS_PER_S);
|
||||
for (int32_t i = mAudioTrack->Decoders().Length() - 1; i >= 0; --i) {
|
||||
nsRefPtr<MediaDecoderReader> newReader = mAudioTrack->Decoders()[i]->GetReader();
|
||||
|
||||
nsRefPtr<dom::TimeRanges> ranges = new dom::TimeRanges();
|
||||
mAudioTrack->Decoders()[i]->GetBuffered(ranges);
|
||||
result += nsPrintfCString("\t\tReader %d: %p ranges=%s active=%s\n",
|
||||
i, newReader.get(), DumpTimeRanges(ranges).get(),
|
||||
newReader.get() == mAudioReader.get() ? "true" : "false");
|
||||
}
|
||||
}
|
||||
|
||||
if (mVideoTrack) {
|
||||
result += nsPrintfCString("\tDumping Video Track Decoders - mLastVideoTime: %f\n", double(mLastVideoTime) / USECS_PER_S);
|
||||
for (int32_t i = mVideoTrack->Decoders().Length() - 1; i >= 0; --i) {
|
||||
nsRefPtr<MediaDecoderReader> newReader = mVideoTrack->Decoders()[i]->GetReader();
|
||||
|
||||
nsRefPtr<dom::TimeRanges> ranges = new dom::TimeRanges();
|
||||
mVideoTrack->Decoders()[i]->GetBuffered(ranges);
|
||||
result += nsPrintfCString("\t\tReader %d: %p ranges=%s active=%s\n",
|
||||
i, newReader.get(), DumpTimeRanges(ranges).get(),
|
||||
newReader.get() == mVideoReader.get() ? "true" : "false");
|
||||
}
|
||||
}
|
||||
aString += NS_ConvertUTF8toUTF16(result);
|
||||
}
|
||||
|
||||
#ifdef MOZ_EME
|
||||
nsresult
|
||||
MediaSourceReader::SetCDMProxy(CDMProxy* aProxy)
|
||||
|
@ -146,6 +146,10 @@ public:
|
||||
// Returns true if aReader is a currently active audio or video
|
||||
bool IsActiveReader(MediaDecoderReader* aReader);
|
||||
|
||||
// Returns a string describing the state of the MediaSource internal
|
||||
// buffered data. Used for debugging purposes.
|
||||
void GetMozDebugReaderData(nsAString& aString);
|
||||
|
||||
private:
|
||||
// Switch the current audio/video reader to the reader that
|
||||
// contains aTarget (or up to aError after target). Both
|
||||
|
Loading…
Reference in New Issue
Block a user