When starting an editing process, VDR now first checks whether there is enough free disk space to take up the edited version of the recording

This commit is contained in:
Klaus Schmidinger 2024-06-13 09:31:14 +02:00
parent 1c2401eb6c
commit db81c07b27
33 changed files with 250 additions and 35 deletions

View File

@ -9919,8 +9919,10 @@ Video Disk Recorder Revision History
- A device is now always kept occupied if a timer is in VPS margin or needs the - A device is now always kept occupied if a timer is in VPS margin or needs the
transponder (thanks to Markus Ehrnsperger). transponder (thanks to Markus Ehrnsperger).
2024-05-29: 2024-06-13:
- Updated the Italian OSD texts (thanks to Diego Pierotto). - Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed a possible access of a deleted object in the EIT scanner. - Fixed a possible access of a deleted object in the EIT scanner.
- Fixed setting T2 system ID from NIT (thanks to Stefan Herdler). - Fixed setting T2 system ID from NIT (thanks to Stefan Herdler).
- When starting an editing process, VDR now first checks whether there is enough
free disk space to take up the edited version of the recording.

8
menu.c
View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: menu.c 5.12 2024/03/04 21:13:58 kls Exp $ * $Id: menu.c 5.13 2024/06/13 09:31:11 kls Exp $
*/ */
#include "menu.h" #include "menu.h"
@ -2777,7 +2777,9 @@ eOSState cMenuRecordingEdit::Action(void)
RecordingsHandler.Del(recording->FileName()); RecordingsHandler.Del(recording->FileName());
else if (doCut) { else if (doCut) {
if (access(cCutter::EditedFileName(recording->FileName()), F_OK) != 0 || Interface->Confirm(tr("Edited version already exists - overwrite?"))) { if (access(cCutter::EditedFileName(recording->FileName()), F_OK) != 0 || Interface->Confirm(tr("Edited version already exists - overwrite?"))) {
if (!RecordingsHandler.Add(ruCut, recording->FileName())) if (!EnoughFreeDiskSpaceForEdit(recording->FileName()))
Skins.Message(mtError, tr("Not enough free disk space to start editing process!"));
else if (!RecordingsHandler.Add(ruCut, recording->FileName()))
Skins.Message(mtError, tr("Error while queueing recording for cutting!")); Skins.Message(mtError, tr("Error while queueing recording for cutting!"));
} }
} }
@ -6102,6 +6104,8 @@ void cReplayControl::EditCut(void)
Skins.Message(mtError, tr("No editing sequences defined!")); Skins.Message(mtError, tr("No editing sequences defined!"));
else if (access(cCutter::EditedFileName(fileName), F_OK) == 0 && !Interface->Confirm(tr("Edited version already exists - overwrite?"))) else if (access(cCutter::EditedFileName(fileName), F_OK) == 0 && !Interface->Confirm(tr("Edited version already exists - overwrite?")))
; ;
else if (!EnoughFreeDiskSpaceForEdit(fileName))
Skins.Message(mtError, tr("Not enough free disk space to start editing process!"));
else if (!RecordingsHandler.Add(ruCut, fileName)) else if (!RecordingsHandler.Add(ruCut, fileName))
Skins.Message(mtError, tr("Can't start editing process!")); Skins.Message(mtError, tr("Can't start editing process!"));
else else

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2008-10-16 11:16-0400\n" "PO-Revision-Date: 2008-10-16 11:16-0400\n"
"Last-Translator: Osama Alrawab <alrawab@hotmail.com>\n" "Last-Translator: Osama Alrawab <alrawab@hotmail.com>\n"
"Language-Team: Arabic <ar@li.org>\n" "Language-Team: Arabic <ar@li.org>\n"
@ -845,6 +845,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2008-03-02 19:02+0100\n" "PO-Revision-Date: 2008-03-02 19:02+0100\n"
"Last-Translator: Luca Olivetti <luca@ventoso.org>\n" "Last-Translator: Luca Olivetti <luca@ventoso.org>\n"
"Language-Team: Catalan <vdr@linuxtv.org>\n" "Language-Team: Catalan <vdr@linuxtv.org>\n"
@ -844,6 +844,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2010-05-06 11:00+0200\n" "PO-Revision-Date: 2010-05-06 11:00+0200\n"
"Last-Translator: Aleš Juřík <ajurik@quick.cz>\n" "Last-Translator: Aleš Juřík <ajurik@quick.cz>\n"
"Language-Team: Czech <vdr@linuxtv.org>\n" "Language-Team: Czech <vdr@linuxtv.org>\n"
@ -844,6 +844,9 @@ msgstr "Nahrávka zmizela!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Editovaná verze již existuje - přepsat?" msgstr "Editovaná verze již existuje - přepsat?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Chyba při vložení nahrávky do fronty pro střih" msgstr "Chyba při vložení nahrávky do fronty pro střih"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Mogens Elneff <mogens@elneff.dk>\n" "Last-Translator: Mogens Elneff <mogens@elneff.dk>\n"
"Language-Team: Danish <vdr@linuxtv.org>\n" "Language-Team: Danish <vdr@linuxtv.org>\n"
@ -841,6 +841,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2015-02-10 13:45+0100\n" "PO-Revision-Date: 2015-02-10 13:45+0100\n"
"Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n" "Last-Translator: Klaus Schmidinger <vdr@tvdr.de>\n"
"Language-Team: German <vdr@linuxtv.org>\n" "Language-Team: German <vdr@linuxtv.org>\n"
@ -843,6 +843,9 @@ msgstr "Aufnahme verschwunden!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Geschnittene Version existiert bereits - überschreiben?" msgstr "Geschnittene Version existiert bereits - überschreiben?"
msgid "Not enough free disk space to start editing process!"
msgstr "Nicht genug freier Plattenplatz zum Schneiden!"
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Fehler beim Hinzufügen der Aufnahme zur Schnittwarteschlange" msgstr "Fehler beim Hinzufügen der Aufnahme zur Schnittwarteschlange"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n" "Last-Translator: Dimitrios Dimitrakos <mail@dimitrios.de>\n"
"Language-Team: Greek <vdr@linuxtv.org>\n" "Language-Team: Greek <vdr@linuxtv.org>\n"
@ -841,6 +841,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2015-02-19 23:00+0100\n" "PO-Revision-Date: 2015-02-19 23:00+0100\n"
"Last-Translator: Gabriel Bonich <gbonich@gmail.com>\n" "Last-Translator: Gabriel Bonich <gbonich@gmail.com>\n"
"Language-Team: Spanish <vdr@linuxtv.org>\n" "Language-Team: Spanish <vdr@linuxtv.org>\n"
@ -842,6 +842,9 @@ msgstr "Grabaci
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Se está editando una versión - sobreescribir?" msgstr "Se está editando una versión - sobreescribir?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Error mientras la grabación está en cola!" msgstr "Error mientras la grabación está en cola!"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Arthur Konovalov <artlov@gmail.com>\n" "Last-Translator: Arthur Konovalov <artlov@gmail.com>\n"
"Language-Team: Estonian <vdr@linuxtv.org>\n" "Language-Team: Estonian <vdr@linuxtv.org>\n"
@ -841,6 +841,9 @@ msgstr "Salvestis puudub!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Muudetud versioon juba olemas - kirjutada üle?" msgstr "Muudetud versioon juba olemas - kirjutada üle?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Salvestise lisamine lõikamiseks ebaõnnestus!" msgstr "Salvestise lisamine lõikamiseks ebaõnnestus!"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2007-08-15 15:52+0200\n" "PO-Revision-Date: 2007-08-15 15:52+0200\n"
"Last-Translator: Matti Lehtimäki <matti.lehtimaki@gmail.com>\n" "Last-Translator: Matti Lehtimäki <matti.lehtimaki@gmail.com>\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n" "Language-Team: Finnish <vdr@linuxtv.org>\n"
@ -845,6 +845,9 @@ msgstr "Tallenne katosi!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Muokattava versio on jo olemassa - ylikirjoitetaanko?" msgstr "Muokattava versio on jo olemassa - ylikirjoitetaanko?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Tallenteen lisääminen leikkausjonoon epäonnistui!" msgstr "Tallenteen lisääminen leikkausjonoon epäonnistui!"

View File

@ -18,7 +18,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2018-04-14 10:16+0100\n" "PO-Revision-Date: 2018-04-14 10:16+0100\n"
"Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n" "Last-Translator: Bernard Jaulin <bernard.jaulin@gmail.com>\n"
"Language-Team: French <vdr@linuxtv.org>\n" "Language-Team: French <vdr@linuxtv.org>\n"
@ -852,6 +852,9 @@ msgstr "L'enregistrement a disparu !"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "La version éditée existe déjà - écraser ?" msgstr "La version éditée existe déjà - écraser ?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Erreur lors de la mise en file d'attente pour la coupe !" msgstr "Erreur lors de la mise en file d'attente pour la coupe !"

View File

@ -9,7 +9,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2008-03-17 19:00+0100\n" "PO-Revision-Date: 2008-03-17 19:00+0100\n"
"Last-Translator: Adrian Caval <anrxc@sysphere.org>\n" "Last-Translator: Adrian Caval <anrxc@sysphere.org>\n"
"Language-Team: Croatian <vdr@linuxtv.org>\n" "Language-Team: Croatian <vdr@linuxtv.org>\n"
@ -843,6 +843,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.6\n" "Project-Id-Version: VDR 2.6.6\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2024-02-09 06:29+0000\n" "PO-Revision-Date: 2024-02-09 06:29+0000\n"
"Last-Translator: István Füley <ifuley@tigercomp.ro>\n" "Last-Translator: István Füley <ifuley@tigercomp.ro>\n"
"Language-Team: Hungarian\n" "Language-Team: Hungarian\n"
@ -849,6 +849,9 @@ msgstr "Ez a felvétel eltűnt!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "A szerkesztett változat már létezik - felülírjam?" msgstr "A szerkesztett változat már létezik - felülírjam?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Hiba a felvétel vágásra előkészítése közben!" msgstr "Hiba a felvétel vágásra előkészítése közben!"

View File

@ -11,7 +11,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2024-04-02 23:20+0200\n" "PO-Revision-Date: 2024-04-02 23:20+0200\n"
"Last-Translator: Gringo <vdr-italian@tiscali.it>\n" "Last-Translator: Gringo <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n" "Language-Team: Italian <vdr@linuxtv.org>\n"
@ -847,6 +847,9 @@ msgstr "Registrazione sparita!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Versione modificata già esistente. Sovrascrivere?" msgstr "Versione modificata già esistente. Sovrascrivere?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Errore durante l'accodamento della registrazione per il taglio!" msgstr "Errore durante l'accodamento della registrazione per il taglio!"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2015-02-11 14:02+0200\n" "PO-Revision-Date: 2015-02-11 14:02+0200\n"
"Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n"
"Language-Team: Lithuanian <vdr@linuxtv.org>\n" "Language-Team: Lithuanian <vdr@linuxtv.org>\n"
@ -841,6 +841,9 @@ msgstr "Įrašai išvalyti!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Tokia koreguota versija jau yra, vistiek perašyti?" msgstr "Tokia koreguota versija jau yra, vistiek perašyti?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Klaida sustatant įrašus į karpymo eilę!" msgstr "Klaida sustatant įrašus į karpymo eilę!"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2018-03-31 21:47+0100\n" "PO-Revision-Date: 2018-03-31 21:47+0100\n"
"Last-Translator: Dimitar Petrovski <dimeptr@gmail.com>\n" "Last-Translator: Dimitar Petrovski <dimeptr@gmail.com>\n"
"Language-Team: Macedonian <kde-i18n-doc@kde.org>\n" "Language-Team: Macedonian <kde-i18n-doc@kde.org>\n"
@ -843,6 +843,9 @@ msgstr "Снимката исчезна!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Уредена верзија веќе постои - пребриши?" msgstr "Уредена верзија веќе постои - пребриши?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Грешка при редење на снимка за сечење!" msgstr "Грешка при редење на снимка за сечење!"

View File

@ -13,7 +13,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2015-02-10 19:43+0100\n" "PO-Revision-Date: 2015-02-10 19:43+0100\n"
"Last-Translator: Erik Oomen <oomen.e@gmail.com>\n" "Last-Translator: Erik Oomen <oomen.e@gmail.com>\n"
"Language-Team: Dutch <vdr@linuxtv.org>\n" "Language-Team: Dutch <vdr@linuxtv.org>\n"
@ -847,6 +847,9 @@ msgstr "Opname verdwenen!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Bewerkte versie bestaat al - overschrijven?" msgstr "Bewerkte versie bestaat al - overschrijven?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Kan opname voor knippen niet in wachtrij plaatsen!" msgstr "Kan opname voor knippen niet in wachtrij plaatsen!"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2007-08-12 14:17+0200\n" "PO-Revision-Date: 2007-08-12 14:17+0200\n"
"Last-Translator: Truls Slevigen <truls@slevigen.no>\n" "Last-Translator: Truls Slevigen <truls@slevigen.no>\n"
"Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n" "Language-Team: Norwegian Nynorsk <vdr@linuxtv.org>\n"
@ -842,6 +842,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -10,7 +10,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2018-02-19 00:42+0100\n" "PO-Revision-Date: 2018-02-19 00:42+0100\n"
"Last-Translator: Tomasz Maciej Nowak <tmn505@gmail.com>\n" "Last-Translator: Tomasz Maciej Nowak <tmn505@gmail.com>\n"
"Language-Team: Polish <vdr@linuxtv.org>\n" "Language-Team: Polish <vdr@linuxtv.org>\n"
@ -846,6 +846,9 @@ msgstr "Nagranie zniknęło!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Edytowana wersja już istnieje - nadpisać?" msgstr "Edytowana wersja już istnieje - nadpisać?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Błąd podczas zakolejkowania nagrania do przycinania!" msgstr "Błąd podczas zakolejkowania nagrania do przycinania!"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2010-03-28 22:49+0100\n" "PO-Revision-Date: 2010-03-28 22:49+0100\n"
"Last-Translator: Cris Silva <hudokkow@gmail.com>\n" "Last-Translator: Cris Silva <hudokkow@gmail.com>\n"
"Language-Team: Portuguese <vdr@linuxtv.org>\n" "Language-Team: Portuguese <vdr@linuxtv.org>\n"
@ -842,6 +842,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2015-02-11 22:26+0100\n" "PO-Revision-Date: 2015-02-11 22:26+0100\n"
"Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n" "Last-Translator: Lucian Muresan <lucianm@users.sourceforge.net>\n"
"Language-Team: Romanian <vdr@linuxtv.org>\n" "Language-Team: Romanian <vdr@linuxtv.org>\n"
@ -843,6 +843,9 @@ msgstr "Înregistrarea a dispărut!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Deja există o versiune editată - o suprascriu?" msgstr "Deja există o versiune editată - o suprascriu?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Eroare la punerea în coada pentru tăiere!" msgstr "Eroare la punerea în coada pentru tăiere!"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2016-12-27 17:13+0100\n" "PO-Revision-Date: 2016-12-27 17:13+0100\n"
"Last-Translator: Pridvorov Andrey <ua0lnj@bk.ru>\n" "Last-Translator: Pridvorov Andrey <ua0lnj@bk.ru>\n"
"Language-Team: Russian <vdr@linuxtv.org>\n" "Language-Team: Russian <vdr@linuxtv.org>\n"
@ -842,6 +842,9 @@ msgstr "Запись исчезла!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Изменённая версия уже есть - переписать?" msgstr "Изменённая версия уже есть - переписать?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Ошибка очереди записи для обрезки!" msgstr "Ошибка очереди записи для обрезки!"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2015-02-17 18:59+0100\n" "PO-Revision-Date: 2015-02-17 18:59+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <vdr@linuxtv.org>\n" "Language-Team: Slovak <vdr@linuxtv.org>\n"
@ -842,6 +842,9 @@ msgstr "Z
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Upravená verzia u¾ existuje - prepísa»?" msgstr "Upravená verzia u¾ existuje - prepísa»?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Chyba v poradí pri zostrihu nahrávky!" msgstr "Chyba v poradí pri zostrihu nahrávky!"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2013-03-04 12:46+0100\n" "PO-Revision-Date: 2013-03-04 12:46+0100\n"
"Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n" "Last-Translator: Matjaz Thaler <matjaz.thaler@guest.arnes.si>\n"
"Language-Team: Slovenian <vdr@linuxtv.org>\n" "Language-Team: Slovenian <vdr@linuxtv.org>\n"
@ -842,6 +842,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2013-03-16 15:05+0100\n" "PO-Revision-Date: 2013-03-16 15:05+0100\n"
"Last-Translator: Zoran Turalija <zoran.turalija@gmail.com>\n" "Last-Translator: Zoran Turalija <zoran.turalija@gmail.com>\n"
"Language-Team: Serbian <vdr@linuxtv.org>\n" "Language-Team: Serbian <vdr@linuxtv.org>\n"
@ -842,6 +842,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -12,7 +12,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2015-02-12 21:58+0100\n" "PO-Revision-Date: 2015-02-12 21:58+0100\n"
"Last-Translator: Magnus Sirviö <sirwio@hotmail.com>\n" "Last-Translator: Magnus Sirviö <sirwio@hotmail.com>\n"
"Language-Team: Swedish <vdr@linuxtv.org>\n" "Language-Team: Swedish <vdr@linuxtv.org>\n"
@ -846,6 +846,9 @@ msgstr "Inspelningen f
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "En redigerad version finns redan - skall den ersättas?" msgstr "En redigerad version finns redan - skall den ersättas?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Ett fel upstod när inspelningen köades för klippning!" msgstr "Ett fel upstod när inspelningen köades för klippning!"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2008-02-28 00:33+0100\n" "PO-Revision-Date: 2008-02-28 00:33+0100\n"
"Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n" "Last-Translator: Oktay Yolgeçen <oktay_73@yahoo.de>\n"
"Language-Team: Turkish <vdr@linuxtv.org>\n" "Language-Team: Turkish <vdr@linuxtv.org>\n"
@ -841,6 +841,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2018-03-18 20:00+0100\n" "PO-Revision-Date: 2018-03-18 20:00+0100\n"
"Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n" "Last-Translator: Yarema aka Knedlyk <yupadmin@gmail.com>\n"
"Language-Team: Ukrainian <vdr@linuxtv.org>\n" "Language-Team: Ukrainian <vdr@linuxtv.org>\n"
@ -842,6 +842,9 @@ msgstr "Запис зник!"
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "Вже існує редагована версія - перезаписати?" msgstr "Вже існує редагована версія - перезаписати?"
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "Помилка перешуковування запису для обрізання!" msgstr "Помилка перешуковування запису для обрізання!"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: VDR 2.6.0\n" "Project-Id-Version: VDR 2.6.0\n"
"Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n" "Report-Msgid-Bugs-To: <vdr-bugs@tvdr.de>\n"
"POT-Creation-Date: 2024-03-04 22:03+0100\n" "POT-Creation-Date: 2024-06-13 11:21+0200\n"
"PO-Revision-Date: 2013-03-04 14:52+0800\n" "PO-Revision-Date: 2013-03-04 14:52+0800\n"
"Last-Translator: NFVDR <nfvdr@live.com>\n" "Last-Translator: NFVDR <nfvdr@live.com>\n"
"Language-Team: Chinese (simplified) <nfvdr@live.com>\n" "Language-Team: Chinese (simplified) <nfvdr@live.com>\n"
@ -843,6 +843,9 @@ msgstr ""
msgid "Edited version already exists - overwrite?" msgid "Edited version already exists - overwrite?"
msgstr "" msgstr ""
msgid "Not enough free disk space to start editing process!"
msgstr ""
msgid "Error while queueing recording for cutting!" msgid "Error while queueing recording for cutting!"
msgstr "" msgstr ""

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.c 5.27 2024/03/04 14:12:37 kls Exp $ * $Id: recording.c 5.28 2024/06/13 09:31:11 kls Exp $
*/ */
#include "recording.h" #include "recording.h"
@ -1447,6 +1447,17 @@ int cRecording::NumFrames(void) const
return numFrames; return numFrames;
} }
int cRecording::NumFramesAfterEdit(void) const
{
int IndexLength = cIndexFile::GetLength(fileName, isPesRecording);
if (IndexLength > 0) {
cMarks Marks;
if (Marks.Load(fileName, framesPerSecond, isPesRecording))
return Marks.GetFrameAfterEdit(IndexLength - 1, IndexLength - 1);
}
return -1;
}
int cRecording::LengthInSeconds(void) const int cRecording::LengthInSeconds(void) const
{ {
int nf = NumFrames(); int nf = NumFrames();
@ -1455,6 +1466,14 @@ int cRecording::LengthInSeconds(void) const
return -1; return -1;
} }
int cRecording::LengthInSecondsAfterEdit(void) const
{
int nf = NumFramesAfterEdit();
if (nf >= 0)
return int(nf / FramesPerSecond());
return -1;
}
int cRecording::FileSizeMB(void) const int cRecording::FileSizeMB(void) const
{ {
if (fileSizeMB < 0) { if (fileSizeMB < 0) {
@ -2185,6 +2204,24 @@ int cRecordingsHandler::GetUsage(const char *FileName)
return ruNone; return ruNone;
} }
int cRecordingsHandler::GetRequiredDiskSpaceMB(const char *FileName)
{
int RequiredDiskSpaceMB = 0;
for (cRecordingsHandlerEntry *r = operations.First(); r; r = operations.Next(r)) {
if ((r->Usage() & ruCanceled) != 0)
continue;
if ((r->Usage() & ruCut) != 0) {
if (!FileName || EntriesOnSameFileSystem(FileName, r->FileNameDst()))
RequiredDiskSpaceMB += FileSizeMBafterEdit(r->FileNameSrc());
}
else if ((r->Usage() & (ruMove | ruCopy)) != 0) {
if (!FileName || EntriesOnSameFileSystem(FileName, r->FileNameDst()))
RequiredDiskSpaceMB += DirSizeMB(r->FileNameSrc());
}
}
return RequiredDiskSpaceMB;
}
bool cRecordingsHandler::Finished(bool &Error) bool cRecordingsHandler::Finished(bool &Error)
{ {
cMutexLock MutexLock(&mutex); cMutexLock MutexLock(&mutex);
@ -2415,6 +2452,38 @@ int cMarks::GetNumSequences(void) const
return NumSequences; return NumSequences;
} }
int cMarks::GetFrameAfterEdit(int Frame, int LastFrame) const
{
if (Count() == 0 || LastFrame < 0 || Frame < 0 || Frame > LastFrame)
return -1;
int EditedFrame = 0;
int PrevPos = -1;
bool InEdit = false;
for (const cMark *mi = First(); mi; mi = Next(mi)) {
int p = mi->Position();
if (InEdit) {
EditedFrame += p - PrevPos;
InEdit = false;
if (Frame <= p) {
EditedFrame -= p - Frame;
return EditedFrame;
}
}
else {
if (Frame <= p)
return EditedFrame;
PrevPos = p;
InEdit = true;
}
}
if (InEdit) {
EditedFrame += LastFrame - PrevPos; // the last sequence had no actual "end" mark
if (Frame < LastFrame)
EditedFrame -= LastFrame - Frame;
}
return EditedFrame;
}
// --- cRecordingUserCommand ------------------------------------------------- // --- cRecordingUserCommand -------------------------------------------------
const char *cRecordingUserCommand::command = NULL; const char *cRecordingUserCommand::command = NULL;
@ -3383,3 +3452,39 @@ cString GetRecordingTimerId(const char *Directory)
} }
return Id; return Id;
} }
// --- Disk space calculation for editing ------------------------------------
int FileSizeMBafterEdit(const char *FileName)
{
int FileSizeMB = DirSizeMB(FileName);
if (FileSizeMB > 0) {
cRecording r(FileName);
int NumFramesOrg = r.NumFrames();
if (NumFramesOrg > 0) {
int NumFramesEdit = r.NumFramesAfterEdit();
if (NumFramesEdit > 0)
return max(1, int(FileSizeMB * (double(NumFramesEdit) / NumFramesOrg)));
}
}
return -1;
}
bool EnoughFreeDiskSpaceForEdit(const char *FileName)
{
int FileSizeMB = FileSizeMBafterEdit(FileName);
if (FileSizeMB > 0) {
int FreeDiskMB;
cVideoDirectory::VideoDiskSpace(&FreeDiskMB);
cString EditedFileName = cCutter::EditedFileName(FileName);
if (access(EditedFileName, F_OK)) {
int ExistingEditedSizeMB = DirSizeMB(EditedFileName);
if (ExistingEditedSizeMB > 0)
FreeDiskMB += ExistingEditedSizeMB;
}
FreeDiskMB -= RecordingsHandler.GetRequiredDiskSpaceMB(FileName);
FreeDiskMB -= MINDISKSPACE;
return FileSizeMB < FreeDiskMB;
}
return false;
}

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.h 5.7 2023/12/29 10:48:25 kls Exp $ * $Id: recording.h 5.8 2024/06/13 09:31:11 kls Exp $
*/ */
#ifndef __RECORDING_H #ifndef __RECORDING_H
@ -174,8 +174,15 @@ public:
int NumFrames(void) const; int NumFrames(void) const;
///< Returns the number of frames in this recording. ///< Returns the number of frames in this recording.
///< If the number of frames is unknown, -1 will be returned. ///< If the number of frames is unknown, -1 will be returned.
int NumFramesAfterEdit(void) const;
///< Returns the number of frames in the edited version of this recording.
///< If there are no editing marks, 0 will be returned.
///< If the number of frames is unknown, -1 will be returned.
int LengthInSeconds(void) const; int LengthInSeconds(void) const;
///< Returns the length (in seconds) of this recording, or -1 in case of error. ///< Returns the length (in seconds) of this recording, or -1 in case of error.
int LengthInSecondsAfterEdit(void) const;
///< Returns the length (in seconds) of the edited version of this recording, or -1 in case of error.
///< If there are no editing marks, 0 will be returned.
int FileSizeMB(void) const; int FileSizeMB(void) const;
///< Returns the total file size of this recording (in MB), or -1 if the file ///< Returns the total file size of this recording (in MB), or -1 if the file
///< size is unknown. ///< size is unknown.
@ -353,6 +360,10 @@ public:
///< Deletes/terminates all operations. ///< Deletes/terminates all operations.
int GetUsage(const char *FileName); int GetUsage(const char *FileName);
///< Returns the usage type for the given FileName. ///< Returns the usage type for the given FileName.
int GetRequiredDiskSpaceMB(const char *FileName = NULL);
///< Returns the total disk space required to process all actions.
///< If FileName is given, only the drive that contains that file is taken
///< into account.
bool Finished(bool &Error); bool Finished(bool &Error);
///< Returns true if all operations in the list have been finished. ///< Returns true if all operations in the list have been finished.
///< If there have been any errors, Errors will be set to true. ///< If there have been any errors, Errors will be set to true.
@ -424,6 +435,10 @@ public:
///< 0 (the beginning of the recording), and there is no "end" mark, the ///< 0 (the beginning of the recording), and there is no "end" mark, the
///< return value is 0, which means that the result is the same as the original ///< return value is 0, which means that the result is the same as the original
///< recording. ///< recording.
int GetFrameAfterEdit(int Frame, int LastFrame) const;
///< Returns the number of the given Frame within the region covered by begin/end sequences.
///< LastFrame must be given by the caller.
///< If there are no editing marks or in case of an error -1 is returned.
cMark *Get(int Position) { return const_cast<cMark *>(static_cast<const cMarks *>(this)->Get(Position)); } cMark *Get(int Position) { return const_cast<cMark *>(static_cast<const cMarks *>(this)->Get(Position)); }
cMark *GetPrev(int Position) { return const_cast<cMark *>(static_cast<const cMarks *>(this)->GetPrev(Position)); } cMark *GetPrev(int Position) { return const_cast<cMark *>(static_cast<const cMarks *>(this)->GetPrev(Position)); }
cMark *GetNext(int Position) { return const_cast<cMark *>(static_cast<const cMarks *>(this)->GetNext(Position)); } cMark *GetNext(int Position) { return const_cast<cMark *>(static_cast<const cMarks *>(this)->GetNext(Position)); }
@ -570,4 +585,7 @@ void IncRecordingsSortMode(const char *Directory);
void SetRecordingTimerId(const char *Directory, const char *TimerId); void SetRecordingTimerId(const char *Directory, const char *TimerId);
cString GetRecordingTimerId(const char *Directory); cString GetRecordingTimerId(const char *Directory);
int FileSizeMBafterEdit(const char *FileName);
bool EnoughFreeDiskSpaceForEdit(const char *FileName);
#endif //__RECORDING_H #endif //__RECORDING_H

View File

@ -10,7 +10,7 @@
* and interact with the Video Disk Recorder - or write a full featured * and interact with the Video Disk Recorder - or write a full featured
* graphical interface that sits on top of an SVDRP connection. * graphical interface that sits on top of an SVDRP connection.
* *
* $Id: svdrp.c 5.7 2023/02/16 17:20:09 kls Exp $ * $Id: svdrp.c 5.8 2024/06/13 09:31:11 kls Exp $
*/ */
#include "svdrp.h" #include "svdrp.h"
@ -1505,7 +1505,9 @@ void cSVDRPServer::CmdEDIT(const char *Option)
if (const cRecording *Recording = Recordings->GetById(strtol(Option, NULL, 10))) { if (const cRecording *Recording = Recordings->GetById(strtol(Option, NULL, 10))) {
cMarks Marks; cMarks Marks;
if (Marks.Load(Recording->FileName(), Recording->FramesPerSecond(), Recording->IsPesRecording()) && Marks.Count()) { if (Marks.Load(Recording->FileName(), Recording->FramesPerSecond(), Recording->IsPesRecording()) && Marks.Count()) {
if (RecordingsHandler.Add(ruCut, Recording->FileName())) if (!EnoughFreeDiskSpaceForEdit(Recording->FileName()))
Reply(550, "Not enough free disk space to start editing process");
else if (RecordingsHandler.Add(ruCut, Recording->FileName()))
Reply(250, "Editing recording \"%s\" [%s]", Option, Recording->Title()); Reply(250, "Editing recording \"%s\" [%s]", Option, Recording->Title());
else else
Reply(554, "Can't start editing process"); Reply(554, "Can't start editing process");