fix decoder win64 asm float issues

This commit is contained in:
Licai Guo 2014-01-22 19:01:51 -08:00
parent 9efbef67b9
commit def55c141e
2 changed files with 7 additions and 2 deletions

View File

@ -46,7 +46,7 @@
#include "codec_app_def.h"
#include "decoder_context.h"
#include "welsCodecTrace.h"
#include "cpu.h"
class ISVCDecoder;
@ -104,6 +104,8 @@ IWelsTrace* m_pTrace;
void_t InitDecoder (void_t);
void_t UninitDecoder (void_t);
XMMREG_PROTECT_DECLARE(CWelsH264Decoder);
#ifdef OUTPUT_BIT_STREAM
WelsFileHandle* m_pFBS;
WelsFileHandle* m_pFBSSize;

View File

@ -99,7 +99,7 @@ CWelsDecoder::CWelsDecoder (void_t)
m_pTrace = CreateWelsTrace (Wels_Trace_Type);
IWelsTrace::WelsVTrace (m_pTrace, IWelsTrace::WELS_LOG_INFO, "CWelsDecoder::CWelsDecoder() entry");
XMMREG_PROTECT_INIT(CWelsH264Decoder);
#ifdef OUTPUT_BIT_STREAM
SWelsTime sCurTime;
@ -151,6 +151,7 @@ CWelsDecoder::~CWelsDecoder() {
IWelsTrace::WelsVTrace (m_pTrace, IWelsTrace::WELS_LOG_INFO, "CWelsDecoder::~CWelsDecoder()");
UninitDecoder();
XMMREG_PROTECT_UNINIT(CWelsH264Decoder);
#ifdef OUTPUT_BIT_STREAM
if (m_pFBS) {
@ -384,8 +385,10 @@ DECODING_STATE CWelsDecoder::DecodeFrame2 (const unsigned char* kpSrc,
m_pDecContext->iFeedbackTidInAu = -1; //initialize
XMMREG_PROTECT_STORE(CWelsH264Decoder);
WelsDecodeBs (m_pDecContext, kpSrc, kiSrcLen, (unsigned char**)ppDst,
pDstInfo); //iErrorCode has been modified in this function
XMMREG_PROTECT_LOAD(CWelsH264Decoder);
pDstInfo->eWorkMode = (EDecodeMode)m_pDecContext->iDecoderMode;