Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

139 lines
3.6 KiB
Plaintext
Raw Normal View History

# Copyright (c) 2014 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.
import("../build/webrtc.gni")
config("common_video_config") {
include_dirs = [
"include",
"libyuv/include",
]
}
rtc_static_library("common_video") {
sources = [
"bitrate_adjuster.cc",
Reland of Move bitstream parser to more appropriate directory. (patchset #1 id:1 of https://codereview.webrtc.org/2430353004/ ) Reason for revert: Internal project has been fixed Original issue's description: > Revert of Move bitstream parser to more appropriate directory. (patchset #4 id:60001 of https://codereview.webrtc.org/2370853005/ ) > > Reason for revert: > Breaks internal project > > Original issue's description: > > Move current bitstream parser to more appropriate directory. > > > > This CL groups together the code that has to do with parsing H264 bitstreams. > > This code logically belongs together, and having it in the same directory not > > only simplifies things from a project structure perspective, but also makes it > > easier to refactor out common parts incrementally. > > An added benefit is that this simplifies modular compilation, where for example > > one would like a build of WebRTC without the H264 codec-specific parts. > > > > BUG=webrtc:6338 > > > > Committed: https://crrev.com/cc6817e9ce4a5ffc73efb660cf0368afbc7d9a4f > > Cr-Commit-Position: refs/heads/master@{#14684} > > TBR=magjed@webrtc.org,stefan@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:6338 > > Committed: https://crrev.com/f04f14e772f803de39f8a6128e5157127cd35103 > Cr-Commit-Position: refs/heads/master@{#14685} TBR=magjed@webrtc.org,stefan@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:6338 Review-Url: https://codereview.webrtc.org/2434043002 Cr-Commit-Position: refs/heads/master@{#14783}
2016-10-26 02:48:16 -07:00
"h264/h264_bitstream_parser.cc",
"h264/h264_bitstream_parser.h",
"h264/h264_common.cc",
"h264/h264_common.h",
"h264/pps_parser.cc",
"h264/pps_parser.h",
"h264/profile_level_id.cc",
"h264/profile_level_id.h",
"h264/sps_parser.cc",
"h264/sps_parser.h",
"h264/sps_vui_rewriter.cc",
"h264/sps_vui_rewriter.h",
"i420_buffer_pool.cc",
"include/bitrate_adjuster.h",
"include/frame_callback.h",
"include/i420_buffer_pool.h",
"include/incoming_video_stream.h",
Reland #2 of Issue 2434073003: Extract bitrate allocation ... This is yet another reland of https://codereview.webrtc.org/2434073003/ including two fixes: 1. SimulcastRateAllocator did not handle the screenshare settings properly for numSimulcastStreams = 1. Additional test case was added for that. 2. In VideoSender, when rate allocation is updated after setting a new VideoCodec config, only update the state of the EncoderParameters, but don't actually run SetRateAllocation on the encoder itself. This caused some problems upstreams. Please review only the changes after patch set 1. Original description: Extract bitrate allocation of spatial/temporal layers out of codec impl. This CL makes a number of intervowen changes: * Add BitrateAllocation struct, that contains a codec independent view of how the target bitrate is distributed over spatial and temporal layers. * Adds the BitrateAllocator interface, which takes a bitrate and frame rate and produces a BitrateAllocation. * A default (non layered) implementation is added, and SimulcastRateAllocator is extended to fully handle VP8 allocation. This includes capturing TemporalLayer instances created by the encoder. * ViEEncoder now owns both the bitrate allocator and the temporal layer factories for VP8. This allows allocation to happen fully outside of the encoder implementation. This refactoring will make it possible for ViEEncoder to signal the full picture of target bitrates to the RTCP module. BUG=webrtc:6301 R=stefan@webrtc.org Review URL: https://codereview.webrtc.org/2510583002 . Cr-Commit-Position: refs/heads/master@{#15105}
2016-11-16 16:41:30 +01:00
"include/video_bitrate_allocator.h",
"include/video_frame_buffer.h",
"incoming_video_stream.cc",
"libyuv/include/webrtc_libyuv.h",
"libyuv/webrtc_libyuv.cc",
"video_frame.cc",
Revert 8599 "Revert 8580 "Unify underlying frame buffer in I420VideoFrame and..."" It's possible to build Chrome on Windows with this patch now. BUG=1128 > This is unfortunately causing build problems in Chrome on Windows. >> Unify underlying frame buffer in I420VideoFrame and WebRtcVideoFrame >> >> Currently, I420VideoFrame uses three webrtc::Plane to store pixel data, and WebRtcVideoFrame uses WebRtcVideoFrame::FrameBuffer/webrtc::VideoFrame. The two subclasses WebRtcTextureVideoFrame and TextureVideoFrame use a NativeHandle to store pixel data, and there is also a class WebRtcVideoRenderFrame that wraps an I420VideoFrame. >> >> This CL replaces these classes with a new interface VideoFrameBuffer that provides the common functionality. This makes it possible to remove deep frame copies between cricket::VideoFrame and I420VideoFrame. >> >> Some additional minor changes are: >> * Disallow creation of 0x0 texture frames. >> * Remove the half-implemented ref count functions in I420VideoFrame. >> * Remove the Alias functionality in WebRtcVideoFrame >> >> The final goal is to eliminate all frame copies, but to limit the scope of this CL, some planned changes are postponed to follow-up CL:s (see planned changes in https://webrtc-codereview.appspot.com/38879004, or https://docs.google.com/document/d/1bxoJZNmlo-Z9GnQwIaWpEG6hDlL_W-bzka8Zb_K2NbA/preview). Specifically, this CL: >> * Keeps empty subclasses WebRtcTextureVideoFrame and TextureVideoFrame, and just delegates the construction to the superclass. >> * Keeps the deep copies from cricket::VideoFrame to I420VideoFrame. >> >> BUG=1128 >> R=mflodman@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, tommi@webrtc.org >> >> Review URL: https://webrtc-codereview.appspot.com/42469004 R=pbos@webrtc.org TBR=mflodman, pbos, perkj, tommi Review URL: https://webrtc-codereview.appspot.com/45489004 Cr-Commit-Position: refs/heads/master@{#8616} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8616 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-05 14:03:08 +00:00
"video_frame_buffer.cc",
"video_render_frames.cc",
"video_render_frames.h",
]
include_dirs = [ "../modules/interface" ]
public_configs = [ ":common_video_config" ]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
"..:webrtc_common",
"../base:rtc_task_queue",
"../system_wrappers",
]
if (rtc_build_libyuv) {
deps += [ "$rtc_libyuv_dir" ]
public_deps = [
"$rtc_libyuv_dir",
]
} else {
# Need to add a directory normally exported by libyuv.
include_dirs += [ "$rtc_libyuv_dir/include" ]
}
if (is_ios || is_mac) {
sources += [
"corevideo_frame_buffer.cc",
"include/corevideo_frame_buffer.h",
]
libs = [ "CoreVideo.framework" ]
}
}
if (rtc_include_tests) {
common_video_resources = [ "//resources/foreman_cif.yuv" ]
if (is_ios) {
bundle_data("common_video_unittests_bundle_data") {
testonly = true
sources = common_video_resources
outputs = [
"{{bundle_resources_dir}}/{{source_file_part}}",
]
}
}
rtc_test("common_video_unittests") {
testonly = true
sources = [
"bitrate_adjuster_unittest.cc",
Reland of Move bitstream parser to more appropriate directory. (patchset #1 id:1 of https://codereview.webrtc.org/2430353004/ ) Reason for revert: Internal project has been fixed Original issue's description: > Revert of Move bitstream parser to more appropriate directory. (patchset #4 id:60001 of https://codereview.webrtc.org/2370853005/ ) > > Reason for revert: > Breaks internal project > > Original issue's description: > > Move current bitstream parser to more appropriate directory. > > > > This CL groups together the code that has to do with parsing H264 bitstreams. > > This code logically belongs together, and having it in the same directory not > > only simplifies things from a project structure perspective, but also makes it > > easier to refactor out common parts incrementally. > > An added benefit is that this simplifies modular compilation, where for example > > one would like a build of WebRTC without the H264 codec-specific parts. > > > > BUG=webrtc:6338 > > > > Committed: https://crrev.com/cc6817e9ce4a5ffc73efb660cf0368afbc7d9a4f > > Cr-Commit-Position: refs/heads/master@{#14684} > > TBR=magjed@webrtc.org,stefan@webrtc.org > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=webrtc:6338 > > Committed: https://crrev.com/f04f14e772f803de39f8a6128e5157127cd35103 > Cr-Commit-Position: refs/heads/master@{#14685} TBR=magjed@webrtc.org,stefan@webrtc.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:6338 Review-Url: https://codereview.webrtc.org/2434043002 Cr-Commit-Position: refs/heads/master@{#14783}
2016-10-26 02:48:16 -07:00
"h264/h264_bitstream_parser_unittest.cc",
"h264/pps_parser_unittest.cc",
"h264/profile_level_id_unittest.cc",
"h264/sps_parser_unittest.cc",
"h264/sps_vui_rewriter_unittest.cc",
"i420_buffer_pool_unittest.cc",
"i420_video_frame_unittest.cc",
"libyuv/libyuv_unittest.cc",
]
# TODO(jschuh): Bug 1348: fix this warning.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
":common_video",
"../system_wrappers:system_wrappers",
"../test:test_support_main",
"../test:video_test_common",
"//testing/gmock",
"//testing/gtest",
]
data = common_video_resources
if (is_android) {
deps += [ "//testing/android/native_test:native_test_support" ]
shard_timeout = 900
}
if (is_ios) {
deps += [ ":common_video_unittests_bundle_data" ]
}
}
}