Enabling RFX_PRO key frame handling.
- Also update librfxcodec
This commit is contained in:
parent
2e1f7f1484
commit
97b2527018
1
.gitmodules
vendored
1
.gitmodules
vendored
@ -3,7 +3,6 @@
|
|||||||
url = https://github.com/neutrinolabs/librfxcodec.git
|
url = https://github.com/neutrinolabs/librfxcodec.git
|
||||||
branch = .
|
branch = .
|
||||||
ignore = untracked
|
ignore = untracked
|
||||||
|
|
||||||
[submodule "libpainter"]
|
[submodule "libpainter"]
|
||||||
path = libpainter
|
path = libpainter
|
||||||
url = https://github.com/neutrinolabs/libpainter.git
|
url = https://github.com/neutrinolabs/libpainter.git
|
||||||
|
@ -363,6 +363,8 @@ process_enc_rfx(struct xrdp_encoder *self, XRDP_ENC_DATA *enc)
|
|||||||
struct rfx_tile *tiles;
|
struct rfx_tile *tiles;
|
||||||
struct rfx_rect *rfxrects;
|
struct rfx_rect *rfxrects;
|
||||||
int alloc_bytes;
|
int alloc_bytes;
|
||||||
|
int encode_flags;
|
||||||
|
int encode_passes;
|
||||||
|
|
||||||
LOG_DEVEL(LOG_LEVEL_DEBUG, "process_enc_rfx:");
|
LOG_DEVEL(LOG_LEVEL_DEBUG, "process_enc_rfx:");
|
||||||
LOG_DEVEL(LOG_LEVEL_DEBUG, "process_enc_rfx: num_crects %d num_drects %d",
|
LOG_DEVEL(LOG_LEVEL_DEBUG, "process_enc_rfx: num_crects %d num_drects %d",
|
||||||
@ -372,6 +374,7 @@ process_enc_rfx(struct xrdp_encoder *self, XRDP_ENC_DATA *enc)
|
|||||||
event_processed = self->xrdp_encoder_event_processed;
|
event_processed = self->xrdp_encoder_event_processed;
|
||||||
|
|
||||||
all_tiles_written = 0;
|
all_tiles_written = 0;
|
||||||
|
encode_passes = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
tiles_written = 0;
|
tiles_written = 0;
|
||||||
@ -423,15 +426,23 @@ process_enc_rfx(struct xrdp_encoder *self, XRDP_ENC_DATA *enc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
out_data_bytes = self->max_compressed_bytes;
|
out_data_bytes = self->max_compressed_bytes;
|
||||||
tiles_written = rfxcodec_encode(self->codec_handle,
|
|
||||||
out_data + XRDP_SURCMD_PREFIX_BYTES,
|
encode_flags = 0;
|
||||||
&out_data_bytes, enc->data,
|
if (((int)enc->flags & KEY_FRAME_REQUESTED) && encode_passes == 0)
|
||||||
enc->width, enc->height,
|
{
|
||||||
enc->width * 4,
|
encode_flags = RFX_FLAGS_PRO_KEY;
|
||||||
rfxrects, enc->num_drects,
|
}
|
||||||
tiles, enc->num_crects,
|
tiles_written = rfxcodec_encode_ex(self->codec_handle,
|
||||||
self->quants, self->num_quants);
|
out_data + XRDP_SURCMD_PREFIX_BYTES,
|
||||||
|
&out_data_bytes, enc->data,
|
||||||
|
enc->width, enc->height,
|
||||||
|
enc->width * 4,
|
||||||
|
rfxrects, enc->num_drects,
|
||||||
|
tiles, enc->num_crects,
|
||||||
|
self->quants, self->num_quants,
|
||||||
|
encode_flags);
|
||||||
}
|
}
|
||||||
|
++encode_passes;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_DEVEL(LOG_LEVEL_DEBUG,
|
LOG_DEVEL(LOG_LEVEL_DEBUG,
|
||||||
|
Loading…
Reference in New Issue
Block a user