Commit Graph

43 Commits

Author SHA1 Message Date
a3209a2b27 Release buffer pool in Vp8DecoderImpl::Release().
Permits reusing an external VP8DecoderImpl instance from another
VideoReceiveStream without a thread-checker DCHECK blowing up. Also
releases buffers that would've been kept in memory even though the
decoder isn't configured.

BUG=
R=magjed@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/50449004

Cr-Commit-Position: refs/heads/master@{#8807}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8807 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-20 13:36:25 +00:00
e155dbeae9 VP8/9EncoderImpl::Encode: Check resolution of input I420VideoFrame
This CL adds checks in Encode to guard against memory reads out of bounds.

R=pbos@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/46429008

Cr-Commit-Position: refs/heads/master@{#8750}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8750 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 12:27:40 +00:00
73d763e71f Add I420 buffer pool to avoid unnecessary allocations
Now when we don't use SwapFrame consistently anymore, we need to recycle allocations with a buffer pool instead. This CL adds a buffer pool class, and updates the vp8 decoder to use it. If this CL lands successfully I will update the other video producers as well.

BUG=1128
R=stefan@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41189004

Cr-Commit-Position: refs/heads/master@{#8748}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8748 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-17 11:41:15 +00:00
2056ee3e3c Revert "Changed argument occurences of const I420VideoFrame* to const I420VideoFrame& and non-const I420VideoFrame& to I420VideoFrame*."
This reverts commit r8731.

Reason for revert: Breakes Chromium FYI bots.

TBR=hbos, tommi

Review URL: https://webrtc-codereview.appspot.com/40359004

Cr-Commit-Position: refs/heads/master@{#8733}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8733 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 13:48:18 +00:00
93d9d6503e I420VideoFrame.CreateFrame: Removed unnecessary buffer size arguments.
R=magjed@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/45629004

Cr-Commit-Position: refs/heads/master@{#8732}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8732 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 13:26:41 +00:00
2dc5fa69b2 Changed argument occurences of const I420VideoFrame* to const I420VideoFrame& and non-const I420VideoFrame& to I420VideoFrame*.
R=magjed@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/40299004

Cr-Commit-Position: refs/heads/master@{#8731}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8731 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-16 13:02:19 +00:00
6daacbc8ae Set cpu_speed parameter for low resolutions, for non-simulcast.
Allow for setting different cpu_speed setting based on resolution, for non-simulcast.
Use the existing low resolution simulcast cpu_speed setting for the non-simulcast case.

No change to simulcast behavior, unless top/highest layer stream is also below CIF resolution,
(in which case all layers will use lower the cpu_speed setting =-4).

BUG=
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/37319004

Cr-Commit-Position: refs/heads/master@{#8603}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8603 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 21:47:18 +00:00
16825b1a82 Use int64_t more consistently for times, in particular for RTT values.
Existing code was inconsistent about whether to use uint16_t, int, unsigned int,
or uint32_t, and sometimes silently truncated one to another, or truncated
int64_t.  Because most core time-handling functions use int64_t, being
consistent about using int64_t unless otherwise necessary minimizes the number
of explicit or implicit casts.

BUG=chromium:81439
TEST=none
R=henrik.lundin@webrtc.org, holmer@google.com, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31349004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8045 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-12 21:51:21 +00:00
9115cde6c9 Merge VP8 changes.
R=stefan@webrtc.org
BUG=

Review URL: https://webrtc-codereview.appspot.com/35389004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7841 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-12-09 10:36:40 +00:00
4591fbd09f Use size_t more consistently for packet/payload lengths.
See design doc at https://docs.google.com/a/chromium.org/document/d/1I6nmE9D_BmCY-IoV6MDPY2V6WYpEI-dg2apWXTfZyUI/edit?usp=sharing for more information.

This CL was reviewed and approved in pieces in the following CLs:
https://webrtc-codereview.appspot.com/24209004/
https://webrtc-codereview.appspot.com/24229004/
https://webrtc-codereview.appspot.com/24259004/
https://webrtc-codereview.appspot.com/25109004/
https://webrtc-codereview.appspot.com/26099004/
https://webrtc-codereview.appspot.com/27069004/
https://webrtc-codereview.appspot.com/27969004/
https://webrtc-codereview.appspot.com/27989004/
https://webrtc-codereview.appspot.com/29009004/
https://webrtc-codereview.appspot.com/30929004/
https://webrtc-codereview.appspot.com/30939004/
https://webrtc-codereview.appspot.com/31999004/
Committing as TBR to the original reviewers.

BUG=chromium:81439
TEST=none
TBR=pthatcher,henrik.lundin,tina.legrand,stefan,tkchin,glaznev,kjellander,perkj,mflodman,henrika,asapersson,niklas.enbom

Review URL: https://webrtc-codereview.appspot.com/23129004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7726 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-20 22:28:14 +00:00
94ff92ceec Use VPX_IMG_FMT_*/VPX_PLANE_* defines
The compatibility layer has been removed upstream:
https://gerrit.chromium.org/gerrit/gitweb?p=webm%2Flibvpx.git;a=commit;h=9cdaa3d72eade9ad162ef8f78a93bd8f85c6de10

BUG=webrtc:3839
R=marpan@google.com, marpan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/22729004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7279 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-23 17:31:47 +00:00
a0d7827b16 Add ability to downscale content to improve quality.
BUG=3712
R=marpan@google.com, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/18169004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7164 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-09-12 11:51:47 +00:00
9c09e6ee2b Add high perf mode to VP8
R=marpan@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14709004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6470 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-17 16:32:08 +00:00
6c75c98964 Propagate capture ntp timestamp from rtp to renderer.
Mostly the interface changes, the real implementation of ntp timestamp will come in a follow up cl.

TEST=new tests and try bots
BUG=3111
R=niklas.enbom@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/11469004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5911 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-15 17:46:33 +00:00
1faef7d084 Use codec width/height as the encoded_image width/height.
The raw_->w and raw_->h which are the stored image width/height may not be the encoded image size in the case when the incoming frame has a odd size.

R=marpan@google.com, marpan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/10289004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5739 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-20 17:00:46 +00:00
7f52a6ef2b Split the implementation of VP8Encoder|Decoder::Create into a seperated file
(vp8_factory.cc).

R=fischman@webrtc.org, marpan@google.com, marpan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/8589004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5606 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-02-24 23:56:39 +00:00
5500d93fe5 Add temporal layer factory.
R=marpan@google.com, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2180004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4691 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-06 11:26:15 +00:00
b2c28c3699 Relanding 4597 - Don't force key frame when decoding with errors.
Makes sure that incomplete key frame or delta frames will be released from the JB when decoding with errors.
The decoder in turn will trigger a PLI until a complete key frame is received in order to start a session.

TBR=stefan@webrtc.org

BUG=

Review URL: https://webrtc-codereview.appspot.com/2097004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4607 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-23 21:54:50 +00:00
ceea41d135 Revert 4597 "Don't force key frame when decoding with errors"
> Don't force key frame when decoding with errors
> 
> BUG=2241
> R=stefan@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/2036004

TBR=mikhal@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2093004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4600 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-23 00:53:24 +00:00
44af55cc44 Don't force key frame when decoding with errors
BUG=2241
R=stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2036004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4597 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-22 23:29:43 +00:00
d2102afa2a Undo libvpx include changes in r4348 to fix build.
A longer term fix is needed, but this at least quickly unblocks the build.

R=pbos@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1816005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4367 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-17 18:48:24 +00:00
a4407329d4 Include files from webrtc/.. paths in video_coding/.
BUG=1662
R=tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1783006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4348 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-16 12:32:05 +00:00
d7148c86c5 Use 3 threads for higher than 720p resolutions
BUG=1893
TEST=untested
R=ajm@google.com, andrew@webrtc.org, dingkai@google.com, marpan@google.com, marpan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1684004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4243 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-18 22:06:42 +00:00
b3e5acfb66 Cleanup traces in WebRTC
Remove some unused traces and add a trace counter for encoded video size.

R=holmer@google.com, mflodman@webrtc.org, stefan@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1476004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4050 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-16 21:13:02 +00:00
1e3c794688 Use 2 threads for HD, or 1 for VGA or less.
BUG=1739
TEST=try bots
Review URL: https://webrtc-codereview.appspot.com/1438005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3996 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-09 18:43:38 +00:00
d25b602dc0 VP8: Avoid copying the codec struct on Reset().
BUG=

Review URL: https://webrtc-codereview.appspot.com/1319013

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3887 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-23 13:08:04 +00:00
48c5882f2a Remove libvpx pre-processor conditions and conditional compile of default temporal layers files.
R=stefan@webrtc.org,marpan@webrtc.org
BUG=201

Review URL: https://webrtc-codereview.appspot.com/1323005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3864 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-17 15:31:40 +00:00
557e92515d Reapply the reverted r3747.
https://code.google.com/p/webrtc/source/detail?r=3747

r3747 timed-out on a tsan test. Verified that it passes
the test and reduced the execution time of that test (r3782).

TBR=stefan@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1292006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3807 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-09 21:21:32 +00:00
806dc3b0e6 More trace events
The goal of this change is to unify tracing events styles
and add trace events for all RTP traffic.

BUG=1555
Review URL: https://webrtc-codereview.appspot.com/1290007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3806 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-09 19:54:10 +00:00
cfc07c943f Revert of r3747.
TBR=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/1277005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3752 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-02 14:55:44 +00:00
747c4cc96e For VGA (640x360), currently 1 thread is used. This change increases it to 2 threads. For HD, 4 threads are enabled.
BUG=none
TEST=run a hangout and screencast high framerate, high resolution windows of youtube.  Observe that 1 cpu is insufficient to maintain high framerate with complex content.
Review URL: https://webrtc-codereview.appspot.com/1203006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3747 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-01 22:16:45 +00:00
84cd8e39cf Disable frame dropper for screenshare mode.
BUG=1466

Review URL: https://webrtc-codereview.appspot.com/1170004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3629 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-03-07 13:12:32 +00:00
eb91792cfd Refactoring temporal layers implementation and adding VideoCodecMode for easier control of codec settings.
Review URL: https://webrtc-codereview.appspot.com/1105007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3528 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-18 14:40:18 +00:00
3d305c64b4 Updates to send side streaming mode:
1. Disabling frame-droppers from the vie encoder and not the channel.
2. Accounting for qpMax in the VP8 wrapper.

Review URL: https://webrtc-codereview.appspot.com/1101007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3492 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-02-10 18:42:55 +00:00
e07c661a29 VP8: Making key frame interval a tunnable parameter
Review URL: https://webrtc-codereview.appspot.com/1070006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3444 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-01-31 16:37:13 +00:00
f222a00881 Use TRACE_EVENT to track time spent in VP8 encoding
Using the TRACE_EVENT macro to log VP8 encoding events.
Review URL: https://webrtc-codereview.appspot.com/968011

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3264 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-12-11 22:27:55 +00:00
fc4a7ee807 Fixes chromium build bots.
BUG=N/A

Review URL: https://webrtc-codereview.appspot.com/971014

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3213 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-30 16:17:44 +00:00
662651ac95 Disable denoise filter for Arm, as it is not optimized enough yet.
BUG=https://code.google.com/p/chrome-os-partner/issues/detail?id=16318
TEST=none
Review URL: https://webrtc-codereview.appspot.com/968008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3195 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-29 09:01:21 +00:00
c09e779766 Allow for 1 layer case to be set in temporal_layers.
Review URL: https://webrtc-codereview.appspot.com/971007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3188 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-28 22:06:21 +00:00
8049608226 VP8 wrapper: updating raw image allocation.
As we set the pointers to the data, there is no need to allocate that memory.

Review URL: https://webrtc-codereview.appspot.com/964021

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3175 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-27 17:06:10 +00:00
3263a7a616 Setting correct stride for VP8 encoder
BUG=1137

Review URL: https://webrtc-codereview.appspot.com/929024

git-svn-id: http://webrtc.googlecode.com/svn/trunk@3140 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-11-21 00:15:19 +00:00
9fedff7c17 Switching to I420VideoFrame
Review URL: https://webrtc-codereview.appspot.com/922004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2983 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-24 18:33:04 +00:00
14b43beb7c Move src/ -> webrtc/
TBR=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/915006

git-svn-id: http://webrtc.googlecode.com/svn/trunk@2963 4adac7df-926f-26a2-2b94-8c16560cd09d
2012-10-22 18:19:23 +00:00