#! /bin/sh /usr/share/dpatch/dpatch-run ## burn-bigpatch ## ## downloaded from http://vdrportal.de/board/thread.php?postid=250084#post250084 ## original filename burn-0.0.5-r2.diff ## ## minimized patch, fixed requant locale problem and ## changed requant to tcrequant by Thomas Günther ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: This patch adds nice-patch + moronimo-mplex-patch + burn for vdr 1.3.18, ## DP: for details see: http://www.vdrportal.de/board/thread.php?threadid=27366 @DPATCH@ --- burn-0.0.5/common.h +++ burn-0.0.5/common.h @@ -67,7 +67,7 @@ nsRetry }; -enum eTrackType { +enum eVTrackType { ttUnknown, ttVideo, ttAudioMP2, @@ -76,7 +76,7 @@ struct tTrackInfo { char *Filename; - eTrackType Type; + eVTrackType Type; int Language; tTrackInfo(void) { Filename = NULL; Type = ttUnknown; Language = -1; } ~tTrackInfo() { free(Filename); } --- burn-0.0.5/i18n.c +++ burn-0.0.5/i18n.c @@ -25,8 +25,8 @@ "", "", }, - { "Write DVDs - designed for xeatre.tv", - "DVDs brennen - designed for xeatre.tv", + { "Write DVDs", + "DVDs brennen", "", "", "", @@ -688,5 +688,22 @@ "", "", }, + { "DESCRIPTION OF FILMTITLE", + "FILMBESCHREIBUNG", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + }, { NULL }, }; --- burn-0.0.5/menuburn.c +++ burn-0.0.5/menuburn.c @@ -26,7 +26,7 @@ cMutex cBurnMenuBurn::mProtect; cBurnMenuBurn::cBurnMenuBurn(void): - cOsdMenu(tr("Write DVDs - designed for xeatre.tv"), /*6, 10*/16) { + cOsdMenu(tr("Write DVDs"), /*6, 10*/16) { mOpen = true; if (Pending == NULL) @@ -119,7 +119,6 @@ Clear(); Add(new cBurnMenuTextItem(tr("Recordings marked for burning"))); - Add(new cBurnMenuTextItem("")); if (Pending != NULL) { for (cBurnRecording *rec = Pending->First(); rec; rec = Pending->Next(rec)){ --- burn-0.0.5/process-dvd.c +++ burn-0.0.5/process-dvd.c @@ -16,6 +16,7 @@ #include #include #include +#include cBurnProcessDVD::cBurnProcessDVD(cBurnJob *Job): cBurnProcess(__DVD_COUNT__) { @@ -93,7 +94,7 @@ if (SubStep < mJob->Count()) { rec = mJob->Get(SubStep); MakeDirectory("%s/VDRSYNC.%d", TempDir(), rec->Number()); - SetCmdline("vdrsync.pl -o %s/VDRSYNC.%d '%s'", TempDir(), rec->Number(), + SetCmdline("nice -n 19 vdrsync.pl -o %s/VDRSYNC.%d '%s'", TempDir(), rec->Number(), rec->FileName()); } else SetNextStep(); @@ -134,8 +135,10 @@ sizeMB = FileSize(tracks[0].Filename) / 1024.f / 1024.f; factor = sizeMB / (sizeMB - (rec->SizeMB() - rec->SizeMB() / mFactor)); - SetCmdline("requant %.2f < %s > %s/VDRSYNC.%d/requant.mpv", factor, + setlocale(LC_NUMERIC, "POSIX"); + SetCmdline("nice -n 19 tcrequant -f %.2f < %s > %s/VDRSYNC.%d/requant.mpv", factor, tracks[0].Filename, TempDir(), rec->Number()); + setlocale(LC_ALL, ""); } else SetNextStep(); break; @@ -145,9 +148,9 @@ if (SubStep > 0) { rec = mJob->Get(SubStep - 1); - Execute("rm -rf %s/*.m[p2]v", rec->TempDir()); - Execute("rm -rf %s/*.mp[a2]", rec->TempDir()); - Execute("rm -rf %s/*.ac3", rec->TempDir()); + Execute("nice -n 19 rm -rf %s/*.m[p2]v", rec->TempDir()); + Execute("nice -n 19 rm -rf %s/*.mp[a2]", rec->TempDir()); + Execute("nice -n 19 rm -rf %s/*.ac3", rec->TempDir()); } if (SubStep < mJob->Count()) { @@ -170,11 +173,10 @@ for (mNumTracks = 0; tracks[mNumTracks].Type != ttUnknown; ++mNumTracks) ; - SetCmdline("tcmplex -i %s -p %s %s%s -m d -o %s/movie.mpg", + SetCmdline("nice -n 19 mplex -f 8 -vbr -v 1 -o %s/movie.mpg %s %s %s", + rec->TempDir(), tracks[0].Filename, tracks[1].Filename, - tracks[2].Type != ttUnknown ? "-s " : "", - tracks[2].Type != ttUnknown ? tracks[2].Filename : "", - rec->TempDir()); + tracks[2].Type != ttUnknown ? tracks[2].Filename : ""); } else SetNextStep(); break; @@ -197,9 +199,9 @@ conf.SetTempDir(TempDir()); conf.Write(); MakeDirectory("%s/DVDAUTHOR", TempDir()); - SetCmdline("dvdauthor -x %s/dvd.xml", TempDir()); + SetCmdline("nice -n 19 dvdauthor -x %s/dvd.xml", TempDir()); } else { - Execute("rm -rf %s/VDRSYNC.*", TempDir()); + Execute("nice -n 19 rm -rf %s/VDRSYNC.*", TempDir()); SetNextStep(); } break; @@ -210,19 +212,19 @@ switch (mJob->StoreMode()) { case smCreateISO: - SetCmdline("mkisofs -V VDR-BURN -dvd-video %s/DVDAUTHOR > '%s/%s.iso'", TempDir(), ISOdir, + SetCmdline("nice -n 19 mkisofs -V DVD-MOVIE -dvd-video %s/DVDAUTHOR > '%s/%s.iso'", TempDir(), ISOdir, mJob->Title()); break; case smBurnISO: - SetCmdline("growisofs -use-the-force-luke=tty -dvd-compat -Z %s -V VDR-BURN -dvd-video %s/DVDAUTHOR", + SetCmdline("nice -n 19 growisofs -use-the-force-luke=tty -dvd-compat -Z %s -V DVD-MOVIE -dvd-video %s/DVDAUTHOR", DVDdev, TempDir()); break; case smCreateBurn: asprintf(&path, "%s/fifo", TempDir()); mkfifo(path, 0644); - SetCmdline("growisofs -use-the-force-luke=tty -dvd-compat -Z %s=%s | mkisofs -V VDR-BURN -dvd-video " + SetCmdline("nice -n 19 growisofs -use-the-force-luke=tty -dvd-compat -Z %s=%s | mkisofs -V DVD-MOVIE -dvd-video " "%s/DVDAUTHOR | tee '%s/%s.iso' > %s", DVDdev, path, TempDir(), ISOdir, mJob->Title(), path); free(path); break; --- burn-0.0.5/render.c +++ burn-0.0.5/render.c @@ -190,8 +190,8 @@ asprintf(&cmd, "convert %1$s/menu-bg-%2$d.png pnm:- | ppmtoy4m -n 1 " "-F25:1 -I t -A 59:54 -L | mpeg2enc -f 8 -n p -o " - "%1$s/menu-bg-%2$d.m2v && tcmplex -i %1$s/menu-bg-%2$d.m2v -p " - "%3$s/menu-silence.mp2 -m d -o /dev/stdout | spumux -v 2 " + "%1$s/menu-bg-%2$d.m2v && mplex -f 8 -vbr -v 2 -o /dev/stdout " + "%1$s/menu-bg-%2$d.m2v %3$s/menu-silence.mp2 | spumux -v 2 " "%1$s/menu-%2$d.xml > %1$s/menu-bg-%2$d.mpg", path, i, cPlugin::ConfigDirectory("burn")); fprintf(stderr, " ++ starting sh -c '%s' in internal procedure\n", cmd); @@ -237,14 +237,17 @@ ++i, ++j) { cBurnRecording *rec = mJob->Get(i); char *name = EscapeLatin1toUTF8(rec->Name()); - DrawText(name, 108, 69 + j * 40, 530, 30); + DrawText(name, 138, 124 + j * 40, 450, 30); free(name); } + char *name = EscapeLatin1toUTF8(mJob->Title()); + DrawText(name, 138, 52, 450, 30); + free(name); if (mJob->Count() > p * MAXPAGETITLES + MAXPAGETITLES - 1) - DrawText(next, 360, 483, 240, 25, 2); + DrawText(next, 360, 513, 240, 25, 2); if (p > 0) - DrawText(prev, 120, 483, 240, 25); + DrawText(prev, 120, 513, 240, 25); free(next); free(prev); @@ -282,14 +285,14 @@ DrawRectangle(0, 0, 720, 576, 0x00000000); if (i < Pages - 1) - DrawImage(mButton, 605, 479); + DrawImage(mButton, 605, 509); if (i > 0) - DrawImage(mButton, 80, 479); + DrawImage(mButton, 80, 509); for (int j = i * MAXPAGETITLES, k = 0; j < min(i * MAXPAGETITLES + MAXPAGETITLES, mJob->Count()); ++j, ++k) { - DrawImage(mButton, 63, 63 + k * 40); + DrawImage(mButton, 93, 118 + k * 40); } imlib_image_set_format("png"); @@ -310,6 +313,7 @@ char *fontname; char *summary, *play, *back, *next, *prev; char *path; + char *stitle; int lines = 0, cnt = 0; imlib_add_path_to_font_path(mFontPath); @@ -328,6 +332,7 @@ DrawImage(mBackground, 0, 0); + stitle = EscapeLatin1toUTF8(tr("DESCRIPTION OF FILMTITLE")); summary = EscapeLatin1toUTF8(mRecording->Summary() ? mRecording->Summary() : mRecording->Name()); play = EscapeLatin1toUTF8(tr("Play movie")); @@ -335,14 +340,16 @@ next = EscapeLatin1toUTF8(tr("Next page")); prev = EscapeLatin1toUTF8(tr("Previous page")); - lines = DrawText(summary, 50, 60, 630, 380, 0, lines); + DrawText(stitle, 90, 52, 450, 30); + lines = DrawText(summary, 90, 120, 450, 340, 0, lines); if (lines != -1) - DrawText(next, 360, 443, 240, 25, 2); + DrawText(next, 360, 472, 240, 25, 2); if (cnt > 0) - DrawText(prev, 120, 443, 240, 25); - DrawText(play, 120, 483, 240, 25); - DrawText(back, 360, 483, 240, 25, 2); + DrawText(prev, 120, 472, 240, 25); + DrawText(play, 120, 513, 240, 25); + DrawText(back, 360, 513, 240, 25, 2); + free(stitle); free(summary); free(play); free(back); free(next); free(prev); @@ -382,11 +389,11 @@ DrawRectangle(0, 0, 720, 576, 0x00000000); if (i < Pages - 1) - DrawImage(mButton, 605, 439); + DrawImage(mButton, 605, 469); if (i > 0) - DrawImage(mButton, 80, 439); - DrawImage(mButton, 80, 479); - DrawImage(mButton, 605, 479); + DrawImage(mButton, 80, 469); + DrawImage(mButton, 80, 509); + DrawImage(mButton, 605, 509); imlib_image_set_format("png"); asprintf(&path, "%s/menu-buttons-h-%d.png", mRecording->TempDir(), i);