This CL implements NACK based reference picture selection for VP8. A separate
class is used for keeping track of the references and managing the VP8 encode
flags. Appropriate tests have also been added.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/284002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@1082 4adac7df-926f-26a2-2b94-8c16560cd09d
Changing the assignment operator in VCMJitterBuffer to a named
function (CopyFrom) instead, since it is not a straight
assignment. Also fixing two bugs in the jitter copy function.
Bug fix in VCMEncodedFrame: The copy constructor did not
copy _length.
In VCM codec database, make sure that the callback object is
preserved when copying back from secondary to primary decoder.
In VP8 wrapper, adding code to copy the _decodedImage to the
Copy() method.
Bugfix in video_coding_test rtp_player:
The retransmissions where made in reverse order. Now new items are
appended to the end of the LostPackets list, which makes the order
correct when retransmitting.
Handling the case when cloning an unused decoder state:
When the decoder has not successfully decoded a frame yet,
it cannot be cloned. A NULL pointer will be returned all
the way out to VideoCodingModuleImpl::Decode(). When this
happens, the VCM will call Reset() for the dual receiver,
in order to reset the state to kPassive.
Review URL: http://webrtc-codereview.appspot.com/239010
git-svn-id: http://webrtc.googlecode.com/svn/trunk@873 4adac7df-926f-26a2-2b94-8c16560cd09d
call. strncopy will not explicity copy or add a "\0" therefore
strcat did not know where to append the "\n" which was causing
an out of bounds crash.
Because we are checking the length, strcpy should be good enough
as it also copies the "\0". Please note that that I am pre-emptively
adding 2 instead of 1 to the length to take into account of the \n
that will be added later.
Review URL: http://webrtc-codereview.appspot.com/253004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@857 4adac7df-926f-26a2-2b94-8c16560cd09d
Changes how we signal frame rate and frame durations to the encoder. Rather
than changing the time base, we now only modify the frame durations, while
keeping the timebase constant. The frame duration is currently calculated
from the average input frame rate. Ideally, the frame duration should
be calculated as the timestamp diff, which is the real duration of a
frame, but the encoder doesn't seem to like too varying durations.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/247001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@795 4adac7df-926f-26a2-2b94-8c16560cd09d
The VP8 decoder wrapper will request key frames 30 frames after seeing
a packet loss, if it hasn't received a state refresh (only possible
through key frames in this version).
For this to be possible the jitter buffer has been made aware of
picture ids to be able to detect frame losses. Legacy JB code to
handle streams without marker bits was also removed since it
conflicts with streams with FEC.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/239002
git-svn-id: http://webrtc.googlecode.com/svn/trunk@774 4adac7df-926f-26a2-2b94-8c16560cd09d
Disable _missingFrame bit since we can't set it correctly with FEC.
No longer return more than one decoded frame per Decode() call.
This is a work-around for a bug where the frame info map was popped more often than items were added to the map.
BUG=
TEST=
Review URL: http://webrtc-codereview.appspot.com/215001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@722 4adac7df-926f-26a2-2b94-8c16560cd09d
This change adds support for VP8 partitions in the video jitter buffer and
the VP8 encoder and decoder wrappers. The feature is currently disabled by
default since it requires a later version of libvpx.
With this change the jitter buffer will also start keeping track of each
packet header until decoding, and the VCMSessionInfo and VCMPacket objects
will keep pointers into the encoded frame buffers.
Review URL: http://webrtc-codereview.appspot.com/137021
git-svn-id: http://webrtc.googlecode.com/svn/trunk@558 4adac7df-926f-26a2-2b94-8c16560cd09d
1) Added VP8E_SET_STATIC_THRESHOLD which sets threshold for
forcing static macroblocks to skipped mode
(useful for encoding of static background).
2) Removed some code in decoding to allow for
decoding of incomplete frames.
3) Minor change to MaxIntraTarget()
4) Added control setting for maximum (target) size of
intra-frame.
5) Increased kf_max_dist(reduce/remove key-frame periodicity)
since we use kf_auto_mode.
Review URL: http://webrtc-codereview.appspot.com/101001
git-svn-id: http://webrtc.googlecode.com/svn/trunk@314 4adac7df-926f-26a2-2b94-8c16560cd09d