mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 13:55:43 +00:00
Bug 1103848
- Part 2. Use a single source for audio/video track ID constants. r=roc
This commit is contained in:
parent
2debf3b941
commit
b30333304c
@ -15,7 +15,6 @@
|
||||
#include "MediaStreamGraph.h"
|
||||
#include "AudioStreamTrack.h"
|
||||
#include "VideoStreamTrack.h"
|
||||
#include "MediaEngine.h"
|
||||
|
||||
using namespace mozilla;
|
||||
using namespace mozilla::dom;
|
||||
|
@ -48,6 +48,12 @@ class MediaTrackListListener;
|
||||
|
||||
class MediaStreamDirectListener;
|
||||
|
||||
// For classes that need fixed track IDs
|
||||
enum {
|
||||
kVideoTrack = 1,
|
||||
kAudioTrack = 2
|
||||
};
|
||||
|
||||
#define NS_DOMMEDIASTREAM_IID \
|
||||
{ 0x8cb65468, 0x66c0, 0x444e, \
|
||||
{ 0x89, 0x9f, 0x89, 0x1d, 0x9e, 0xd2, 0xbe, 0x7c } }
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "mozilla/Preferences.h"
|
||||
#include "gfx2DGlue.h"
|
||||
#include "nsPrintfCString.h"
|
||||
#include "DOMMediaStream.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
@ -356,9 +357,6 @@ static void WriteVideoToMediaStream(MediaStream* aStream,
|
||||
aOutput->AppendFrame(image.forget(), duration, aIntrinsicSize);
|
||||
}
|
||||
|
||||
static const TrackID TRACK_AUDIO = 1;
|
||||
static const TrackID TRACK_VIDEO = 2;
|
||||
|
||||
void MediaDecoderStateMachine::SendStreamData()
|
||||
{
|
||||
NS_ASSERTION(OnDecodeThread() || OnStateMachineThread(),
|
||||
@ -394,14 +392,14 @@ void MediaDecoderStateMachine::SendStreamData()
|
||||
if (!stream->mStreamInitialized) {
|
||||
if (mInfo.HasAudio()) {
|
||||
AudioSegment* audio = new AudioSegment();
|
||||
mediaStream->AddAudioTrack(TRACK_AUDIO, mInfo.mAudio.mRate, 0, audio);
|
||||
stream->mStream->DispatchWhenNotEnoughBuffered(TRACK_AUDIO,
|
||||
mediaStream->AddAudioTrack(kAudioTrack, mInfo.mAudio.mRate, 0, audio);
|
||||
stream->mStream->DispatchWhenNotEnoughBuffered(kAudioTrack,
|
||||
GetStateMachineThread(), GetWakeDecoderRunnable());
|
||||
}
|
||||
if (mInfo.HasVideo()) {
|
||||
VideoSegment* video = new VideoSegment();
|
||||
mediaStream->AddTrack(TRACK_VIDEO, 0, video);
|
||||
stream->mStream->DispatchWhenNotEnoughBuffered(TRACK_VIDEO,
|
||||
mediaStream->AddTrack(kVideoTrack, 0, video);
|
||||
stream->mStream->DispatchWhenNotEnoughBuffered(kVideoTrack,
|
||||
GetStateMachineThread(), GetWakeDecoderRunnable());
|
||||
}
|
||||
stream->mStreamInitialized = true;
|
||||
@ -417,10 +415,10 @@ void MediaDecoderStateMachine::SendStreamData()
|
||||
SendStreamAudio(audio[i], stream, &output);
|
||||
}
|
||||
if (output.GetDuration() > 0) {
|
||||
mediaStream->AppendToTrack(TRACK_AUDIO, &output);
|
||||
mediaStream->AppendToTrack(kAudioTrack, &output);
|
||||
}
|
||||
if (AudioQueue().IsFinished() && !stream->mHaveSentFinishAudio) {
|
||||
mediaStream->EndTrack(TRACK_AUDIO);
|
||||
mediaStream->EndTrack(kAudioTrack);
|
||||
stream->mHaveSentFinishAudio = true;
|
||||
}
|
||||
minLastAudioPacketTime = std::min(minLastAudioPacketTime, stream->mLastAudioPacketTime);
|
||||
@ -462,10 +460,10 @@ void MediaDecoderStateMachine::SendStreamData()
|
||||
}
|
||||
}
|
||||
if (output.GetDuration() > 0) {
|
||||
mediaStream->AppendToTrack(TRACK_VIDEO, &output);
|
||||
mediaStream->AppendToTrack(kVideoTrack, &output);
|
||||
}
|
||||
if (VideoQueue().IsFinished() && !stream->mHaveSentFinishVideo) {
|
||||
mediaStream->EndTrack(TRACK_VIDEO);
|
||||
mediaStream->EndTrack(kVideoTrack);
|
||||
stream->mHaveSentFinishVideo = true;
|
||||
}
|
||||
endPosition = std::max(endPosition,
|
||||
@ -531,10 +529,10 @@ bool MediaDecoderStateMachine::HaveEnoughDecodedAudio(int64_t aAmpleAudioUSecs)
|
||||
|
||||
DecodedStreamData* stream = mDecoder->GetDecodedStream();
|
||||
if (stream && stream->mStreamInitialized && !stream->mHaveSentFinishAudio) {
|
||||
if (!stream->mStream->HaveEnoughBuffered(TRACK_AUDIO)) {
|
||||
if (!stream->mStream->HaveEnoughBuffered(kAudioTrack)) {
|
||||
return false;
|
||||
}
|
||||
stream->mStream->DispatchWhenNotEnoughBuffered(TRACK_AUDIO,
|
||||
stream->mStream->DispatchWhenNotEnoughBuffered(kAudioTrack,
|
||||
GetStateMachineThread(), GetWakeDecoderRunnable());
|
||||
}
|
||||
|
||||
@ -551,10 +549,10 @@ bool MediaDecoderStateMachine::HaveEnoughDecodedVideo()
|
||||
|
||||
DecodedStreamData* stream = mDecoder->GetDecodedStream();
|
||||
if (stream && stream->mStreamInitialized && !stream->mHaveSentFinishVideo) {
|
||||
if (!stream->mStream->HaveEnoughBuffered(TRACK_VIDEO)) {
|
||||
if (!stream->mStream->HaveEnoughBuffered(kVideoTrack)) {
|
||||
return false;
|
||||
}
|
||||
stream->mStream->DispatchWhenNotEnoughBuffered(TRACK_VIDEO,
|
||||
stream->mStream->DispatchWhenNotEnoughBuffered(kVideoTrack,
|
||||
GetStateMachineThread(), GetWakeDecoderRunnable());
|
||||
}
|
||||
|
||||
|
@ -39,12 +39,6 @@ enum MediaEngineState {
|
||||
kReleased
|
||||
};
|
||||
|
||||
// We only support 1 audio and 1 video track for now.
|
||||
enum {
|
||||
kVideoTrack = 1,
|
||||
kAudioTrack = 2
|
||||
};
|
||||
|
||||
// includes everything from dom::MediaSourceEnum (really video sources), plus audio sources
|
||||
enum MediaSourceType {
|
||||
Camera = (int) dom::MediaSourceEnum::Camera,
|
||||
|
Loading…
Reference in New Issue
Block a user