From 7a9505eac26edd35966f1b3711a6c97a50e32e28 Mon Sep 17 00:00:00 2001 From: Stephan Raue Date: Sat, 1 Feb 2014 00:42:15 +0100 Subject: [PATCH] projects/Cuboxi/patches/xbmc: update IMX patch Signed-off-by: Stephan Raue --- .../patches/xbmc/xbmc-001-imx6_support.patch | 206 +++++++++--------- 1 file changed, 104 insertions(+), 102 deletions(-) diff --git a/projects/Cuboxi/patches/xbmc/xbmc-001-imx6_support.patch b/projects/Cuboxi/patches/xbmc/xbmc-001-imx6_support.patch index c75cfbf370..b44d6eee2c 100644 --- a/projects/Cuboxi/patches/xbmc/xbmc-001-imx6_support.patch +++ b/projects/Cuboxi/patches/xbmc/xbmc-001-imx6_support.patch @@ -1,6 +1,6 @@ diff -Naur xbmc-gotham-latest.test/configure.in xbmc-wolfgar-imx-wip.test/configure.in ---- xbmc-gotham-latest.test/configure.in 2014-01-23 22:58:46.720345686 +0100 -+++ xbmc-wolfgar-imx-wip.test/configure.in 2014-01-23 23:04:12.846234320 +0100 +--- xbmc-gotham-latest.test/configure.in 2014-01-31 18:15:15.409622984 +0100 ++++ xbmc-wolfgar-imx-wip.test/configure.in 2014-01-31 18:18:09.534025963 +0100 @@ -558,7 +558,7 @@ AC_ARG_ENABLE([codec], @@ -37,28 +37,9 @@ diff -Naur xbmc-gotham-latest.test/configure.in xbmc-wolfgar-imx-wip.test/config # our own pushd/popd functions XB_DIRSTACK="$PWD" diff -Naur xbmc-gotham-latest.test/lib/ffmpeg/libavcodec/arm/dca.h xbmc-wolfgar-imx-wip.test/lib/ffmpeg/libavcodec/arm/dca.h ---- xbmc-gotham-latest.test/lib/ffmpeg/libavcodec/arm/dca.h 2014-01-23 22:58:34.315337604 +0100 -+++ xbmc-wolfgar-imx-wip.test/lib/ffmpeg/libavcodec/arm/dca.h 2014-01-23 23:04:12.622234510 +0100 -@@ -30,9 +30,9 @@ - - #define decode_blockcodes decode_blockcodes - static inline int decode_blockcodes(int code1, int code2, int levels, -- int *values) -+ int32_t *values) - { -- int v0, v1, v2, v3, v4, v5; -+ int32_t v0, v1, v2, v3, v4, v5; - - __asm__ ("smmul %0, %6, %10 \n" - "smmul %3, %7, %10 \n" -@@ -101,3 +101,4 @@ - #endif - - #endif /* AVCODEC_ARM_DCA_H */ -+ diff -Naur xbmc-gotham-latest.test/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp xbmc-wolfgar-imx-wip.test/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp ---- xbmc-gotham-latest.test/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2014-01-23 22:58:27.848333534 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2014-01-23 23:04:12.268234811 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2014-01-31 18:15:01.973474894 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp 2014-01-31 18:18:05.822022698 +0100 @@ -714,7 +714,10 @@ * will automatically add "@" instead to enable surroundXX mangling. * We don't want to do that if "default" can handle multichannel @@ -105,8 +86,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp x return AE_DEVTYPE_HDMI; else if (name.substr(0, 6) == "iec958" || name.substr(0, 5) == "spdif") diff -Naur xbmc-gotham-latest.test/xbmc/cores/AudioEngine/Utils/AEConvert.cpp xbmc-wolfgar-imx-wip.test/xbmc/cores/AudioEngine/Utils/AEConvert.cpp ---- xbmc-gotham-latest.test/xbmc/cores/AudioEngine/Utils/AEConvert.cpp 2014-01-23 22:58:27.866333545 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/AudioEngine/Utils/AEConvert.cpp 2014-01-23 23:04:12.269234810 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/AudioEngine/Utils/AEConvert.cpp 2014-01-31 18:15:01.999475246 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/AudioEngine/Utils/AEConvert.cpp 2014-01-31 18:18:05.829022704 +0100 @@ -841,7 +841,7 @@ _mm_empty(); #else /* no SSE2 */ @@ -117,8 +98,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/AudioEngine/Utils/AEConvert.cpp xb return samples << 2; diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp ---- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp 2014-01-23 22:58:27.759333479 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp 2014-01-23 23:04:12.261234816 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp 2014-01-31 18:15:01.800472552 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCodec.cpp 2014-01-31 18:18:05.731022617 +0100 @@ -35,6 +35,9 @@ #include "Video/DVDVideoCodecFFmpeg.h" #include "Video/DVDVideoCodecOpenMax.h" @@ -159,8 +140,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/DVDFactoryCode if (!hint.software && CSettings::Get().GetBool("videoplayer.usevda")) { diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h ---- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h 2014-01-23 22:58:27.772333487 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h 2014-01-23 23:04:12.261234816 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h 2014-01-31 18:15:01.813472728 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodec.h 2014-01-31 18:18:05.731022617 +0100 @@ -38,7 +38,9 @@ class COpenMax; class COpenMaxVideo; @@ -195,8 +176,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo }; diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.cpp xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.cpp --- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.cpp 2014-01-23 23:04:12.262234815 +0100 -@@ -0,0 +1,1733 @@ ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.cpp 2014-01-31 18:18:05.743022628 +0100 +@@ -0,0 +1,1737 @@ +/* + * Copyright (C) 2013 Stephan Rafin + * @@ -232,7 +213,6 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo +#include "threads/Atomics.h" + +//#define NO_V4L_RENDERING -+//#define V4L_OUTPUT_PROFILE + +#ifdef IMX_PROFILE +static unsigned long long render_ts[30]; @@ -883,6 +863,10 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + goto VpuOpenError; + } + ++ /* Initialize ts manager */ ++ m_tsm = createTSManager(0); ++ setTSManagerFrameRate(m_tsm, m_hints.fpsrate, m_hints.fpsscale); ++ + return true; + +VpuOpenError: @@ -1012,14 +996,14 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + #endif + VpuFrameBuffer *frameBuffer = frameInfo->pDisplayFrameBuf; + CIMXOutputFrame *outputFrame; -+ CIMXRenderingFrames &renderingFrames = CIMXRenderingFrames::GetInstance(); + int i; + double pts; + DVDVideoPicture DVDFrame; + -+ pts = (double)TSManagerSend2(m_tsm, frameBuffer) / (double)1000.0; ++ // FIXME pts = (double)TSManagerSend2(m_tsm, frameBuffer) / (double)1000.0; ++ pts = (double)TSManagerSend(m_tsm) / (double)1000.0; + /* Find Frame given physical address */ -+ i = renderingFrames.FindBuffer(frameBuffer->pbufY); ++ i = m_renderingFrames.FindBuffer(frameBuffer->pbufY); + if (i == -1) + { + CLog::Log(LOGERROR, "%s - V4L buffer not found\n", __FUNCTION__); @@ -1052,6 +1036,10 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + DVDFrame.format = RENDER_FMT_IMX; + + m_decodedFrames.push(DVDFrame); ++ if (m_decodedFrames.size() > IMX_MAX_QUEUE_SIZE) ++ { ++ CLog::Log(LOGERROR, "%s - Too many enqueued decoded frames : %d (Max %d)\n", __FUNCTION__, m_decodedFrames.size(), IMX_MAX_QUEUE_SIZE); ++ } + +#ifdef IMX_PROFILE + DVDFrame.imxOutputFrame->pushTS = get_time(); @@ -1156,6 +1144,11 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + m_tsm = NULL; + m_convert_bitstream = false; + m_frameCounter = 0; ++ m_usePTS = true; ++ if (getenv("IMX_NOPTS") != NULL) ++ { ++ m_usePTS = false; ++ } +} + +CDVDVideoCodecIMX::~CDVDVideoCodecIMX() @@ -1284,8 +1277,6 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + return false; + } + -+ m_tsm = createTSManager(0); -+ setTSManagerFrameRate(m_tsm, m_hints.fpsrate, m_hints.fpsscale); + return true; +} + @@ -1381,12 +1372,11 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + VpuDecRetCode ret; + VpuDecOutFrameInfo frameInfo; + int decRet = 0; -+ int retSatus = 0; ++ int retStatus = 0; + int demuxer_bytes = iSize; + uint8_t *demuxer_content = pData; + bool bitstream_convered = false; + bool retry = false; -+ bool bufAvail; + +#ifdef IMX_PROFILE + static unsigned long long previous, current; @@ -1442,7 +1432,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + m_tsSyncRequired = false; + resyncTSManager(m_tsm, llrint(pts) * 1000, MODE_AI); + } -+ TSManagerReceive2(m_tsm, llrint(pts) * 1000, iSize); ++ //TSManagerReceive2(m_tsm, llrint(pts) * 1000, iSize); ++ TSManagerReceive(m_tsm, llrint(pts) * 1000); + } + else + { @@ -1454,12 +1445,11 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + m_tsSyncRequired = false; + resyncTSManager(m_tsm, llrint(dts) * 1000, MODE_AI); + } -+ TSManagerReceive2(m_tsm, llrint(dts) * 1000, iSize); ++ //TSManagerReceive2(m_tsm, llrint(dts) * 1000, iSize); ++ TSManagerReceive(m_tsm, llrint(dts) * 1000); + } + } + -+ //CLog::Log(LOGDEBUG, "%s - Query2 : %lld\n", __FUNCTION__, TSManagerQuery2(m_tsm, NULL)); -+ TSManagerQuery2(m_tsm, NULL); + inData.nSize = demuxer_bytes; + inData.pPhyAddr = NULL; + inData.pVirAddr = demuxer_content; @@ -1533,7 +1523,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + { + CLog::Log(LOGERROR, "%s - VPU error retireving info about consummed frame (%d).\n", __FUNCTION__, ret); + } -+ TSManagerValid2(m_tsm, frameLengthInfo.nFrameLength + frameLengthInfo.nStuffLength, frameLengthInfo.pFrame); ++ // FIXME TSManagerValid2(m_tsm, frameLengthInfo.nFrameLength + frameLengthInfo.nStuffLength, frameLengthInfo.pFrame); + //CLog::Log(LOGDEBUG, "%s - size : %d - key consummed : %x\n", __FUNCTION__, frameLengthInfo.nFrameLength + frameLengthInfo.nStuffLength, frameLengthInfo.pFrame); + }//VPU_DEC_ONE_FRM_CONSUMED + @@ -1541,7 +1531,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + (decRet & VPU_DEC_OUTPUT_MOSAIC_DIS)) + /* Frame ready to be displayed */ + { -+ if (retSatus & VC_PICTURE) ++ if (retStatus & VC_PICTURE) + CLog::Log(LOGERROR, "%s - Second picture in the same decode call !\n", __FUNCTION__); + + ret = VPU_DecGetOutputFrame(m_vpuHandle, &frameInfo); @@ -1552,7 +1542,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + } + if (VpuPushFrame(&frameInfo)) + { -+ retSatus |= VC_PICTURE; ++ retStatus |= VC_PICTURE; + } + } //VPU_DEC_OUTPUT_DIS + @@ -1583,7 +1573,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + { + CLog::Log(LOGERROR, "%s - VPU flush failed(%d).\n", __FUNCTION__, ret); + } -+ retSatus = VC_FLUSHED; ++ retStatus = VC_FLUSHED; + } + if (decRet & VPU_DEC_OUTPUT_EOS) + { @@ -1615,40 +1605,31 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + } while (retry == true); + } //(pData && iSize) + -+#ifdef V4L_OUTPUT_PROFILE -+ CLog::Log(LOGDEBUG, "%s - QF : %d - HW : %d/%d/%d\n", __FUNCTION__, -+ (int)m_decodedFrames.size(), GetAvailableBufferNb(), -+ m_extraVpuBuffers, m_vpuFrameBufferNum); -+#endif -+ -+ bufAvail = GetAvailableBufferNb() > (m_vpuFrameBufferNum - m_extraVpuBuffers); -+ retSatus &= (~VC_PICTURE); -+ -+ // If there are still buffers left, fill them -+ if (bufAvail) ++ if (GetAvailableBufferNb() > (m_vpuFrameBufferNum - m_extraVpuBuffers)) + { -+ retSatus |= VC_BUFFER; -+ CLog::Log(LOGDEBUG, "%s - want more data\n", __FUNCTION__); ++ retStatus |= VC_BUFFER; + } + else + { -+ if (!m_decodedFrames.empty()) -+ retSatus |= VC_PICTURE; -+ else if (retSatus == 0) { ++ if (retStatus == 0) { + /* No Picture ready and Not enough VPU buffers. It should NOT happen so log dedicated error */ -+ CLog::Log(LOGERROR, "%s - Not hw buffer available. Waiting for 5ms\n", __FUNCTION__); ++ CLog::Log(LOGERROR, "%s - Not hw buffer available. Waiting for 2ms\n", __FUNCTION__); + /* Lets wait for the IPU to free a buffer. Anyway we have several decoded frames ready */ + usleep(2000); + } + } + + if (bitstream_convered) -+ free(demuxer_content); ++ free(demuxer_content); ++ ++ retStatus &= (~VC_PICTURE); ++ if (m_decodedFrames.size() >= IMX_MAX_QUEUE_SIZE) ++ retStatus |= VC_PICTURE; + +#ifdef IMX_PROFILE -+ CLog::Log(LOGDEBUG, "%s - returns %x - duration %lld\n", __FUNCTION__, retSatus, get_time() - previous); ++ CLog::Log(LOGDEBUG, "%s - returns %x - duration %lld\n", __FUNCTION__, retStatus, get_time() - previous); +#endif -+ return retSatus; ++ return retStatus; + +out_error: + if (bitstream_convered) @@ -1728,6 +1709,10 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo +#endif + + pDvdVideoPicture->pts = DVDFrame.pts; ++ if (!m_usePTS) ++ { ++ pDvdVideoPicture->pts = DVD_NOPTS_VALUE; ++ } + pDvdVideoPicture->dts = DVDFrame.dts; + pDvdVideoPicture->iWidth = DVDFrame.iWidth; + pDvdVideoPicture->iHeight = DVDFrame.iHeight; @@ -1745,7 +1730,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + pDvdVideoPicture->imxOutputFrame = DVDFrame.imxOutputFrame; + +#ifdef V4L_OUTPUT_PROFILE -+ CLog::Log(LOGDEBUG, "%s - QF : %d - HW : %d/%d/%d\n", __FUNCTION__, ++ CLog::Log(LOGDEBUG, "%s - QF : %d - HWfre : %d/%d/%d\n", + (int)m_decodedFrames.size(), GetAvailableBufferNb(), + m_extraVpuBuffers, m_vpuFrameBufferNum); +#endif @@ -1932,8 +1917,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo +} diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.h xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.h --- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.h 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.h 2014-01-23 23:04:12.262234815 +0100 -@@ -0,0 +1,190 @@ ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideoCodecIMX.h 2014-01-31 18:18:05.743022628 +0100 +@@ -0,0 +1,191 @@ +#pragma once +/* + * Copyright (C) 2010-2013 Team XBMC @@ -2097,6 +2082,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + VpuV4LFrameBuffer *m_outputBuffers; // Table of V4L buffers out of VPU (index is V4L buf index) (used to call properly VPU_DecOutFrameDisplayed) + std::queue m_decodedFrames; // Decoded Frames ready to be retrieved by GetPicture + int m_frameCounter; // Decoded frames counter ++ bool m_usePTS; // State whether pts out of decoding process should be used + + /* FIXME : Rework is still required for fields below this line */ + @@ -2125,8 +2111,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/DVDVideo + +}; diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in ---- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in 2014-01-23 22:58:27.759333479 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in 2014-01-23 23:04:12.261234816 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in 2014-01-31 18:15:01.800472552 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile.in 2014-01-31 18:18:05.731022617 +0100 @@ -23,6 +23,22 @@ SRCS += OpenMaxVideo.cpp SRCS += DVDVideoCodecOpenMax.cpp @@ -2152,7 +2138,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/Makefile SRCS += DVDVideoCodecAmlogic.cpp diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.c xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.c --- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.c 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.c 2014-01-23 23:04:12.262234815 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.c 2014-01-31 18:18:05.743022628 +0100 @@ -0,0 +1,752 @@ +/* + * Copyright (c) 2010-2012, Freescale Semiconductor, Inc. All rights reserved. @@ -2908,7 +2894,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ +} diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.h xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.h --- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.h 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.h 2014-01-23 23:04:12.261234816 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ts.h 2014-01-31 18:18:05.731022617 +0100 @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2010-2012, Freescale Semiconductor, Inc. All rights reserved. @@ -3081,8 +3067,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDCodecs/Video/mfw_gst_ + +#endif /*_TIMESTAMP_H_ */ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp ---- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2014-01-23 22:58:27.826333521 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2014-01-23 23:04:12.267234811 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2014-01-31 18:15:01.946474529 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp 2014-01-31 18:18:05.793022672 +0100 @@ -994,6 +994,7 @@ case RENDER_FMT_CVBREF: return "BGRA"; case RENDER_FMT_EGLIMG: return "EGLIMG"; @@ -3092,8 +3078,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/dvdplayer/DVDPlayerVideo.cpp xbmc- case RENDER_FMT_NONE: return "NONE"; } diff -Naur xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp ---- xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp 2014-01-23 22:58:27.715333452 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp 2014-01-23 23:04:12.259234818 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp 2014-01-31 18:15:01.764472065 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.cpp 2014-01-31 18:18:05.730022616 +0100 @@ -20,6 +20,10 @@ //#define DEBUG_VERBOSE 1 @@ -3286,8 +3272,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.c void CLinuxRendererGLES::AddProcessor(CDVDMediaCodecInfo *mediacodec, int index) { diff -Naur xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.h xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.h ---- xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.h 2014-01-23 22:58:27.711333449 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.h 2014-01-23 23:04:12.259234818 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.h 2014-01-31 18:15:01.761472024 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.h 2014-01-31 18:18:05.730022616 +0100 @@ -42,6 +42,7 @@ class COpenMaxVideo; class CDVDVideoCodecStageFright; @@ -3317,8 +3303,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/LinuxRendererGLES.h CDVDVideoCodecStageFright* stf; EGLImageKHR eglimg; diff -Naur xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/RenderFormats.h xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/RenderFormats.h ---- xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/RenderFormats.h 2014-01-23 22:58:27.714333451 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/RenderFormats.h 2014-01-23 23:04:12.259234818 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/RenderFormats.h 2014-01-31 18:15:01.763472051 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/RenderFormats.h 2014-01-31 18:18:05.730022616 +0100 @@ -35,6 +35,7 @@ RENDER_FMT_OMXEGL, RENDER_FMT_CVBREF, @@ -3328,8 +3314,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/RenderFormats.h xbm RENDER_FMT_MEDIACODEC, }; diff -Naur xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/RenderManager.cpp xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/RenderManager.cpp ---- xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/RenderManager.cpp 2014-01-23 22:58:27.712333450 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/RenderManager.cpp 2014-01-23 23:04:12.259234818 +0100 +--- xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/RenderManager.cpp 2014-01-31 18:15:01.762472038 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/cores/VideoRenderers/RenderManager.cpp 2014-01-31 18:18:05.730022616 +0100 @@ -920,6 +920,10 @@ else if(pic.format == RENDER_FMT_VAAPI) m_pRenderer->AddProcessor(*pic.vaapi, index); @@ -3342,24 +3328,40 @@ diff -Naur xbmc-gotham-latest.test/xbmc/cores/VideoRenderers/RenderManager.cpp x else if(pic.format == RENDER_FMT_EGLIMG) m_pRenderer->AddProcessor(pic.stf, pic.eglimg, index); diff -Naur xbmc-gotham-latest.test/xbmc/input/linux/LinuxInputDevices.cpp xbmc-wolfgar-imx-wip.test/xbmc/input/linux/LinuxInputDevices.cpp ---- xbmc-gotham-latest.test/xbmc/input/linux/LinuxInputDevices.cpp 2014-01-23 22:58:25.249331931 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/input/linux/LinuxInputDevices.cpp 2014-01-23 23:04:10.023236994 +0100 -@@ -1222,7 +1222,8 @@ - - if ((now - m_lastHotplugCheck) >= 10) - { -- CheckHotplugged(); -+ // Comment for now as it has visible issue on video decoding when USB devices are available -+ //CheckHotplugged(); - m_lastHotplugCheck = now; - } - } diff -Naur xbmc-gotham-latest.test/xbmc/powermanagement/PowerManager.cpp xbmc-wolfgar-imx-wip.test/xbmc/powermanagement/PowerManager.cpp diff -Naur xbmc-gotham-latest.test/xbmc/video/dialogs/GUIDialogVideoOSD.cpp xbmc-wolfgar-imx-wip.test/xbmc/video/dialogs/GUIDialogVideoOSD.cpp +--- xbmc-gotham-latest.test/xbmc/video/dialogs/GUIDialogVideoOSD.cpp 2014-01-31 18:14:59.301437729 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/video/dialogs/GUIDialogVideoOSD.cpp 2014-01-31 18:18:05.444022357 +0100 +@@ -55,6 +55,7 @@ + || g_windowManager.IsWindowActive(WINDOW_DIALOG_PVR_OSD_DIRECTOR) + || g_windowManager.IsWindowActive(WINDOW_DIALOG_PVR_OSD_CUTTER) + || g_windowManager.IsWindowActive(WINDOW_DIALOG_OSD_TELETEXT)) ++ + // extend show time by original value + SetAutoClose(m_showDuration); + } diff -Naur xbmc-gotham-latest.test/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp +--- xbmc-gotham-latest.test/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp 2014-01-31 18:15:01.575469507 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLNativeTypeAmlogic.cpp 2014-01-31 18:18:05.666022562 +0100 +@@ -17,6 +17,7 @@ + * . + * + */ ++#include + + #include "EGLNativeTypeAmlogic.h" + #include "guilib/gui3d.h" +@@ -24,7 +25,6 @@ + #include "utils/StringUtils.h" + + #include +-#include + #include + #include + diff -Naur xbmc-gotham-latest.test/xbmc/windowing/egl/EGLNativeTypeIMX.cpp xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLNativeTypeIMX.cpp --- xbmc-gotham-latest.test/xbmc/windowing/egl/EGLNativeTypeIMX.cpp 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLNativeTypeIMX.cpp 2014-01-23 23:04:12.249234827 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLNativeTypeIMX.cpp 2014-01-31 18:18:05.666022562 +0100 @@ -0,0 +1,272 @@ +/* + * Copyright (C) 2011-2013 Team XBMC @@ -3635,7 +3637,7 @@ diff -Naur xbmc-gotham-latest.test/xbmc/windowing/egl/EGLNativeTypeIMX.cpp xbmc- +} diff -Naur xbmc-gotham-latest.test/xbmc/windowing/egl/EGLNativeTypeIMX.h xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLNativeTypeIMX.h --- xbmc-gotham-latest.test/xbmc/windowing/egl/EGLNativeTypeIMX.h 1970-01-01 01:00:00.000000000 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLNativeTypeIMX.h 2014-01-23 23:04:12.249234827 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLNativeTypeIMX.h 2014-01-31 18:18:05.666022562 +0100 @@ -0,0 +1,62 @@ +#pragma once + @@ -3700,8 +3702,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/windowing/egl/EGLNativeTypeIMX.h xbmc-wo + +}; diff -Naur xbmc-gotham-latest.test/xbmc/windowing/egl/EGLWrapper.cpp xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLWrapper.cpp ---- xbmc-gotham-latest.test/xbmc/windowing/egl/EGLWrapper.cpp 2014-01-23 22:58:27.493333312 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLWrapper.cpp 2014-01-23 23:04:12.249234827 +0100 +--- xbmc-gotham-latest.test/xbmc/windowing/egl/EGLWrapper.cpp 2014-01-31 18:15:01.583469614 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/EGLWrapper.cpp 2014-01-31 18:18:05.666022562 +0100 @@ -17,11 +17,10 @@ * . * @@ -3726,8 +3728,8 @@ diff -Naur xbmc-gotham-latest.test/xbmc/windowing/egl/EGLWrapper.cpp xbmc-wolfga m_nativeTypes = nativeGuess; diff -Naur xbmc-gotham-latest.test/xbmc/windowing/egl/Makefile.in xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/Makefile.in ---- xbmc-gotham-latest.test/xbmc/windowing/egl/Makefile.in 2014-01-23 22:58:27.445333284 +0100 -+++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/Makefile.in 2014-01-23 23:04:12.248234828 +0100 +--- xbmc-gotham-latest.test/xbmc/windowing/egl/Makefile.in 2014-01-31 18:15:01.564469357 +0100 ++++ xbmc-wolfgar-imx-wip.test/xbmc/windowing/egl/Makefile.in 2014-01-31 18:18:05.665022561 +0100 @@ -5,6 +5,7 @@ SRCS+= EGLNativeTypeAndroid.cpp SRCS+= EGLNativeTypeRaspberryPI.cpp