This commit is contained in:
Poyraz76
2015-08-20 17:03:30 +03:00
parent cc2a3ef5d4
commit 9725b33f4f
5 changed files with 213 additions and 0 deletions
@@ -0,0 +1,77 @@
diff -rupN a/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c b/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c
--- a/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c 2013-01-02 22:46:59.000000000 +0100
+++ b/channels/drdynvc/tsmf/ffmpeg/tsmf_ffmpeg.c 2013-07-22 18:12:18.001576713 +0200
@@ -28,6 +28,8 @@
#include "tsmf_constants.h"
#include "tsmf_decoder.h"
+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
+
/* Compatibility with older FFmpeg */
#if LIBAVUTIL_VERSION_MAJOR < 50
#define AVMEDIA_TYPE_VIDEO 0
@@ -39,7 +41,7 @@ typedef struct _TSMFFFmpegDecoder
ITSMFDecoder iface;
int media_type;
- enum CodecID codec_id;
+ enum AVCodecID codec_id;
AVCodecContext* codec_context;
AVCodec* codec;
AVFrame* frame;
@@ -54,7 +56,7 @@ static boolean tsmf_ffmpeg_init_context(
{
TSMFFFmpegDecoder* mdecoder = (TSMFFFmpegDecoder*) decoder;
- mdecoder->codec_context = avcodec_alloc_context();
+ mdecoder->codec_context = avcodec_alloc_context3(NULL);
if (!mdecoder->codec_context)
{
DEBUG_WARN("avcodec_alloc_context failed.");
@@ -88,16 +90,6 @@ static boolean tsmf_ffmpeg_init_audio_st
mdecoder->codec_context->channels = media_type->Channels;
mdecoder->codec_context->block_align = media_type->BlockAlign;
-#ifdef AV_CPU_FLAG_SSE2
- mdecoder->codec_context->dsp_mask = AV_CPU_FLAG_SSE2 | AV_CPU_FLAG_MMX2;
-#else
-#if LIBAVCODEC_VERSION_MAJOR < 53
- mdecoder->codec_context->dsp_mask = FF_MM_SSE2 | FF_MM_MMXEXT;
-#else
- mdecoder->codec_context->dsp_mask = FF_MM_SSE2 | FF_MM_MMX2;
-#endif
-#endif
-
return true;
}
@@ -174,7 +166,7 @@ static boolean tsmf_ffmpeg_prepare(ITSMF
{
TSMFFFmpegDecoder* mdecoder = (TSMFFFmpegDecoder*) decoder;
- if (avcodec_open(mdecoder->codec_context, mdecoder->codec) < 0)
+ if (avcodec_open2(mdecoder->codec_context, mdecoder->codec, NULL) < 0)
{
DEBUG_WARN("avcodec_open failed.");
return false;
@@ -372,8 +364,9 @@ static boolean tsmf_ffmpeg_decode_audio(
av_init_packet(&pkt);
pkt.data = (uint8*) src;
pkt.size = src_size;
- len = avcodec_decode_audio3(mdecoder->codec_context,
- (int16_t*) dst, &frame_size, &pkt);
+ AVFrame * frame = avcodec_alloc_frame ();
+ len = avcodec_decode_audio4(mdecoder->codec_context,
+ frame, &frame_size, &pkt);
}
#endif
if (len <= 0 || frame_size <= 0)
@@ -499,7 +492,6 @@ TSMFDecoderEntry(void)
if (!initialized)
{
- avcodec_init();
avcodec_register_all();
initialized = true;
}
@@ -0,0 +1,12 @@
diff -u -r -N old/include/freerdp/kbd/vkcodes.h new/include/freerdp/kbd/vkcodes.h
--- old/include/freerdp/kbd/vkcodes.h 2013-09-19 12:46:07.124339712 +0200
+++ new/include/freerdp/kbd/vkcodes.h 2013-09-19 12:45:51.621005583 +0200
@@ -434,7 +434,7 @@
{ 0x00, 0, "VK_SEPARATOR" , NULL },
{ 0x4A, 0, "VK_SUBTRACT" , "KPSU" },
{ 0x53, 0, "VK_DECIMAL" , "KPDL" },
- { 0x35, 0, "VK_DIVIDE" , "KPDV" },
+ { 0x35, 1, "VK_DIVIDE" , "KPDV" },
{ 0x3B, 0, "VK_F1" , "FK01" },
{ 0x3C, 0, "VK_F2" , "FK02" },
{ 0x3D, 0, "VK_F3" , "FK03" },