goldfinger7476 Wrote: sorry, but yea it was crashing not hanging with the newer driver. For some reason my crashlog didn't get updated and it was really old so I wiped it. I downgraded the driver back to the 3.6.0 so my friend could use it with stability but now I can work on it again and post the crashlog if it crashes again.
Just a quick question though, does the ATV have a cpu power scaling feature? I noticed that it has been saying 600mhz for the CPU speed for a while now and I haven't seen it change, is that a known bug or something?
Three patches pending for git tree.
fixed.DtsFlushInput.segfault.patch:
Code:
diff --git a/linux_lib/libcrystalhd/libcrystalhd_if.cpp b/linux_lib/libcrystalhd/libcrystalhd_if.cpp
index 0723c8e..bf81c72 100644
--- a/linux_lib/libcrystalhd/libcrystalhd_if.cpp
+++ b/linux_lib/libcrystalhd/libcrystalhd_if.cpp
@@ -1206,14 +1206,6 @@ DtsStopDecoder(
Ctx->State = BC_DEC_STATE_STOP;
- if (Ctx->PESConvParams.m_pSpsPpsBuf)
- free(Ctx->PESConvParams.m_pSpsPpsBuf);
- Ctx->PESConvParams.m_pSpsPpsBuf = NULL;
-
- if (Ctx->PESConvParams.pStartcodePendBuff)
- free(Ctx->PESConvParams.pStartcodePendBuff);
- Ctx->PESConvParams.pStartcodePendBuff = NULL;
-
return sts;
}
fixed.free.tx.thread.first.patch:
Code:
diff --git a/linux_lib/libcrystalhd/libcrystalhd_priv.cpp b/linux_lib/libcrystalhd/libcrystalhd_priv.cpp
index 7df5563..ad31a86 100644
--- a/linux_lib/libcrystalhd/libcrystalhd_priv.cpp
+++ b/linux_lib/libcrystalhd/libcrystalhd_priv.cpp
@@ -1589,6 +1589,16 @@ BC_STATUS DtsReleaseInterface(DTS_LIB_CONTEXT *Ctx)
if(!Ctx)
return BC_STS_INV_ARG;
+ // Exit TX thread
+ Ctx->txThreadExit = true;
+ // wait to make sure the thread exited
+ pthread_join(Ctx->htxThread, NULL);
+ // de-Allocate circular buffer
+ txBufFree(&Ctx->circBuf);
+ Ctx->htxThread = 0;
+ if(Ctx->alignBuf)
+ free(Ctx->alignBuf);
+
DtsReleaseMemPools(Ctx);
if((Ctx->DevHandle != 0) && close(Ctx->DevHandle)!=0) //Zero if success
@@ -1600,16 +1610,6 @@ BC_STATUS DtsReleaseInterface(DTS_LIB_CONTEXT *Ctx)
DtsDelDilShMem();
- // Exit TX thread
- Ctx->txThreadExit = true;
- // wait to make sure the thread exited
- pthread_join(Ctx->htxThread, NULL);
- // de-Allocate circular buffer
- txBufFree(&Ctx->circBuf);
- Ctx->htxThread = 0;
- if(Ctx->alignBuf)
- free(Ctx->alignBuf);
-
free(Ctx);
return BC_STS_SUCCESS;
and userabort.is.not.a.failure.patch:
Code:
diff --git a/linux_lib/libcrystalhd/libcrystalhd_int_if.cpp b/linux_lib/libcrystalhd/libcrystalhd_int_if.cpp
index 48d1f4e..f51c238 100644
--- a/linux_lib/libcrystalhd/libcrystalhd_int_if.cpp
+++ b/linux_lib/libcrystalhd/libcrystalhd_int_if.cpp
@@ -1047,7 +1047,7 @@ DtsTxDmaText( HANDLE hDevice ,
*dramOff = pIocData->u.ProcInput.DramOffset;
- if( BC_STS_SUCCESS != status)
+ if( BC_STS_SUCCESS != status && BC_STS_IO_USER_ABORT != status)
{
DebugLog_Trace(LDIL_DBG,"DtsTxDmaText: DeviceIoControl Failed with Sts %d\n", status);
}
For the "FETCH TIMEOUT" try "sync playback to display" using "audio clock"