ModuleProcessImpl doesn't act on return codes and having them around is
confusing (it's unclear what an error return code here would do even).
BUG=
R=tommi@webrtc.org
Review URL: https://codereview.webrtc.org/1703833002 .
Cr-Commit-Position: refs/heads/master@{#11747}
initialization and errors.
The stats are counts using enumeration, an instance of
H264EncoderImpl/H264DecoderImpl will report at most 1 Init
and 1 Error for its entire lifetime. This is to avoid
spamming reports if initialization or coding fails and it
retries in a loop. The Init stats will give us an idea of
usage counts for the encoder/decoder. The Error stats will
give us an idea of how many of these usages encounters some
type of problem, such as encode or decode errors.
- WebRTC.Video.H264EncoderImpl.Event:
* kH264EncoderEventInit: Occurs at InitEncode.
* kH264EncoderEventError: Occurs if any type of error
occurs during initialization or encoding.
- WebRTC.Video.H264DecoderImpl.Event:
* kH264DecoderEventInit: Occurs at InitDecode.
* kH264DecoderEventError: Occurs if any type of error
occurs during initialization, AVGetBuffer2 or decoding.
Chromium sibling CL:
https://codereview.chromium.org/1719273002/
BUG=chromium:500605, chromium:468365
Review URL: https://codereview.webrtc.org/1716173002
Cr-Commit-Position: refs/heads/master@{#11736}
The legacy objc API is not included in the GYP generation if include_tests=0.
This causes problems downstream in some cases, so it's changed in this CL.
The libyuv dependency needs to be possible to disable using the build_libyuv
GYP variable.
NOTRY=True
Review URL: https://codereview.webrtc.org/1705733002
Cr-Commit-Position: refs/heads/master@{#11652}
With this change the following tests have been successfully
passing in the iOS Simulator for iPhone 5 and iOS 9:
* audio_decoder_unittests
* common_video_unittests
* modules_tests
* rtc_api_objc_tests
* rtc_pc_unittests
* system_wrappers_unittests
* voice_engine_unittests
The modules_unittests and common_audio_unittests are
handled in https://codereview.webrtc.org/1698033002/
BUG=webrtc:4755
NOTRY=True
Review URL: https://codereview.webrtc.org/1694353003
Cr-Commit-Position: refs/heads/master@{#11646}
Until the bug has been further investigated, we're limiting the number
of threads to 1 to avoid problems. See crbug.com/583348.
BUG=chromium:500605, chromium:468365, chromium:583348
Review URL: https://codereview.webrtc.org/1677543002
Cr-Commit-Position: refs/heads/master@{#11536}
There were a couple of GN and GYP references that were incorrect in Chromium builds:
- GN references between WebRTC targets must be using relative paths, not absolute.
- GYP references between WebRTC targets must be using the <(webrtc_root)v variable
in order to be expanded to the correct path in a Chromium build.
NOTRY=True
TBR=hjon@webrtc.org, hbos@webrtc.org
Review URL: https://codereview.webrtc.org/1681493002
Cr-Commit-Position: refs/heads/master@{#11521}
Extracts shared members outside the two objects, removing PayloadRouter
from receivers and the VCM for ViEChannel from senders.
Removes Start/StopThreadsAndSetSharedMembers that was used to set the
shared state between them.
Also adding DCHECKs to document what's only used by the
sender/receiver side.
BUG=webrtc:5494
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1654913002 .
Cr-Commit-Position: refs/heads/master@{#11500}
Permits measuring encoding time even when performed on another thread,
typically for hardware encoding, instead of assuming that encoding is
blocking the calling thread.
Permitted encoding time is increased for hardware encoders since they
can be timed to keep 30fps, for instance, without indicating overload.
Merges EncodingTimeObserver into EncodedFrameObserver to have one post-encode
callback.
BUG=webrtc:5042, webrtc:5132
R=asapersson@webrtc.org, mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1569853002 .
Cr-Commit-Position: refs/heads/master@{#11499}
active_layer_ could be dereferenced while being -1...
Also added som DCHECKs
BUG=webrtc:5490
Review URL: https://codereview.webrtc.org/1656233002
Cr-Commit-Position: refs/heads/master@{#11486}
Renamed the WEBRTC_THIRD_PARTY_H264 macro to WEBRTC_USE_H264 to match flag name.
The idea is to be able to turn off H264 from chromium with this function because...
1) The Chromium trybots will soon use this flag, we want to temporarily disable H264 from chromium even if flag is set in case something is broken. That way when we are ready to flip the switch the trybots will run our test code then and not after it is already enabled.
2) If feature is launched and we discover major problems we can easily disable H264 and merge with beta/stable.
3) Or, if feature is behind a *runtime* flag, this is how we would control if it is used or not.
The idea is to call DisableRtcUseH264 in chromium's PeerConnectionDependencyFactory.
BUG=chromium:500605, chromium:468365
NOTRY=True
NOPRESUBMIT=True
Review URL: https://codereview.webrtc.org/1657273002
Cr-Commit-Position: refs/heads/master@{#11474}
New flag: rtc_initialize_ffmpeg, default value = !build_with_chromium.
In WebRTC standalone we initialize FFmpeg by default, in Chromium we don't by default.
Chromium is an external project that also use FFmpeg. If both projects do FFmpeg initialization code things will break. The flag makes it possible for other external projects than chromium to decide whether or not WebRTC should initialize FFmpeg.
BUG=chromium:500605, chromium:468365, webrtc:5427
Review URL: https://codereview.webrtc.org/1639273002
Cr-Commit-Position: refs/heads/master@{#11456}
This argument is never used as a reference and the pointer that's bound
to the const reference may be nullptr. This is undefined behavior and
barks under UBSan.
BUG=webrtc:5124
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1642863003 .
Cr-Commit-Position: refs/heads/master@{#11418}
It works on all platforms except Android and iOS (FFmpeg limitation).
Implemented behind compile time flags, off by default.
The plan is to have it enabled in Chrome (see bug), but not in Chromium/webrtc by default.
Flags to turn it on:
- rtc_use_h264 = true
- ffmpeg_branding = "Chrome" (or other brand that includes H.264 decoder)
Tests using H264:
- video_loopback --codec=H264
- screenshare_loopback --codec=H264
- video_engine_tests (EndToEndTest.SendsAndReceivesH264)
NOTRY=True
BUG=500605, 468365
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=5424
Review URL: https://codereview.webrtc.org/1306813009
Cr-Commit-Position: refs/heads/master@{#11390}
Issue may occur for very small input images (e.g. 4x4) when encoded image length > input image size.
BUG=chromium:571594
Review URL: https://codereview.webrtc.org/1626373002
Cr-Commit-Position: refs/heads/master@{#11376}
Removes use of global VP8EncoderFactory::use_simulcast_adapter which is
thread-unsafe. Also the code wasn't in use.
BUG=
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1598803005 .
Cr-Commit-Position: refs/heads/master@{#11370}
Sparse macro replaced for all video histograms that have a constant name.
BUG=webrtc:5283
Review URL: https://codereview.webrtc.org/1616153005
Cr-Commit-Position: refs/heads/master@{#11368}
The FFmpeg video decoder requires up to 8 additional bytes to be allocated for its encoded image buffer input, due to optimized byte readers over-reading on some platforms.
We plan to use FFmpeg for a soon-to-land H.264 enc/dec.
This CL adds support for padding encoded image buffers based on codec type, and makes sure calls to VCMEncodedFrame::VerifyAndAllocate use the padding.
All padding constants are 0 but making H.264 pad with 8 bytes will be a one-line change.
Also, added -framework CoreFoundation to webrtc_h264_video_toolbox which was missing.
BUG=chromium:468365
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=5424
NOTRY=True
Review URL: https://codereview.webrtc.org/1602523004
Cr-Commit-Position: refs/heads/master@{#11337}
Issue may occur for very small input images (e.g. 4x4) when encoded image length > input image size.
BUG=chromium:578193
Review URL: https://codereview.webrtc.org/1603643006
Cr-Commit-Position: refs/heads/master@{#11329}
Provides a better string (provides names of all implementations), but
also fixes a crash when accessing the ImplementationName() of
SimulcastEncoderAdapter where InitEncode has failed.
BUG=chromium:577932, webrtc:4897
R=stefan@webrtc.org
Review URL: https://codereview.webrtc.org/1599353003 .
Cr-Commit-Position: refs/heads/master@{#11321}
Constructing default options is racy when initializing multiple VP8
encoders in parallel. This is only used for VP8 temporal layers. Adding
TemporalLayerFactory to VP8 codec specifics instead of generic options.
Removes the last webrtc::Config uses/includes from video code.
Also removes VideoCodec equality operators which are no longer in use.
BUG=webrtc:5410
R=stefan@webrtc.orgTBR=mflodman@webrtc.org
Review URL: https://codereview.webrtc.org/1606613003 .
Cr-Commit-Position: refs/heads/master@{#11307}
Reason for revert:
Reverting due to problem with roll:
/b/build/slave/linux/build/src/buildtools/linux64/gn gen //out/Release '--args=ffmpeg_branding="Chrome" proprietary_codecs=true is_debug=false is_component_build=false use_goma=true goma_dir="/b/build/goma" symbol_level=1 dcheck_always_on=true' --check --runtime-deps-list-file=/b/build/slave/linux/build/src/out/Release/runtime_deps
-> returned 1
ERROR at //third_party/webrtc/BUILD.gn:245:18: Item not found
configs -= [ "//build/config/clang:find_bad_constructs" ]
^-----------------------------------------
You were trying to remove "//build/config/clang:find_bad_constructs"
from the list but it wasn't there.
GN gen failed: 1
step returned non-zero exit code: 1
@@@STEP_FAILURE@@@
Original issue's description:
> Use an explicit identifier in Config
>
> This let's us use them to configure them when using WebRTC as an external library. One use case where this is necessary is in the Android OS.
>
> Committed: https://crrev.com/25249d92d3cf105bcc7b684c8924ccdbc9afcb93
> Cr-Commit-Position: refs/heads/master@{#11231}
TBR=henrik.lundin@webrtc.org,stefan@webrtc.org,tommi@chromium.org,aluebs@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.webrtc.org/1586563003
Cr-Commit-Position: refs/heads/master@{#11239}
This let's us use them to configure them when using WebRTC as an external library. One use case where this is necessary is in the Android OS.
Review URL: https://codereview.webrtc.org/1538643004
Cr-Commit-Position: refs/heads/master@{#11231}
Defining use_third_party_h264 directly, and indirectly defining use_openh264 (from third_party/openh264) and ffmpeg_branding (from third_party/ffmpeg).
These will be used in a follow-up CL that adds an encoder and decoder implementation.
The flags are added in this CL so that they can be used by trybots/waterfall bots in GN without "Build argument had no effect" errors. Equivalent GYP changes are also added.
BUG=468365
Review URL: https://codereview.webrtc.org/1575913003
Cr-Commit-Position: refs/heads/master@{#11204}
Tests were failing on android with new libvpx.
vp9 speed setting was changed to 8 recently and some recent changes
in libvpx require update for the tests to pass.
TBR=stefan@webrtc.org
BUG=webrtc:5401
Review URL: https://codereview.webrtc.org/1569903002 .
Cr-Commit-Position: refs/heads/master@{#11173}
Macro incorrectly displays DISABLED_ON_ANDROID in test names for
parameterized tests under --gtest_list_tests, causing tests to be
disabled on all platforms since they contain the DISABLED_ prefix rather
than their expanded variants.
This expands the macro variants to inline if they're disabled or not,
and removes building some tests under configurations where they should
fail, instead of building them but disabling them by default.
The change also removes gtest_disable.h as an unused include from many
other files.
BUG=webrtc:5387, webrtc:5400
R=kjellander@webrtc.org, phoglund@webrtc.orgTBR=henrik.lundin@webrtc.org
Review URL: https://codereview.webrtc.org/1547343002 .
Cr-Commit-Position: refs/heads/master@{#11150}
This implementation will be replaced by a faster one and sparse will be removed.
BUG=webrtc:5283
Review URL: https://codereview.webrtc.org/1530913002
Cr-Commit-Position: refs/heads/master@{#11099}