int preview_helper(const QString &chanid, const QString &starttime, long long previewFrameNumber, long long previewSeconds, const QSize &previewSize, const QString &infile, const QString &outfile) { // Lower scheduling priority, to avoid problems with recordings. if (setpriority(PRIO_PROCESS, 0, 9)) VERBOSE(VB_GENERAL, "Setting priority failed." + ENO); ProgramInfo *pginfo = NULL; if (!chanid.isEmpty() && !starttime.isEmpty()) { pginfo = ProgramInfo::GetProgramFromRecorded(chanid, starttime); if (!pginfo) { VERBOSE(VB_IMPORTANT, QString( "Can not locate recording made on '%1' at '%2'") .arg(chanid).arg(starttime)); return GENERIC_EXIT_NOT_OK; } } else if (!infile.isEmpty()) { pginfo = ProgramInfo::GetProgramFromBasename(infile); if (!pginfo) { VERBOSE(VB_IMPORTANT, QString( "Can not locate recording '%1'").arg(infile)); return GENERIC_EXIT_NOT_OK; } } else { VERBOSE(VB_IMPORTANT, "Can not locate recording for preview"); return GENERIC_EXIT_NOT_OK; } PreviewGenerator *previewgen = new PreviewGenerator(pginfo, true); if (previewFrameNumber >= 0) previewgen->SetPreviewTimeAsFrameNumber(previewFrameNumber); if (previewSeconds >= 0) previewgen->SetPreviewTimeAsSeconds(previewSeconds); previewgen->SetOutputSize(previewSize); previewgen->SetOutputFilename(outfile); previewgen->RunReal(); previewgen->deleteLater(); delete pginfo; return GENERIC_EXIT_OK; }
int preview_helper(uint chanid, QDateTime starttime, long long previewFrameNumber, long long previewSeconds, const QSize &previewSize, const QString &infile, const QString &outfile) { // Lower scheduling priority, to avoid problems with recordings. if (setpriority(PRIO_PROCESS, 0, 9)) LOG(VB_GENERAL, LOG_ERR, "Setting priority failed." + ENO); if (!chanid || !starttime.isValid()) ProgramInfo::QueryKeyFromPathname(infile, chanid, starttime); ProgramInfo *pginfo = NULL; if (chanid && starttime.isValid()) { pginfo = new ProgramInfo(chanid, starttime); if (!pginfo->GetChanID()) { LOG(VB_GENERAL, LOG_ERR, QString("Cannot locate recording made on '%1' at '%2'") .arg(chanid).arg(starttime.toString(Qt::ISODate))); delete pginfo; return GENERIC_EXIT_NOT_OK; } pginfo->SetPathname(pginfo->GetPlaybackURL(false, true)); } else if (!infile.isEmpty()) { if (!QFileInfo(infile).isReadable()) { LOG(VB_GENERAL, LOG_ERR, QString("Cannot read this file '%1'").arg(infile)); return GENERIC_EXIT_NOT_OK; } pginfo = new ProgramInfo( infile, ""/*plot*/, ""/*title*/, ""/*subtitle*/, ""/*director*/, 0/*season*/, 0/*episode*/, ""/*inetref*/, 120/*length_in_minutes*/, 1895/*year*/, ""/*id*/); } else { LOG(VB_GENERAL, LOG_ERR, "Cannot locate recording to preview"); return GENERIC_EXIT_NOT_OK; } PreviewGenerator *previewgen = new PreviewGenerator( pginfo, QString(), PreviewGenerator::kLocal); if (previewFrameNumber >= 0) previewgen->SetPreviewTimeAsFrameNumber(previewFrameNumber); if (previewSeconds >= 0) previewgen->SetPreviewTimeAsSeconds(previewSeconds); previewgen->SetOutputSize(previewSize); previewgen->SetOutputFilename(outfile); bool ok = previewgen->RunReal(); previewgen->deleteLater(); delete pginfo; return (ok) ? GENERIC_EXIT_OK : GENERIC_EXIT_NOT_OK; }
int preview_helper(const QString &_chanid, const QString &starttime, long long previewFrameNumber, long long previewSeconds, const QSize &previewSize, const QString &infile, const QString &outfile) { // Lower scheduling priority, to avoid problems with recordings. if (setpriority(PRIO_PROCESS, 0, 9)) VERBOSE(VB_GENERAL, "Setting priority failed." + ENO); uint chanid = _chanid.toUInt(); QDateTime recstartts = myth_dt_from_string(starttime); if (!chanid || !recstartts.isValid()) ProgramInfo::ExtractKeyFromPathname(infile, chanid, recstartts); ProgramInfo *pginfo = NULL; if (chanid && recstartts.isValid()) { pginfo = new ProgramInfo(chanid, recstartts); if (!pginfo->GetChanID()) { VERBOSE(VB_IMPORTANT, QString( "Cannot locate recording made on '%1' at '%2'") .arg(chanid).arg(starttime)); delete pginfo; return PREVIEWGEN_EXIT_NOT_OK; } pginfo->SetPathname(pginfo->GetPlaybackURL(false, true)); } else if (!infile.isEmpty()) { if (!QFileInfo(infile).isReadable()) { VERBOSE(VB_IMPORTANT, QString( "Cannot read this file '%1'").arg(infile)); return PREVIEWGEN_EXIT_NOT_OK; } pginfo = new ProgramInfo( infile, ""/*plot*/, ""/*title*/, ""/*subtitle*/, ""/*director*/, 0/*season*/, 0/*episode*/, 120/*length_in_minutes*/, 1895/*year*/); } else { VERBOSE(VB_IMPORTANT, "Cannot locate recording to preview"); return PREVIEWGEN_EXIT_NOT_OK; } PreviewGenerator *previewgen = new PreviewGenerator( pginfo, QString(), PreviewGenerator::kLocal); if (previewFrameNumber >= 0) previewgen->SetPreviewTimeAsFrameNumber(previewFrameNumber); if (previewSeconds >= 0) previewgen->SetPreviewTimeAsSeconds(previewSeconds); previewgen->SetOutputSize(previewSize); previewgen->SetOutputFilename(outfile); bool ok = previewgen->RunReal(); previewgen->deleteLater(); delete pginfo; return (ok) ? PREVIEWGEN_EXIT_OK : PREVIEWGEN_EXIT_NOT_OK; }