mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 14:18:24 +02:00
Merge branch 'master' of https://github.com/worklist/hifi into fix_key_press_event
This commit is contained in:
commit
d765b58551
3 changed files with 23 additions and 19 deletions
|
@ -2233,7 +2233,8 @@ void Application::update(float deltaTime) {
|
||||||
_myAvatar.getHead().setLookAtPosition(lookAtSpot);
|
_myAvatar.getHead().setLookAtPosition(lookAtSpot);
|
||||||
} else {
|
} else {
|
||||||
// Just look in direction of the mouse ray
|
// Just look in direction of the mouse ray
|
||||||
glm::vec3 myLookAtFromMouse(mouseRayOrigin + mouseRayDirection);
|
const float FAR_AWAY_STARE = TREE_SCALE;
|
||||||
|
glm::vec3 myLookAtFromMouse(mouseRayOrigin + mouseRayDirection * FAR_AWAY_STARE);
|
||||||
_myAvatar.getHead().setLookAtPosition(myLookAtFromMouse);
|
_myAvatar.getHead().setLookAtPosition(myLookAtFromMouse);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2926,8 +2927,9 @@ void Application::displaySide(Camera& whichCamera) {
|
||||||
_myAvatar.getHead().setLookAtPosition(_myCamera.getPosition());
|
_myAvatar.getHead().setLookAtPosition(_myCamera.getPosition());
|
||||||
}
|
}
|
||||||
_myAvatar.render(_lookingInMirror->isChecked(), _renderAvatarBalls->isChecked());
|
_myAvatar.render(_lookingInMirror->isChecked(), _renderAvatarBalls->isChecked());
|
||||||
|
_myAvatar.setDisplayingLookatVectors(_renderLookatOn->isChecked());
|
||||||
|
|
||||||
if (_renderLookatIndicatorOn->isChecked() && _isLookingAtOtherAvatar) {
|
if (_renderLookatIndicatorOn->isChecked()) {
|
||||||
renderLookatIndicator(_lookatOtherPosition, whichCamera);
|
renderLookatIndicator(_lookatOtherPosition, whichCamera);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -465,9 +465,12 @@ void FrameGrabber::grabFrame() {
|
||||||
color = image;
|
color = image;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const int ENCODED_FACE_WIDTH = 128;
|
||||||
|
const int ENCODED_FACE_HEIGHT = 128;
|
||||||
int encodedWidth;
|
int encodedWidth;
|
||||||
int encodedHeight;
|
int encodedHeight;
|
||||||
int depthBitrateMultiplier = 1;
|
float colorBitrateMultiplier = 1.0f;
|
||||||
|
float depthBitrateMultiplier = 1.0f;
|
||||||
Mat faceTransform;
|
Mat faceTransform;
|
||||||
float aspectRatio;
|
float aspectRatio;
|
||||||
if (_videoSendMode == FULL_FRAME_VIDEO) {
|
if (_videoSendMode == FULL_FRAME_VIDEO) {
|
||||||
|
@ -476,6 +479,7 @@ void FrameGrabber::grabFrame() {
|
||||||
encodedWidth = color.cols;
|
encodedWidth = color.cols;
|
||||||
encodedHeight = color.rows;
|
encodedHeight = color.rows;
|
||||||
aspectRatio = FULL_FRAME_ASPECT;
|
aspectRatio = FULL_FRAME_ASPECT;
|
||||||
|
colorBitrateMultiplier = 4.0f;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// if we don't have a search window (yet), try using the face cascade
|
// if we don't have a search window (yet), try using the face cascade
|
||||||
|
@ -510,11 +514,9 @@ void FrameGrabber::grabFrame() {
|
||||||
Rect imageBounds(0, 0, color.cols, color.rows);
|
Rect imageBounds(0, 0, color.cols, color.rows);
|
||||||
_searchWindow = Rect(clip(faceBounds.tl(), imageBounds), clip(faceBounds.br(), imageBounds));
|
_searchWindow = Rect(clip(faceBounds.tl(), imageBounds), clip(faceBounds.br(), imageBounds));
|
||||||
}
|
}
|
||||||
const int ENCODED_FACE_WIDTH = 128;
|
|
||||||
const int ENCODED_FACE_HEIGHT = 128;
|
|
||||||
encodedWidth = ENCODED_FACE_WIDTH;
|
encodedWidth = ENCODED_FACE_WIDTH;
|
||||||
encodedHeight = ENCODED_FACE_HEIGHT;
|
encodedHeight = ENCODED_FACE_HEIGHT;
|
||||||
depthBitrateMultiplier = 2;
|
depthBitrateMultiplier = 2.0f;
|
||||||
|
|
||||||
// correct for 180 degree rotations
|
// correct for 180 degree rotations
|
||||||
if (faceRect.angle < -90.0f) {
|
if (faceRect.angle < -90.0f) {
|
||||||
|
@ -595,7 +597,7 @@ void FrameGrabber::grabFrame() {
|
||||||
// initialize encoder context(s)
|
// initialize encoder context(s)
|
||||||
vpx_codec_enc_cfg_t codecConfig;
|
vpx_codec_enc_cfg_t codecConfig;
|
||||||
vpx_codec_enc_config_default(vpx_codec_vp8_cx(), &codecConfig, 0);
|
vpx_codec_enc_config_default(vpx_codec_vp8_cx(), &codecConfig, 0);
|
||||||
codecConfig.rc_target_bitrate = encodedWidth * encodedHeight *
|
codecConfig.rc_target_bitrate = ENCODED_FACE_WIDTH * ENCODED_FACE_HEIGHT * colorBitrateMultiplier *
|
||||||
codecConfig.rc_target_bitrate / codecConfig.g_w / codecConfig.g_h;
|
codecConfig.rc_target_bitrate / codecConfig.g_w / codecConfig.g_h;
|
||||||
codecConfig.g_w = encodedWidth;
|
codecConfig.g_w = encodedWidth;
|
||||||
codecConfig.g_h = encodedHeight;
|
codecConfig.g_h = encodedHeight;
|
||||||
|
|
|
@ -163,21 +163,21 @@ int Face::processVideoMessage(unsigned char* packetData, size_t dataBytes) {
|
||||||
int ybr = ysrc[image->w + 1];
|
int ybr = ysrc[image->w + 1];
|
||||||
ysrc += 2;
|
ysrc += 2;
|
||||||
|
|
||||||
tl[0] = ytl + redOffset;
|
tl[0] = saturate_cast<uchar>(ytl + redOffset);
|
||||||
tl[1] = ytl - greenOffset;
|
tl[1] = saturate_cast<uchar>(ytl - greenOffset);
|
||||||
tl[2] = ytl + blueOffset;
|
tl[2] = saturate_cast<uchar>(ytl + blueOffset);
|
||||||
|
|
||||||
tr[0] = ytr + redOffset;
|
tr[0] = saturate_cast<uchar>(ytr + redOffset);
|
||||||
tr[1] = ytr - greenOffset;
|
tr[1] = saturate_cast<uchar>(ytr - greenOffset);
|
||||||
tr[2] = ytr + blueOffset;
|
tr[2] = saturate_cast<uchar>(ytr + blueOffset);
|
||||||
|
|
||||||
bl[0] = ybl + redOffset;
|
bl[0] = saturate_cast<uchar>(ybl + redOffset);
|
||||||
bl[1] = ybl - greenOffset;
|
bl[1] = saturate_cast<uchar>(ybl - greenOffset);
|
||||||
bl[2] = ybl + blueOffset;
|
bl[2] = saturate_cast<uchar>(ybl + blueOffset);
|
||||||
|
|
||||||
br[0] = ybr + redOffset;
|
br[0] = saturate_cast<uchar>(ybr + redOffset);
|
||||||
br[1] = ybr - greenOffset;
|
br[1] = saturate_cast<uchar>(ybr - greenOffset);
|
||||||
br[2] = ybr + blueOffset;
|
br[2] = saturate_cast<uchar>(ybr + blueOffset);
|
||||||
}
|
}
|
||||||
yline += image->stride[0] * 2;
|
yline += image->stride[0] * 2;
|
||||||
vline += image->stride[1];
|
vline += image->stride[1];
|
||||||
|
|
Loading…
Reference in a new issue