Ticket #1865: recordedseek.diff

File recordedseek.diff, 7.8 KB (added by stuart@…, 14 years ago)

Patch

  • libs/libmythtv/dbcheck.cpp

     
    1010#include "mythdbcon.h"
    1111
    1212/// This is the DB schema version expected by the running MythTV instance.
    13 const QString currentDatabaseVersion = "1141";
     13const QString currentDatabaseVersion = "1142";
    1414
    1515static bool UpdateDBVersionNumber(const QString &newnumber);
    1616static bool performActualUpdate(const QString updates[], QString version,
     
    22502250            return false;
    22512251    }
    22522252
     2253    if (dbver == "1141")
     2254    {
     2255        const QString updates[] = {
     2256"ALTER TABLE recordedmarkup DROP PRIMARY KEY, ADD PRIMARY KEY (chanid,starttime,type,mark);",
     2257"ALTER TABLE recordedmarkup ADD INDEX (type);",
     2258"CREATE TABLE IF NOT EXISTS recordedseek ("
     2259"  chanid int(10) unsigned NOT NULL default '0',"
     2260"  starttime datetime NOT NULL default '0000-00-00 00:00:00',"
     2261"  mark bigint(20) NOT NULL default '0',"
     2262"  offset varchar(32) default NULL,"
     2263"  type int(11) NOT NULL default '0',"
     2264"  PRIMARY KEY  (chanid,starttime,type,mark));",
     2265"INSERT INTO recordedseek (chanid, starttime, mark, offset, type) SELECT"
     2266" chanid, starttime, mark, offset, type FROM recordedmarkup WHERE type in (6, 7, 9);",
     2267"DELETE FROM recordedmarkup WHERE type in (6, 7, 9);",
     2268"ALTER TABLE recordedmarkup DROP INDEX type;",
     2269"ALTER TABLE recordedmarkup DROP COLUMN offset;",
     2270"",
     2271};
    22532272
     2273       if (!performActualUpdate(updates, "1142", dbver))
     2274            return false;
     2275    }
     2276
    22542277//"ALTER TABLE capturecard DROP COLUMN dvb_recordts;" in 0.21
    22552278//"ALTER TABLE capturecard DROP COLUMN dvb_hw_decoder;" in 0.21
    22562279//"ALTER TABLE cardinput DROP COLUMN  preference;" in 0.22
  • libs/libmythtv/programinfo.cpp

     
    14871487    }
    14881488    pathname = prefix + "/" + pathname;
    14891489
     1490    query.prepare("DELETE FROM recordedseek WHERE chanid = :CHANID"
     1491                  " AND starttime = :START;");
     1492    query.bindValue(":CHANID", chanid);
     1493    query.bindValue(":START", recstartts);
     1494
     1495    if (!query.exec() || !query.isActive())
     1496        MythContext::DBError("Clear seek info on record", query);
     1497
    14901498    query.prepare("DELETE FROM recordedmarkup WHERE chanid = :CHANID"
    14911499                  " AND starttime = :START;");
    14921500    query.bindValue(":CHANID", chanid);
     
    22732281    }
    22742282    else
    22752283    {
    2276         query.prepare("SELECT mark, offset FROM recordedmarkup"
     2284        query.prepare("SELECT mark, offset FROM recordedseek"
    22772285                      " WHERE chanid = :CHANID"
    22782286                      " AND starttime = :STARTTIME"
    22792287                      " AND type = :TYPE ;");
     
    23032312    }
    23042313    else
    23052314    {
    2306         query.prepare("DELETE FROM recordedmarkup"
     2315        query.prepare("DELETE FROM recordedseek"
    23072316                      " WHERE chanid = :CHANID"
    23082317                      " AND starttime = :STARTTIME"
    23092318                      " AND type = :TYPE ;");
     
    23112320        query.bindValue(":STARTTIME", recstartts);
    23122321    }
    23132322    query.bindValue(":TYPE", type);
    2314                                
     2323
    23152324    if (!query.exec() || !query.isActive())
    23162325        MythContext::DBError("clear position map",
    23172326                             query);
     
    23482357    }
    23492358    else
    23502359    {
    2351         query.prepare("DELETE FROM recordedmarkup"
     2360        query.prepare("DELETE FROM recordedseek"
    23522361                      " WHERE chanid = :CHANID"
    23532362                      " AND starttime = :STARTTIME"
    23542363                      " AND type = :TYPE"
     
    23912400        }
    23922401        else
    23932402        {       
    2394             query.prepare("INSERT INTO recordedmarkup"
     2403            query.prepare("INSERT INTO recordedseek"
    23952404                          " (chanid, starttime, mark, type, offset)"
    23962405                          " VALUES"
    23972406                          " ( :CHANID , :STARTTIME , :MARK , :TYPE , :OFFSET );");
     
    24372446        }
    24382447        else
    24392448        {
    2440             query.prepare("INSERT INTO recordedmarkup"
     2449            query.prepare("INSERT INTO recordedseek"
    24412450                          " (chanid, starttime, mark, type, offset)"
    24422451                          " VALUES"
    24432452                          " ( :CHANID , :STARTTIME , :MARK , :TYPE , :OFFSET );");
  • programs/mythtranscode/main.cpp

     
    653653        {
    654654            query.prepare("DELETE FROM recordedmarkup "
    655655                          "WHERE chanid = :CHANID "
    656                           "AND starttime = :STARTTIME "
    657                           "AND type not in ( :KEYFRAME, :GOP_BYFRAME ) ;");
     656                          "AND starttime = :STARTTIME ");
    658657            query.bindValue(":CHANID", pginfo->chanid);
    659658            query.bindValue(":STARTTIME", pginfo->recstartts);
    660             query.bindValue(":KEYFRAME", MARK_KEYFRAME);
    661             query.bindValue(":GOP_BYFRAME", MARK_GOP_BYFRAME);
    662659            query.exec();
    663660
    664661            if (!query.isActive())
    665662                MythContext::DBError("Error in mythtranscode", query);
    666663
    667664            query.prepare("UPDATE recorded "
    668                           "SET cutlist = NULL, bookmark = NULL "
     665                          "SET cutlist = :CUTLIST, bookmark = :BOOKMARK "
    669666                          "WHERE chanid = :CHANID "
    670667                          "AND starttime = :STARTTIME ;");
     668            query.bindValue(":CUTLIST", "0");
     669            query.bindValue(":BOOKMARK", "0");
    671670            query.bindValue(":CHANID", pginfo->chanid);
    672671            query.bindValue(":STARTTIME", pginfo->recstartts);
    673672            query.exec();
     
    682681            query.prepare("DELETE FROM recordedmarkup "
    683682                          "WHERE chanid = :CHANID "
    684683                          "AND starttime = :STARTTIME "
    685                           "AND type not in ( :KEYFRAME, :GOP_BYFRAME, "
    686                           "    :COMM_START, :COMM_END) ;");
     684                          "AND type not in ( :COMM_START, "
     685                          "    :COMM_END, :BOOKMARK, "
     686                          "    :CUTLIST_START, :CUTLIST_END) ;");
    687687            query.bindValue(":CHANID", pginfo->chanid);
    688688            query.bindValue(":STARTTIME", pginfo->recstartts);
    689             query.bindValue(":KEYFRAME", MARK_KEYFRAME);
    690             query.bindValue(":GOP_BYFRAME", MARK_GOP_BYFRAME);
    691689            query.bindValue(":COMM_START", MARK_COMM_START);
    692690            query.bindValue(":COMM_END", MARK_COMM_END);
     691            query.bindValue(":BOOKMARK", MARK_BOOKMARK);
     692            query.bindValue(":CUTLIST_START", MARK_CUT_START);
     693            query.bindValue(":CUTLIST_END", MARK_CUT_END);
    693694            query.exec();
    694695
    695696            if (!query.isActive())
  • programs/mythbackend/mainserver.cpp

     
    14661466                                   .arg(logInfo));
    14671467    }
    14681468
     1469    query.prepare("DELETE FROM recordedseek "
     1470                  "WHERE chanid = :CHANID AND starttime = :STARTTIME;");
     1471    query.bindValue(":CHANID", ds->chanid);
     1472    query.bindValue(":STARTTIME", ds->recstartts);
     1473    query.exec();
     1474
     1475    if (!query.isActive())
     1476    {
     1477        MythContext::DBError("Recorded program delete recordedseek",
     1478                             query);
     1479        gContext->LogEntry("mythbackend", LP_ERROR, "Delete Recording",
     1480                           QString("Error deleting recordedseek for %1.")
     1481                                   .arg(logInfo));
     1482    }
     1483
    14691484    if (pginfo->recgroup != "LiveTV")
    14701485        ScheduledRecording::signalChange(0);
    14711486