Revert of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2854873003/ )

Reason for revert:
More downstream breakage discovered.

Original issue's description:
> Reland of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2854883002/ )
>
> Reason for revert:
> Will make another attempt to track down and fix downstream projects.
>
> Original issue's description:
> > Revert of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2852303002/ )
> >
> > Reason for revert:
> > Unfortunately, more downstream updates needed.
> >
> > Original issue's description:
> > > Reland of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #1 id:1 of https://codereview.webrtc.org/2845333002/ )
> > >
> > > Reason for revert:
> > > Downstream projects being updated.
> > >
> > > For Chrome, relanding depends on cl
> > > https://codereview.chromium.org/2855783003/
> > >
> > > Original issue's description:
> > > > Revert of Delete deprecated and transitional stuff related to video frame refactoring. (patchset #17 id:320001 of https://codereview.webrtc.org/2622263002/ )
> > > >
> > > > Reason for revert:
> > > > Broke Chrome build, see, e.g.,
> > > > http://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/16237
> > > >
> > > > Original issue's description:
> > > > > Delete deprecated and transitional stuff related to video frame refactoring.
> > > > >
> > > > > BUG=webrtc:5880
> > > > >
> > > > > Review-Url: https://codereview.webrtc.org/2622263002
> > > > > Cr-Commit-Position: refs/heads/master@{#17928}
> > > > > Committed: 713a3bbcc7
> > > >
> > > > TBR=mflodman@webrtc.org,perkj@webrtc.org
> > > > # Skipping CQ checks because original CL landed less than 1 days ago.
> > > > NOPRESUBMIT=true
> > > > NOTREECHECKS=true
> > > > NOTRY=true
> > > > BUG=webrtc:5880
> > > >
> > > > Review-Url: https://codereview.webrtc.org/2845333002
> > > > Cr-Commit-Position: refs/heads/master@{#17929}
> > > > Committed: aec49d2b49
> > >
> > > TBR=mflodman@webrtc.org,perkj@webrtc.org
> > > # Not skipping CQ checks because original CL landed more than 1 days ago.
> > > BUG=webrtc:5880
> > >
> > > Review-Url: https://codereview.webrtc.org/2852303002
> > > Cr-Commit-Position: refs/heads/master@{#17974}
> > > Committed: d71ebd70f6
> >
> > TBR=mflodman@webrtc.org,perkj@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:5880
> >
> > Review-Url: https://codereview.webrtc.org/2854883002
> > Cr-Commit-Position: refs/heads/master@{#17978}
> > Committed: 6e6a485a02
>
> TBR=mflodman@webrtc.org,perkj@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
>
> BUG=webrtc:5880
>
> Review-Url: https://codereview.webrtc.org/2854873003
> Cr-Commit-Position: refs/heads/master@{#18006}
> Committed: 3870a071c4

TBR=mflodman@webrtc.org,perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5880

Review-Url: https://codereview.webrtc.org/2853383005
Cr-Commit-Position: refs/heads/master@{#18008}
This commit is contained in:
nisse
2017-05-04 02:11:12 -07:00
committed by Commit bot
parent 8417610a79
commit 61b22dde13
26 changed files with 151 additions and 21 deletions

View File

@ -23,6 +23,10 @@
#include <vector> #include <vector>
#include "webrtc/api/video/video_frame.h" #include "webrtc/api/video/video_frame.h"
// TODO(nisse): Transition hack, Chrome expects that including this
// file declares I420Buffer. Delete after users of I420Buffer are
// fixed to include the new header.
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/base/refcount.h" #include "webrtc/base/refcount.h"
#include "webrtc/base/scoped_ref_ptr.h" #include "webrtc/base/scoped_ref_ptr.h"
#include "webrtc/base/optional.h" #include "webrtc/base/optional.h"

View File

@ -131,6 +131,17 @@ rtc::scoped_refptr<I420Buffer> I420Buffer::Rotate(
return buffer; return buffer;
} }
// static
rtc::scoped_refptr<VideoFrameBuffer> I420Buffer::Rotate(
rtc::scoped_refptr<VideoFrameBuffer> src,
VideoRotation rotation) {
if (rotation == webrtc::kVideoRotation_0) {
return src;
} else {
return Rotate(*src, rotation);
}
}
void I420Buffer::InitializeData() { void I420Buffer::InitializeData() {
memset(data_.get(), 0, memset(data_.get(), 0,
I420DataSize(height_, stride_y_, stride_u_, stride_v_)); I420DataSize(height_, stride_y_, stride_u_, stride_v_));

View File

@ -53,6 +53,9 @@ class I420Buffer : public VideoFrameBuffer {
// are resolved in a better way. Or in the mean time, use SetBlack. // are resolved in a better way. Or in the mean time, use SetBlack.
void InitializeData(); void InitializeData();
// TODO(nisse): Deprecated, use static method instead.
void SetToBlack() { SetBlack(this); }
int width() const override; int width() const override;
int height() const override; int height() const override;
const uint8_t* DataY() const override; const uint8_t* DataY() const override;
@ -85,6 +88,14 @@ class I420Buffer : public VideoFrameBuffer {
// Scale all of |src| to the size of |this| buffer, with no cropping. // Scale all of |src| to the size of |this| buffer, with no cropping.
void ScaleFrom(const VideoFrameBuffer& src); void ScaleFrom(const VideoFrameBuffer& src);
// TODO(nisse): Deprecated, delete once downstream applications are updated.
// Returns a rotated versions of |src|. Native buffers are not
// supported. The reason this function doesn't return an I420Buffer,
// is that it returns |src| unchanged in case |rotation| is zero.
static rtc::scoped_refptr<VideoFrameBuffer> Rotate(
rtc::scoped_refptr<VideoFrameBuffer> src,
VideoRotation rotation);
protected: protected:
I420Buffer(int width, int height); I420Buffer(int width, int height);
I420Buffer(int width, int height, int stride_y, int stride_u, int stride_v); I420Buffer(int width, int height, int stride_y, int stride_u, int stride_v);

View File

@ -16,6 +16,11 @@
#include "webrtc/api/video/video_rotation.h" #include "webrtc/api/video/video_rotation.h"
#include "webrtc/api/video/video_frame_buffer.h" #include "webrtc/api/video/video_frame_buffer.h"
// TODO(nisse): Transition hack, some downstream applications expect
// that including this file also defines base/timeutils.h constants.
// Delete after applications are fixed to include the right headers.
#include "webrtc/base/timeutils.h"
namespace webrtc { namespace webrtc {
class VideoFrame { class VideoFrame {

View File

@ -22,7 +22,6 @@ rtc_source_set("video_codecs_api") {
# TODO(ilnik): Add dependency on webrtc/video_frame.h when it will have it's # TODO(ilnik): Add dependency on webrtc/video_frame.h when it will have it's
# own build target. # own build target.
"..:video_frame_api",
"../..:webrtc_common", "../..:webrtc_common",
"../../base:rtc_base_approved", "../../base:rtc_base_approved",
] ]

View File

@ -15,7 +15,6 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "webrtc/api/video/video_frame.h"
#include "webrtc/common_types.h" #include "webrtc/common_types.h"
#include "webrtc/typedefs.h" #include "webrtc/typedefs.h"
#include "webrtc/video_frame.h" #include "webrtc/video_frame.h"

View File

@ -15,7 +15,6 @@
#include <string> #include <string>
#include <vector> #include <vector>
#include "webrtc/api/video/video_frame.h"
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/common_types.h" #include "webrtc/common_types.h"
#include "webrtc/typedefs.h" #include "webrtc/typedefs.h"

View File

@ -11,7 +11,6 @@
#include "webrtc/common_video/include/corevideo_frame_buffer.h" #include "webrtc/common_video/include/corevideo_frame_buffer.h"
#include "libyuv/convert.h" #include "libyuv/convert.h"
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/base/logging.h" #include "webrtc/base/logging.h"
#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"

View File

@ -12,7 +12,6 @@
#include <string.h> #include <string.h>
#include "webrtc/api/video/video_frame.h" #include "webrtc/api/video/video_frame.h"
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/base/bind.h" #include "webrtc/base/bind.h"
#include "webrtc/base/timeutils.h" #include "webrtc/base/timeutils.h"
#include "webrtc/test/fake_texture_frame.h" #include "webrtc/test/fake_texture_frame.h"
@ -292,4 +291,20 @@ INSTANTIATE_TEST_CASE_P(Rotate, TestI420BufferRotate,
kVideoRotation_180, kVideoRotation_180,
kVideoRotation_270)); kVideoRotation_270));
class TestI420BufferRotateOld
: public ::testing::TestWithParam<webrtc::VideoRotation> {};
TEST_P(TestI420BufferRotateOld, Rotates) {
rtc::scoped_refptr<VideoFrameBuffer> buffer = CreateGradient(640, 480);
rtc::scoped_refptr<VideoFrameBuffer> rotated_buffer =
I420Buffer::Rotate(buffer, GetParam());
CheckRotate(640, 480, GetParam(), *rotated_buffer);
}
INSTANTIATE_TEST_CASE_P(Rotate, TestI420BufferRotateOld,
::testing::Values(kVideoRotation_0,
kVideoRotation_90,
kVideoRotation_180,
kVideoRotation_270));
} // namespace webrtc } // namespace webrtc

View File

@ -14,6 +14,9 @@
#include <memory> #include <memory>
#include "webrtc/api/video/video_frame_buffer.h" #include "webrtc/api/video/video_frame_buffer.h"
// TODO(nisse): For backwards compatibility, files including this file
// expect it to declare I420Buffer. Delete after callers are updated.
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/base/callback.h" #include "webrtc/base/callback.h"
#include "webrtc/base/scoped_ref_ptr.h" #include "webrtc/base/scoped_ref_ptr.h"

View File

@ -0,0 +1,18 @@
/*
* Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
// TODO(nisse): Delete this file, once downstream code is updated.
#ifndef WEBRTC_COMMON_VIDEO_ROTATION_H_
#define WEBRTC_COMMON_VIDEO_ROTATION_H_
#include "webrtc/api/video/video_rotation.h"
#endif // WEBRTC_COMMON_VIDEO_ROTATION_H_

View File

@ -73,6 +73,7 @@ rtc_static_library("rtc_media_base") {
"base/videocapturerfactory.h", "base/videocapturerfactory.h",
"base/videocommon.cc", "base/videocommon.cc",
"base/videocommon.h", "base/videocommon.h",
"base/videoframe.h",
"base/videosourcebase.cc", "base/videosourcebase.cc",
"base/videosourcebase.h", "base/videosourcebase.h",
] ]
@ -154,6 +155,7 @@ rtc_static_library("rtc_media") {
"engine/webrtcvideoencoderfactory.h", "engine/webrtcvideoencoderfactory.h",
"engine/webrtcvideoengine2.cc", "engine/webrtcvideoengine2.cc",
"engine/webrtcvideoengine2.h", "engine/webrtcvideoengine2.h",
"engine/webrtcvideoframe.h",
"engine/webrtcvoe.h", "engine/webrtcvoe.h",
"engine/webrtcvoiceengine.cc", "engine/webrtcvoiceengine.cc",
"engine/webrtcvoiceengine.h", "engine/webrtcvoiceengine.h",

View File

@ -20,6 +20,12 @@
#include <string> #include <string>
#include <vector> #include <vector>
// TODO(nisse): Transition hack, some downstream applications expect that
// including this file declares I420Buffer and NativeHandleBuffer. Delete after
// users of these classes are fixed to include the right headers.
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/common_video/include/video_frame_buffer.h"
#include "webrtc/base/constructormagic.h" #include "webrtc/base/constructormagic.h"
#include "webrtc/base/criticalsection.h" #include "webrtc/base/criticalsection.h"
#include "webrtc/media/base/videosourceinterface.h" #include "webrtc/media/base/videosourceinterface.h"

View File

@ -0,0 +1,37 @@
/*
* Copyright (c) 2004 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
// TODO(nisse): Deprecated, replace cricket::VideoFrame with
// webrtc::VideoFrame everywhere, then delete this file. See
// https://bugs.chromium.org/p/webrtc/issues/detail?id=5682.
#ifndef WEBRTC_MEDIA_BASE_VIDEOFRAME_H_
#define WEBRTC_MEDIA_BASE_VIDEOFRAME_H_
// TODO(nisse): Some applications expect that including this file
// implies an include of logging.h. So keep for compatibility, until
// this file can be deleted.
#include "webrtc/base/logging.h"
#include "webrtc/api/video/video_frame.h"
// TODO(nisse): Similarly, some applications expect that including this file
// implies a forward declaration of rtc::Thread.
namespace rtc {
class Thread;
} // namespace rtc
namespace cricket {
using VideoFrame = webrtc::VideoFrame;
} // namespace cricket
#endif // WEBRTC_MEDIA_BASE_VIDEOFRAME_H_

View File

@ -0,0 +1,33 @@
/*
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
// TODO(nisse): Deprecated, replace cricket::WebRtcVideoFrame with
// webrtc::VideoFrame everywhere, then delete this file. See
// https://bugs.chromium.org/p/webrtc/issues/detail?id=5682.
#ifndef WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOFRAME_H_
#define WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOFRAME_H_
#include <memory>
#include "webrtc/base/buffer.h"
#include "webrtc/base/refcount.h"
#include "webrtc/base/scoped_ref_ptr.h"
#include "webrtc/common_types.h"
#include "webrtc/common_video/include/video_frame_buffer.h"
#include "webrtc/media/base/videoframe.h"
namespace cricket {
using WebRtcVideoFrame = webrtc::VideoFrame;
} // namespace cricket
#endif // WEBRTC_MEDIA_ENGINE_WEBRTCVIDEOFRAME_H_

View File

@ -10,7 +10,6 @@
#include "webrtc/modules/video_coding/codecs/test/video_codec_test.h" #include "webrtc/modules/video_coding/codecs/test/video_codec_test.h"
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/modules/video_coding/include/video_error_codes.h" #include "webrtc/modules/video_coding/include/video_error_codes.h"
#include "webrtc/test/frame_utils.h" #include "webrtc/test/frame_utils.h"
#include "webrtc/test/testsupport/fileutils.h" #include "webrtc/test/testsupport/fileutils.h"

View File

@ -10,7 +10,6 @@
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/base/logging.h" #include "webrtc/base/logging.h"
#include "webrtc/base/timeutils.h"
#include "webrtc/base/trace_event.h" #include "webrtc/base/trace_event.h"
#include "webrtc/modules/video_coding/include/video_coding.h" #include "webrtc/modules/video_coding/include/video_coding.h"
#include "webrtc/modules/video_coding/generic_decoder.h" #include "webrtc/modules/video_coding/generic_decoder.h"

View File

@ -12,13 +12,12 @@
#include <memory> #include <memory>
#include "webrtc/api/video/i420_buffer.h" #include "webrtc/sdk/android/src/jni/jni_helpers.h"
#include "webrtc/base/bind.h" #include "webrtc/base/bind.h"
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/base/keep_ref_until_done.h" #include "webrtc/base/keep_ref_until_done.h"
#include "webrtc/base/logging.h" #include "webrtc/base/logging.h"
#include "webrtc/base/scoped_ref_ptr.h" #include "webrtc/base/scoped_ref_ptr.h"
#include "webrtc/sdk/android/src/jni/jni_helpers.h"
using webrtc::NativeHandleBuffer; using webrtc::NativeHandleBuffer;
@ -143,10 +142,6 @@ AndroidTextureBuffer::NativeToI420Buffer() {
// //
// TODO(nisse): Use an I420BufferPool. We then need to extend that // TODO(nisse): Use an I420BufferPool. We then need to extend that
// class, and I420Buffer, to support our memory layout. // class, and I420Buffer, to support our memory layout.
// TODO(nisse): Depending on
// system_wrappers/include/aligned_malloc.h violate current DEPS
// rules. We get away for now only because it is indirectly included
// by i420_buffer.h
std::unique_ptr<uint8_t, webrtc::AlignedFreeDeleter> yuv_data( std::unique_ptr<uint8_t, webrtc::AlignedFreeDeleter> yuv_data(
static_cast<uint8_t*>(webrtc::AlignedMalloc(size, kBufferAlignment))); static_cast<uint8_t*>(webrtc::AlignedMalloc(size, kBufferAlignment)));
// See YuvConverter.java for the required layout. // See YuvConverter.java for the required layout.

View File

@ -160,7 +160,7 @@ void AVFoundationVideoCapturer::CaptureSampleBuffer(
// Applying rotation is only supported for legacy reasons and performance is // Applying rotation is only supported for legacy reasons and performance is
// not critical here. // not critical here.
if (apply_rotation() && rotation != kVideoRotation_0) { if (apply_rotation() && rotation != kVideoRotation_0) {
buffer = I420Buffer::Rotate(*buffer->NativeToI420Buffer(), buffer = I420Buffer::Rotate(buffer->NativeToI420Buffer(),
rotation); rotation);
if (rotation == kVideoRotation_90 || rotation == kVideoRotation_270) { if (rotation == kVideoRotation_90 || rotation == kVideoRotation_270) {
std::swap(captured_width, captured_height); std::swap(captured_width, captured_height);

View File

@ -12,7 +12,6 @@
#import "RTCVideoFrame+Private.h" #import "RTCVideoFrame+Private.h"
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/common_video/include/corevideo_frame_buffer.h" #include "webrtc/common_video/include/corevideo_frame_buffer.h"
namespace webrtc { namespace webrtc {
@ -61,7 +60,7 @@ void ObjcVideoTrackSource::OnCapturedFrame(RTCVideoFrame* frame) {
// not critical here. // not critical here.
webrtc::VideoRotation rotation = static_cast<webrtc::VideoRotation>(frame.rotation); webrtc::VideoRotation rotation = static_cast<webrtc::VideoRotation>(frame.rotation);
if (apply_rotation() && rotation != kVideoRotation_0) { if (apply_rotation() && rotation != kVideoRotation_0) {
buffer = I420Buffer::Rotate(*buffer->NativeToI420Buffer(), rotation); buffer = I420Buffer::Rotate(buffer->NativeToI420Buffer(), rotation);
rotation = kVideoRotation_0; rotation = kVideoRotation_0;
} }

View File

@ -10,7 +10,6 @@
#ifndef WEBRTC_TEST_FAKE_TEXTURE_FRAME_H_ #ifndef WEBRTC_TEST_FAKE_TEXTURE_FRAME_H_
#define WEBRTC_TEST_FAKE_TEXTURE_FRAME_H_ #define WEBRTC_TEST_FAKE_TEXTURE_FRAME_H_
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/api/video/video_frame.h" #include "webrtc/api/video/video_frame.h"
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/common_video/include/video_frame_buffer.h" #include "webrtc/common_video/include/video_frame_buffer.h"

View File

@ -17,7 +17,6 @@
#include "webrtc/base/logging.h" #include "webrtc/base/logging.h"
#include "webrtc/base/platform_thread.h" #include "webrtc/base/platform_thread.h"
#include "webrtc/base/task_queue.h" #include "webrtc/base/task_queue.h"
#include "webrtc/base/timeutils.h"
#include "webrtc/system_wrappers/include/clock.h" #include "webrtc/system_wrappers/include/clock.h"
#include "webrtc/system_wrappers/include/sleep.h" #include "webrtc/system_wrappers/include/sleep.h"
#include "webrtc/test/frame_generator.h" #include "webrtc/test/frame_generator.h"

View File

@ -23,7 +23,6 @@
#include "webrtc/base/checks.h" #include "webrtc/base/checks.h"
#include "webrtc/base/logging.h" #include "webrtc/base/logging.h"
#include "webrtc/base/numerics/exp_filter.h" #include "webrtc/base/numerics/exp_filter.h"
#include "webrtc/base/timeutils.h"
#include "webrtc/common_video/include/frame_callback.h" #include "webrtc/common_video/include/frame_callback.h"
#include "webrtc/system_wrappers/include/field_trial.h" #include "webrtc/system_wrappers/include/field_trial.h"

View File

@ -12,7 +12,6 @@
#include <memory> #include <memory>
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/api/video/video_frame.h" #include "webrtc/api/video/video_frame.h"
#include "webrtc/api/video/video_rotation.h" #include "webrtc/api/video/video_rotation.h"
#include "webrtc/modules/video_coding/include/video_codec_interface.h" #include "webrtc/modules/video_coding/include/video_codec_interface.h"

View File

@ -18,7 +18,6 @@
#include "webrtc/base/logging.h" #include "webrtc/base/logging.h"
#include "webrtc/base/platform_thread.h" #include "webrtc/base/platform_thread.h"
#include "webrtc/base/rate_limiter.h" #include "webrtc/base/rate_limiter.h"
#include "webrtc/base/timeutils.h"
#include "webrtc/call/call.h" #include "webrtc/call/call.h"
#include "webrtc/common_video/include/frame_callback.h" #include "webrtc/common_video/include/frame_callback.h"
#include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h" #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h"

View File

@ -17,6 +17,8 @@
// this file until we have figured out how to refactor and clean up // this file until we have figured out how to refactor and clean up
// related interfaces. // related interfaces.
#include "webrtc/api/video/video_frame.h"
#include "webrtc/api/video/i420_buffer.h"
#include "webrtc/common_types.h" #include "webrtc/common_types.h"
#include "webrtc/typedefs.h" #include "webrtc/typedefs.h"