projects/Cuboxi/patches/xbmc: update IMX patch

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2014-02-01 00:42:15 +01:00
parent be7d281f29
commit 7a9505eac2

View File

@ -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 <DVDVideoPicture> 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 @@
* <http://www.gnu.org/licenses/>.
*
*/
+#include <linux/fb.h>
#include "EGLNativeTypeAmlogic.h"
#include "guilib/gui3d.h"
@@ -24,7 +25,6 @@
#include "utils/StringUtils.h"
#include <stdlib.h>
-#include <linux/fb.h>
#include <sys/ioctl.h>
#include <EGL/egl.h>
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 @@
* <http://www.gnu.org/licenses/>.
*
@ -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