Add CVO support to video_coding layer.
CVO is, instead of rotating frame on the capture side, to have renderer rotate the frame based on a new rtp header extension. The change includes 1. encoder side needs to pass this from raw frame to the encoded frame. 2. decoder needs to copy it from rtp packet (only the last packet of a frame has this info) to decoded frame. R=mflodman@webrtc.org TBR=stefan@webrtc.org BUG=4145 Review URL: https://webrtc-codereview.appspot.com/46429006 Cr-Commit-Position: refs/heads/master@{#8767} git-svn-id: http://webrtc.googlecode.com/svn/trunk@8767 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -16,26 +16,26 @@
|
||||
namespace webrtc {
|
||||
|
||||
VCMEncodedFrame::VCMEncodedFrame()
|
||||
:
|
||||
webrtc::EncodedImage(),
|
||||
_renderTimeMs(-1),
|
||||
_payloadType(0),
|
||||
_missingFrame(false),
|
||||
_codec(kVideoCodecUnknown),
|
||||
_fragmentation()
|
||||
{
|
||||
: webrtc::EncodedImage(),
|
||||
_renderTimeMs(-1),
|
||||
_payloadType(0),
|
||||
_missingFrame(false),
|
||||
_codec(kVideoCodecUnknown),
|
||||
_fragmentation(),
|
||||
_rotation(kVideoRotation_0),
|
||||
_rotation_set(false) {
|
||||
_codecSpecificInfo.codecType = kVideoCodecUnknown;
|
||||
}
|
||||
|
||||
VCMEncodedFrame::VCMEncodedFrame(const webrtc::EncodedImage& rhs)
|
||||
:
|
||||
webrtc::EncodedImage(rhs),
|
||||
_renderTimeMs(-1),
|
||||
_payloadType(0),
|
||||
_missingFrame(false),
|
||||
_codec(kVideoCodecUnknown),
|
||||
_fragmentation()
|
||||
{
|
||||
: webrtc::EncodedImage(rhs),
|
||||
_renderTimeMs(-1),
|
||||
_payloadType(0),
|
||||
_missingFrame(false),
|
||||
_codec(kVideoCodecUnknown),
|
||||
_fragmentation(),
|
||||
_rotation(kVideoRotation_0),
|
||||
_rotation_set(false) {
|
||||
_codecSpecificInfo.codecType = kVideoCodecUnknown;
|
||||
_buffer = NULL;
|
||||
_size = 0;
|
||||
@ -48,14 +48,15 @@ _fragmentation()
|
||||
}
|
||||
|
||||
VCMEncodedFrame::VCMEncodedFrame(const VCMEncodedFrame& rhs)
|
||||
:
|
||||
webrtc::EncodedImage(rhs),
|
||||
_renderTimeMs(rhs._renderTimeMs),
|
||||
_payloadType(rhs._payloadType),
|
||||
_missingFrame(rhs._missingFrame),
|
||||
_codecSpecificInfo(rhs._codecSpecificInfo),
|
||||
_codec(rhs._codec),
|
||||
_fragmentation() {
|
||||
: webrtc::EncodedImage(rhs),
|
||||
_renderTimeMs(rhs._renderTimeMs),
|
||||
_payloadType(rhs._payloadType),
|
||||
_missingFrame(rhs._missingFrame),
|
||||
_codecSpecificInfo(rhs._codecSpecificInfo),
|
||||
_codec(rhs._codec),
|
||||
_fragmentation(),
|
||||
_rotation(rhs._rotation),
|
||||
_rotation_set(rhs._rotation_set) {
|
||||
_buffer = NULL;
|
||||
_size = 0;
|
||||
_length = 0;
|
||||
@ -96,6 +97,8 @@ void VCMEncodedFrame::Reset()
|
||||
_length = 0;
|
||||
_codecSpecificInfo.codecType = kVideoCodecUnknown;
|
||||
_codec = kVideoCodecUnknown;
|
||||
_rotation = kVideoRotation_0;
|
||||
_rotation_set = false;
|
||||
}
|
||||
|
||||
void VCMEncodedFrame::CopyCodecSpecific(const RTPVideoHeader* header)
|
||||
|
||||
Reference in New Issue
Block a user