User:Zavex/patches
From MythTV Official Wiki
ac3dec.patch check crc on ac3 audio to prevent high chirps from corrupt audio
--- ac3dec.c 2008-02-10 14:56:11.000000000 -0600 +++ ac3dec.c 2008-05-31 13:51:24.000000000 -0500 @@ -37,6 +37,7 @@ #include "bitstream.h" #include "dsputil.h" #include "random.h" +#include "crc.h" /** * Table of bin locations for rematrixing bands @@ -1121,6 +1122,12 @@ return -1; } + if (av_crc(av_crc8005, 0, buf + 2, buf_size - 2)) { + av_log(avctx, AV_LOG_ERROR, "CRC error\n"); + *data_size = 0; + return buf_size; + } + avctx->sample_rate = ctx->sampling_rate; avctx->bit_rate = ctx->bit_rate;
playbackbox.patch Don't show individual movie and holiday recordings outside of group
--- /home/paul/src/orig/mythtv-0.21.0+fixes16838/programs/mythfrontend/playbackbox.cpp 2008-02-26 23:12:15.000000000 -0600 +++ playbackbox.cpp 2008-05-31 11:50:19.000000000 -0500 @@ -1877,6 +1877,7 @@ ((recGroup == "All Programs") && ((viewMask & VIEW_LIVETVGRP) == 0)))) { + if(p->recgroup != "Movies" && p->recgroup != "Holiday") { sTitle = sortTitle(p->title, viewMask, titleSort, p->recpriority); sTitle = sTitle.lower(); @@ -1885,6 +1886,7 @@ sortedList[sTitle] = p->title; progLists[sortedList[sTitle].lower()].prepend(p); progLists[sortedList[sTitle].lower()].setAutoDelete(false); + } } if ((viewMask & VIEW_RECGROUPS) && @@ -1925,7 +1927,8 @@ progLists[tmpTitle.lower()].setAutoDelete(false); } - if ((viewMask & VIEW_WATCHLIST) && (p->recgroup != "LiveTV")) + if ((viewMask & VIEW_WATCHLIST) && (p->recgroup != "LiveTV") + && (p->recgroup != "Movies") && (p->recgroup != "Holiday")) { if (watchListAutoExpire && !p->GetAutoExpireFromRecorded()) {
main.cpp (mythshutdown) don't shut down if a remote user is logged in
--- /home/paul/src/orig/mythtv-0.21.0+fixes16838/programs/mythshutdown/main.cpp 2008-02-14 18:15:43.000000000 -0600 +++ main.cpp 2008-05-31 11:38:21.000000000 -0500 @@ -137,16 +137,29 @@ return RemoteGetRecordingStatus(NULL, false); } +bool isRemoteLoggedIn() +{ + VERBOSE(VB_IMPORTANT, "Checking logged in users ...."); + QString sCommand("last | head | grep 'pts/.*still logged in' | grep -v ':0.0'"); + int res = system(sCommand.ascii()); + if (WIFEXITED(res)) + res = WEXITSTATUS(res); + + VERBOSE(VB_IMPORTANT, QString("Exit status %1\n").arg(res)); + + return !res; +} + int getStatus(bool bWantRecStatus) { - VERBOSE(VB_GENERAL, "Mythshutdown: --status"); + VERBOSE(VB_GENERAL, "Mythshutdown: --status"); - int res = 0; + int res = 0; - if (isRunning("mythtranscode")) - { - VERBOSE(VB_IMPORTANT, "Transcoding in progress..."); - res += 1; + if (isRunning("mythtranscode")) + { + VERBOSE(VB_IMPORTANT, "Transcoding in progress..."); + res += 1; } if (isRunning("mythcommflag")) @@ -155,11 +168,11 @@ res += 2; } - if (isRunning("mythfilldatabas")) - { - VERBOSE(VB_IMPORTANT, "Grabbing EPG data in progress..."); - res += 4; - } + if( isRemoteLoggedIn()) + { + VERBOSE(VB_IMPORTANT, "Remote User connected..."); + res += 4; + } if (bWantRecStatus && isRecording()) { @@ -173,7 +186,7 @@ res += 16; } - if (JobQueue::HasRunningOrPendingJobs(15)) + if (JobQueue::HasRunningOrPendingJobs(15) || isRunning("mythfilldatabas")) { VERBOSE(VB_IMPORTANT, "Has queued or pending jobs"); res += 32;
welcomedialog.cpp (same as above)
Index: welcomedialog.cpp =================================================================== --- welcomedialog.cpp (revision 14517) +++ welcomedialog.cpp (working copy) @@ -634,7 +634,7 @@ if (statusCode & 2) m_statusList.append(tr("MythTV is busy flagging commercials.")); if (statusCode & 4) - m_statusList.append(tr("MythTV is busy grabbing EPG data.")); + m_statusList.append(tr("A remote user is currently logged in.")); if (statusCode & 16) m_statusList.append(tr("MythTV is locked by a user.")); if (statusCode & 32)