Revert "Remove VideoSendStreamInput::PutFrame."
This reverts r6229. Test WebRtcVideoChannel2BaseTest.MuteStream fails after r6229. BUG= R=stefan@webrtc.org TBR=mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/19529005 git-svn-id: http://webrtc.googlecode.com/svn/trunk@6230 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
f3085e43ab
commit
2cdd433edf
@ -125,6 +125,10 @@ class VideoAnalyzer : public PacketReceiver,
|
|||||||
return receiver_->DeliverPacket(packet, length);
|
return receiver_->DeliverPacket(packet, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void PutFrame(const I420VideoFrame& video_frame) OVERRIDE {
|
||||||
|
ADD_FAILURE() << "PutFrame() should not have been called in this test.";
|
||||||
|
}
|
||||||
|
|
||||||
virtual void SwapFrame(I420VideoFrame* video_frame) OVERRIDE {
|
virtual void SwapFrame(I420VideoFrame* video_frame) OVERRIDE {
|
||||||
I420VideoFrame* copy = NULL;
|
I420VideoFrame* copy = NULL;
|
||||||
{
|
{
|
||||||
|
@ -280,12 +280,24 @@ VideoSendStream::~VideoSendStream() {
|
|||||||
rtp_rtcp_->Release();
|
rtp_rtcp_->Release();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VideoSendStream::PutFrame(const I420VideoFrame& frame) {
|
||||||
|
input_frame_.CopyFrame(frame);
|
||||||
|
SwapFrame(&input_frame_);
|
||||||
|
}
|
||||||
|
|
||||||
void VideoSendStream::SwapFrame(I420VideoFrame* frame) {
|
void VideoSendStream::SwapFrame(I420VideoFrame* frame) {
|
||||||
|
// TODO(pbos): Warn if frame is "too far" into the future, or too old. This
|
||||||
|
// would help detect if frame's being used without NTP.
|
||||||
|
// TO REVIEWER: Is there any good check for this? Should it be
|
||||||
|
// skipped?
|
||||||
|
if (frame != &input_frame_)
|
||||||
|
input_frame_.SwapFrame(frame);
|
||||||
|
|
||||||
// TODO(pbos): Local rendering should not be done on the capture thread.
|
// TODO(pbos): Local rendering should not be done on the capture thread.
|
||||||
if (config_.local_renderer != NULL)
|
if (config_.local_renderer != NULL)
|
||||||
config_.local_renderer->RenderFrame(*frame, 0);
|
config_.local_renderer->RenderFrame(input_frame_, 0);
|
||||||
|
|
||||||
external_capture_->SwapFrame(frame);
|
external_capture_->SwapFrame(&input_frame_);
|
||||||
}
|
}
|
||||||
|
|
||||||
VideoSendStreamInput* VideoSendStream::Input() { return this; }
|
VideoSendStreamInput* VideoSendStream::Input() { return this; }
|
||||||
|
@ -57,6 +57,7 @@ class VideoSendStream : public webrtc::VideoSendStream,
|
|||||||
bool DeliverRtcp(const uint8_t* packet, size_t length);
|
bool DeliverRtcp(const uint8_t* packet, size_t length);
|
||||||
|
|
||||||
// From VideoSendStreamInput.
|
// From VideoSendStreamInput.
|
||||||
|
virtual void PutFrame(const I420VideoFrame& frame) OVERRIDE;
|
||||||
virtual void SwapFrame(I420VideoFrame* frame) OVERRIDE;
|
virtual void SwapFrame(I420VideoFrame* frame) OVERRIDE;
|
||||||
|
|
||||||
// From webrtc::VideoSendStream.
|
// From webrtc::VideoSendStream.
|
||||||
@ -68,6 +69,7 @@ class VideoSendStream : public webrtc::VideoSendStream,
|
|||||||
virtual std::string GetCName() OVERRIDE;
|
virtual std::string GetCName() OVERRIDE;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
I420VideoFrame input_frame_;
|
||||||
TransportAdapter transport_adapter_;
|
TransportAdapter transport_adapter_;
|
||||||
EncodedFrameCallbackAdapter encoded_frame_proxy_;
|
EncodedFrameCallbackAdapter encoded_frame_proxy_;
|
||||||
scoped_ptr<CriticalSectionWrapper> codec_lock_;
|
scoped_ptr<CriticalSectionWrapper> codec_lock_;
|
||||||
|
@ -29,6 +29,7 @@ class VideoSendStreamInput {
|
|||||||
// These methods do not lock internally and must be called sequentially.
|
// These methods do not lock internally and must be called sequentially.
|
||||||
// If your application switches input sources synchronization must be done
|
// If your application switches input sources synchronization must be done
|
||||||
// externally to make sure that any old frames are not delivered concurrently.
|
// externally to make sure that any old frames are not delivered concurrently.
|
||||||
|
virtual void PutFrame(const I420VideoFrame& video_frame) = 0;
|
||||||
virtual void SwapFrame(I420VideoFrame* video_frame) = 0;
|
virtual void SwapFrame(I420VideoFrame* video_frame) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
Reference in New Issue
Block a user