diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2015-02-07 05:05:54 +0300 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2015-02-07 05:05:54 +0300 |
commit | b76525c18c9c9aac6a4eb6f62ad93c1b8effe89e (patch) | |
tree | d21707925009bd4fec1b547e3fa97f58388c00a2 | |
parent | c2347e901c9d13314ae4fe539b94b04ca41061cf (diff) |
work on h264 codec surface command
-rw-r--r-- | client/X11/xf_gdi.c | 13 | ||||
-rw-r--r-- | include/freerdp/constants.h | 3 | ||||
-rw-r--r-- | libfreerdp-core/capabilities.c | 2 |
3 files changed, 17 insertions, 1 deletions
diff --git a/client/X11/xf_gdi.c b/client/X11/xf_gdi.c index e37ca6b..a2efe64 100644 --- a/client/X11/xf_gdi.c +++ b/client/X11/xf_gdi.c @@ -652,6 +652,19 @@ void xf_gdi_surface_bits(rdpContext* context, SURFACE_BITS_COMMAND* surface_bits if (surface_bits_command->codecID == CODEC_ID_H264) { + STREAM* s; + int num_rects; + int h264_bytes; + + s = stream_new(0); + stream_attach(s, surface_bits_command->bitmapData, surface_bits_command->bitmapDataLength); + stream_read_uint16(s, num_rects); + stream_seek(s, num_rects * 8); + stream_read_uint32(s, h264_bytes); + stream_attach(s, 0, 0); + stream_free(s); + printf("h264 bytes %d num_rects %d h264_bytes %d\n", + surface_bits_command->bitmapDataLength, num_rects, h264_bytes); } else if (surface_bits_command->codecID == CODEC_ID_JPEG) { diff --git a/include/freerdp/constants.h b/include/freerdp/constants.h index ff04cf7..2cb80d2 100644 --- a/include/freerdp/constants.h +++ b/include/freerdp/constants.h @@ -30,7 +30,8 @@ enum RDP_CODEC_ID CODEC_ID_NSCODEC = 0x01, CODEC_ID_JPEG = 0x02, CODEC_ID_REMOTEFX = 0x03, - CODEC_ID_H264 = 0x04 + CODEC_ID_PNG = 0x04, + CODEC_ID_H264 = 0x05 }; /** diff --git a/libfreerdp-core/capabilities.c b/libfreerdp-core/capabilities.c index dfb2dba..6332802 100644 --- a/libfreerdp-core/capabilities.c +++ b/libfreerdp-core/capabilities.c @@ -1593,6 +1593,8 @@ void rdp_write_bitmap_codecs_capability_set(STREAM* s, rdpSettings* settings) bitmapCodecCount++; if (settings->jpeg_codec) bitmapCodecCount++; + if (settings->h264_codec) + bitmapCodecCount++; stream_write_uint8(s, bitmapCodecCount); |