hi,
werde dir nen backtrace zukommen lassen. Hab die Plugins erst mal rausgenommen, wollte
noch was aufnehmen.
bis denn
jabba
hi,
werde dir nen backtrace zukommen lassen. Hab die Plugins erst mal rausgenommen, wollte
noch was aufnehmen.
bis denn
jabba
Quote
Sollten wir unsere Plugins lieber in videgorepg, videgorsched, videgorvidtrans umbenennen? Wir haben wegen der Laenge damals dagegen entschieden.
Wäre prima, würde es zumindestens den automatischen Patsch-Skripte für die Ct-VDR (ct+tobi+tomg) erleichtern
QuoteIn solchen Faellen koennen wir leider ohne Core-File (oder zumindest einem backtrace) gar nichts machen. Also meine Bitte: mit 'ulimit -Sc unlimited' die Erzeugung von core-Files anschalten. Das erleichtert das debugging ungemein.
Danke schon mal im vorraus.Kendy
Ok, kein Problem. Muss nur gerade die Maschine rebooten,
ich hatte mal getestet welches Plugin die Probleme macht:
vdr:~# vdrdevel -P dvdrepg
1133540541,199874 DFLT5:void igor_init()
1133540545,505874 CONN5:connection with fd 14 changed state from EMPTY to OPENING
vdr:~# vdrdevel -P dvdrepg -P dvdrsched
1133540886,958787 DFLT5:void igor_init()
1133540891,365854 CONN5:connection with fd 14 changed state from EMPTY to OPENING
starting main thread
create connection
1133540891,369987 CONN5:connection with fd 15 changed state from EMPTY to OPENING
bind socket
start cTimerSearch thread
start reciever thread
wait set to: 0
--> So wie es aussieht liegt es am dvdrvidtrans. Das habe ich dann nochmal mit den anderen beiden Plugins gestartet.
Erg: Bild lief weiter aber Prozess hing.
Ich reboote gerade mal und schaue was passiert.
Melde mich gleich.
Vielen Dank für die schnelle Auskunft (Und ein Hoch auf die tolle Idee!!)
KK
Ähm helft mir bitte mal weiter..
EDIT----
Ok, geht habe eine Core-File....
EDIT---
Was muss ich machen, um den vdr zum Core-File Produzieren zu überreden?
Muss ich den vdr mit "anderen" Parametern neu kompilieren, oder was soll ich mit "ulimit -Sc unlimited" machen?
Gruß
KK
-------------
Aktuell erhalte ich folgendes:
vdr:~# vdrdevel -P dvdrvidtrans -P dvdrepg -P dvdrsched
1133547206,751854 DFLT5:void igor_init()
1133547211,338368 CONN5:connection with fd 14 changed state from EMPTY to OPENING
starting main thread
1133547211,342075 DFLT5:void igor_init()
1133547211,343187 CONN5:connection with fd 16 changed state from EMPTY to OPENING
create connection
1133547211,346421 CONN5:connection with fd 17 changed state from EMPTY to OPENING
bind socket
start cTimerSearch thread
start reciever thread
wait set to: 0
vdrdevel: dvdrvidtrans.c:101: void vtchannel::fromvdr(const cChannel*): Zusicherung »c« nicht erfüllt.
Abgebrochen
------------------
Hinweis: ich habe hier auch nur einen VDR an, und igor mit cont_if_no_conns gestartet (das schreibt auch fleissig in die Console)
Schade, hat sich offenbar noch nichts bei der Fehlersuche getan. Ich glaube ich hab den gleichen Fehler, zumindest deuten die Log Ausgaben dies an...
Konsolenausgabe:
1133612122.148593 DFLT5:void igor_init()
1133612122.148917 DFLT5:void igor_init()
Sat Dec 3 13:15:23 CET 2005
restarting VDR
Syslog:
Dec 3 13:19:40 multimedia vdr[11826]: initializing plugin: dvdrvidtrans (0.1.0): dvdr video transport
Dec 3 13:19:40 multimedia vdr[11826]: initializing plugin: dvdrepg (0.8.0): EPG distribution via IGOR
Dec 3 13:19:40 multimedia vdr[11826]: initializing plugin: dvdrsched (0.0.1): Schedules recordings over a network
.
.
.
Dec 3 13:19:40 multimedia vdr[11826]: starting plugin: dvdrvidtrans
Dec 3 13:19:40 multimedia vdr[11840]: virtual void vtmain::Action(): begin
Dec 3 13:19:40 multimedia vdr[11843]: virtual void serverthread::Action(): begin
Dec 3 13:19:40 multimedia vdr[11840]: void vtmain::ctimerlist::add(vtmain::ctimerlist::etimer, int): begin, what 2 when 10
Dec 3 13:19:40 multimedia vdr[11840]: list element: when 1133612390 what 2
Dec 3 13:19:40 multimedia vdr[11840]: void vtmain::ctimerlist::add(vtmain::ctimerlist::etimer, int): begin, what 1 when 100
Dec 3 13:19:40 multimedia vdr[11840]: list element: when 1133612390 what 2
Dec 3 13:19:40 multimedia vdr[11840]: list element: when 1133612480 what 1
Dec 3 13:19:40 multimedia vdr[11840]: void vtmain::ctimerlist::add(vtmain::ctimerlist::etimer, int): begin, what 3 when 100
Dec 3 13:19:40 multimedia vdr[11840]: list element: when 1133612390 what 2
Dec 3 13:19:40 multimedia vdr[11840]: list element: when 1133612480 what 1
Dec 3 13:19:40 multimedia vdr[11840]: list element: when 1133612480 what 3
Dec 3 13:19:40 multimedia vdr[11840]: int vtmain::ctimerlist::getnextwhen(): begin
Dec 3 13:19:40 multimedia vdr[11844]: virtual void igorinterface::Action(): begin
Dec 3 13:19:40 multimedia vdr[11826]: starting plugin: dvdrepg
Dec 3 13:19:40 multimedia vdr[11826]: dvdrepg plugin: failed to bind the IGOR socket (this socket is not connected)
Dec 3 13:19:40 multimedia vdr[11826]: stopping plugin: dvdrvidtrans
.
.
.
Dec 3 13:19:43 multimedia vdr[11826]: deleting plugin: dvdrsched
Dec 3 13:19:43 multimedia vdr[11826]: deleting plugin: dvdrepg
Dec 3 13:19:43 multimedia vdr[11826]: deleting plugin: dvdrvidtrans
Display More
hm... just wo ich diese Zeilen schreibe, ist mein VDR doch tatsächlich doch gestartet. Mir fällt auf, dass er manchmal, 2-3 reboots braucht, bis VDR gestartet bleibt... bis man irgendwie mittels "Sched" iregndwie den VDR wieder abschiesst. Bei den anschliessenden rebootversuchen wird in die Syslog dieser Eintrag geschrieben:
Dec 3 13:28:37 multimedia vdr[17842]: dvdrepg plugin: failed to bind the IGOR socket (this socket is not connected)
Taucht dieser nicht auf, dann bleibt der VDR auch zunächst wieder an...
Jetzt die nächste Frage. Was mach ich nun damit??? Welche IP muss in die Plugin-Einstellungen von dvdrtrans bei "Transport adress" rein?
Ich hab igor mit den Standardparametern aus der Anleitung gestartet:
igor --netport 11073 --clientport 11072 --boot vdr.ira.uka.de:11073
Grmpf, immer noch während ich diese Zeilen schreibe, passiert doch tatsächlich, dass VDR einfach so abstürzt... das ganze ist wohl noch nicht so ausgereift, dass es wenigstens läuft, oder doch?
Dec 3 13:33:47 multimedia vdr[20895]: virtual bool cPluginVidTrans::SetupParse(const char*, const char*): forwarding name 'client_threads_max' val 5 to vtmain
Dec 3 13:33:47 multimedia vdr[20895]: bool vtmain::SetupParse(const char*, const char*): with name 'client_threads_max' and val '5'
Dec 3 13:33:47 multimedia vdr[20895]: void ctasks::set_client_threads_max(int): begin
Dec 3 13:33:47 multimedia vdr[20895]: virtual bool cPluginVidTrans::SetupParse(const char*, const char*): forwarding name 'downloaddir' val /video to vtmain
Dec 3 13:33:47 multimedia vdr[20895]: bool vtmain::SetupParse(const char*, const char*): with name 'downloaddir' and val '/video'
Dec 3 13:33:47 multimedia vdr[20895]: virtual bool cPluginVidTrans::SetupParse(const char*, const char*): forwarding name 'housekeeping_interval' val 100 to vtmain
Dec 3 13:33:47 multimedia vdr[20895]: bool vtmain::SetupParse(const char*, const char*): with name 'housekeeping_interval' and val '100'
Dec 3 13:33:47 multimedia vdr[20895]: virtual bool cPluginVidTrans::SetupParse(const char*, const char*): forwarding name 'publications_per_round' val 10 to vtmain
Dec 3 13:33:47 multimedia vdr[20895]: bool vtmain::SetupParse(const char*, const char*): with name 'publications_per_round' and val '10'
Dec 3 13:33:47 multimedia vdr[20895]: virtual bool cPluginVidTrans::SetupParse(const char*, const char*): forwarding name 'publish_interval' val 10 to vtmain
Dec 3 13:33:47 multimedia vdr[20895]: bool vtmain::SetupParse(const char*, const char*): with name 'publish_interval' and val '10'
Dec 3 13:33:47 multimedia vdr[20895]: virtual bool cPluginVidTrans::SetupParse(const char*, const char*): forwarding name 'speedlimit' val 10 to vtmain
Dec 3 13:33:47 multimedia vdr[20895]: bool vtmain::SetupParse(const char*, const char*): with name 'speedlimit' and val '10'
Dec 3 13:33:47 multimedia vdr[20895]: virtual bool cPluginVidTrans::SetupParse(const char*, const char*): forwarding name 'transport' val to vtmain
Dec 3 13:33:47 multimedia vdr[20895]: bool vtmain::SetupParse(const char*, const char*): with name 'transport' and val ''
Dec 3 13:33:47 multimedia vdr[20895]: virtual bool cPluginVidTrans::SetupParse(const char*, const char*): forwarding name 'videosource_age_max' val 1000 to vtmain
Dec 3 13:33:47 multimedia vdr[20895]: bool vtmain::SetupParse(const char*, const char*): with name 'videosource_age_max' and val '1000'
Display More
QuoteOriginal von kk234
Was muss ich machen, um den vdr zum Core-File Produzieren zu überreden?Muss ich den vdr mit "anderen" Parametern neu kompilieren, oder was soll ich mit "ulimit -Sc unlimited" machen?
Core-Files werden vom Linux-System selbst produziert: Wenn ein Programm z.B. mit einem Segmentation Fault abbricht, wird der gesamte Speicherinhalt dieses Programms in ein File geschrieben, das Core-File.
Damit man nicht immer solche Files auf Platte bekommt, ist das bei Linux normalerweise ausgeschaltet. Man schaltet es durch folgendes Kommando auf der Konsole ein:
ulimit -Sc unlimited
Mit 'ulimit -a' kann man sich ansehen, welche sonstigen Einstellungen Linux momentan noch hat.
QuoteOriginal von Habib
Schade, hat sich offenbar noch nichts bei der Fehlersuche getan. Ich glaube ich hab den gleichen Fehler, zumindest deuten die Log Ausgaben dies an...
We appologize for the inconvenience. - Kendy ist (spätestens) Montag wieder online. Dann schauen wir uns die Fehler genauer an. - Wie gesagt, bei uns läufts, allerdings ist unsere Umgebung natürlich ganz anders, als wenn man das extern von Scratch in einen VDR einbaut. Solche Fehler können wir nur finden, wenn wir von möglichst vielen Leuten Feedback bekommen.
Quote
Das sieht doch so aus, als ob IGOR nicht richtig läuft oder der VDR nicht findet, wo er läuft. Ist IGOR korrekt gestartet und die IGOR Variable der Shell richtig gesetzt?
export IGOR=localhost:11072
Erst mal Danke für die Infos,
das erste Core-File habe ich versendet. Gibts es eine bestimmte Ziel-EMail, bzw. wieviele Core's werden denn benötigt? (Ich will ja nicht, dass hier Email-Konten überlaufen, immerhin sind es selbst mit bzip2 mehrere MBs.)
Daneben noch folgendes:
Wenn ich der Plugin DVDRVIDTRANS compilieren erhalten ich ein paar Warnungen:
...
dh_testdir
/usr/bin/make all DVBDIR=/usr VDRDIR=/usr/include/vdrdevel LIBDIR=.
make[1]: Entering directory `/usr/src/vdrdevel-plugin-dvdrvidtrans-0.1.0'
make[1]: Leaving directory `/usr/src/vdrdevel-plugin-dvdrvidtrans-0.1.0'
make[1]: Entering directory `/usr/src/vdrdevel-plugin-dvdrvidtrans-0.1.0'
g++ -fPIC -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvdrvidtrans"' -I/usr/include/vdrdevel -I/usr/include dvdrvidtrans.c
dvdrvidtrans.c: In Memberfunktion »int
vdrrecordings::done(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >, int)«:
dvdrvidtrans.c:748: Warnung: `cRecording*rec' might be used uninitialized in
this function
dvdrvidtrans.c: In Memberfunktion »int vdrrecordings::startsending(unsigned
int, unsigned int, unsigned int, fileandpos*)«:
dvdrvidtrans.c:1104: Warnung: `int vidfp' might be used uninitialized in this
function
dvdrvidtrans.c: In Memberfunktion »int
vdrrecordings::cut(std::basic_string<char, std::char_traits<char>,
std::allocator<char> >)«:
dvdrvidtrans.c:1249: Warnung: `uint32_t wheretocut' might be used uninitialized
in this function
dvdrvidtrans.c: In Memberfunktion »void
vdrrecordings::processsnippetlist(std::basic_string<char,
std::char_traits<char>, std::allocator<char> >)«:
dvdrvidtrans.c:1403: Warnung: unused variable `char currentsnippet[4096]'
dvdrvidtrans.c: In Memberfunktion »virtual void
serverthread::csubserverthread::Action()«:
dvdrvidtrans.c:1562: Warnung: `ssize_t justsent' might be used uninitialized in
this function
g++ -fPIC -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvdrvidtrans"' -I/usr/include/vdrdevel -I/usr/include parsefile.c
g++ -fPIC -O2 -Wall -Woverloaded-virtual -c -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"dvdrvidtrans"' -I/usr/include/vdrdevel -I/usr/include findhash.c
g++ -fPIC -O2 -Wall -Woverloaded-virtual -shared dvdrvidtrans.o parsefile.o findhash.o -ligor -o libvdr-dvdrvidtrans.so
make[1]: Leaving directory `/usr/src/vdrdevel-plugin-dvdrvidtrans-0.1.0'
touch build-stamp
debian/rules binary
dh_testdir
dh_testroot
dh_clean -k
...
Display More
Evtl. helfen die noch bei der Fehlersuche. Das ganze läuft ansonsten durch, und läst sich auch installieren. Nachvollziebar kann ich den Absturz erzeugen, indem ich in die Einstellungen des Plugins DVDRVIDTRANS gehe und versuche was zu verändern, nach ein paar Sekunden wars das. Evtl. müssen hier auch Vorgaben rein für Zielverzeichnis usw. was da sonst noch zu sehen ist. Wo speichert das Plugin denn seine Daten in einem eigenem Conf oder in der Standard Setup.conf des VDR? Und wie sähen denn Standard-Einträge aus?
Gruß
KK
Hi,
bei mir läuft´s auch unter SuSE 9.2 - wobei ich allerdings anscheinend noch nichts empfange. Liegt wohl daran, dass ich beim vidtrans-Plugins noch entsprechende Einstellungen vornehmen muss. Als Netzwerk-Newbie: Was trage ich als NIC ein, wenn ich eine dynamische IP-Adresse habe? Meine dyndns-www-Adresse? Feste IP habe ich ja nicht... Kann er das nicht à la ifconfig auslesen, oder habe ich grundlegend etwas falsch verstanden?
Zum Absturz-Problem: Dass tritt immer dann zuverlässig auf, wenn entweder igor noch nicht läuft oder igor die Verbindung verloren hat und damit gestoppt wird.
Habe Eure Settings 1:1 übernommen, und meist connected sich igor erst nach dem 3. Versuch und verliert dann immer mal wieder die Verbindung - danach restartet VDR.
Jörg
QuoteOriginal von JK1974
Was trage ich als NIC ein, wenn ich eine dynamische IP-Adresse habe? Meine dyndns-www-Adresse? Feste IP habe ich ja nicht...
Würde mich auch mal interessieren. IMHO ist "You must set your external NIC's IP address in the config menu of the plugin" in der Readme zu dvdrvidtrans nicht so ganz eindeutig. Ist da nun die vom Provider vergebene IP-Adresse im öffentlichen Netz gemeint oder die IP-Adresse im privaten Netz, über den der VDR-Rechner ins Internet kann?
Ich habe jetzt im Setup von dvdrvidtrans "tcp://myWAN-IP:11073" angegeben. Daraufhin rödelte VDR einige Minuten mit CPU-Last >90% auf der Festplatte herum, um anschließend mit der Fehlermeldung
*** glibc detected *** free(): invalid pointer: 0x0876960c ***
auszusteigen.
Daraufhin habe ich die Erstellung der Core-Dateien aktiviert. Beim zweiten Versuch die gleiche Aktivität von VDR, dann aber die Fehlermeldung
threads.cpp:371: virtual void cTimerSearch::Action(): Zusicherung »t%60 == 0« nicht erfüllt.
Zusätzlich habe ich jetzt zwei Dateien core.8018 und core.8072 mit je rund 36.000 kB (gezippt etwas unter 2 MB). Was soll ich damit jetzt machen?
QuoteOriginal von Habib
...
Dec 3 13:19:40 multimedia vdr[11826]: dvdrepg plugin: failed to bind the IGOR socket (this socket is not connected)
...
sicher dass igor gestartet ist und dass das Plugin davon ueber die Umgebungsvariable IGOR=... darueber informiert war?
Quote
Mir fällt auf, dass er manchmal, 2-3 reboots braucht, bis VDR gestartet bleibt... bis man irgendwie mittels "Sched" iregndwie den VDR wieder abschiesst. Bei den anschliessenden rebootversuchen wird in die Syslog dieser Eintrag geschrieben:CodeDec 3 13:28:37 multimedia vdr[17842]: dvdrepg plugin: failed to bind the IGOR socket (this socket is not connected)
Taucht dieser nicht auf, dann bleibt der VDR auch zunächst wieder an...
Sorry, ich bin mir nicht sicher, ob ich das verstanden habe.
Quote
Jetzt die nächste Frage. Was mach ich nun damit??? Welche IP muss in die Plugin-Einstellungen von dvdrtrans bei "Transport adress" rein?
Deine externe. Die Portnummer ist hier frei waehlbar und wird benutzt, um direkt zwischen den vidtrans-plugins zu kommunizieren. Ueber IGOR werden nur meta-Daten ausgetauscht, die Videodaten selbst laufen direkt von vidtrans zu vidtrans.
Quote
Grmpf, immer noch während ich diese Zeilen schreibe, passiert doch tatsächlich, dass VDR einfach so abstürzt...
In solchen Faellen bitte core-files oder backtraces an mich schicken.
Kendy
QuoteOriginal von kk234
Ok, geht habe eine Core-File....
Immer her damit!
Kendy
QuoteOriginal von kk234
das erste Core-File habe ich versendet. Gibts es eine bestimmte Ziel-EMail, bzw. wieviele Core's werden denn benötigt?
Im Zweifel an mich: kutzner@ira.uka.de
Quote
Wenn ich der Plugin DVDRVIDTRANS compilieren erhalten ich ein paar Warnungen:
Dankeschoen, ich leite die an Stefan weiter.
Kendy
QuoteOriginal von JK1974
Als Netzwerk-Newbie: Was trage ich als NIC ein, wenn ich eine dynamische IP-Adresse habe? Meine dyndns-www-Adresse?
Wenn Du eine dyndns-Adresse hast, dann am besten die. Wenn nicht, tut es auch die IP-Adresse direkt.
Quote
Kann er das nicht à la ifconfig auslesen
Nein, das mag zwar in Deinem speziellen Fall gehen, aber im Allgemeinen funktioniert das leider nicht. Ich sag nur: mehrere Interfaces, NAT, tunneling, private networks und so weiter..
Quote
igor die Verbindung verloren hat und damit gestoppt wird.
Hmm? Auch dann sollte IGOR weiterlaufen. Falls Du die Ausgaben noch hast, bitte schicke mir diese.
Danke,
Kendy
QuoteOriginal von Sledge Hammer
IMHO ist "You must set your external NIC's IP address in the config menu of the plugin" in der Readme zu dvdrvidtrans nicht so ganz eindeutig. Ist da nun die vom Provider vergebene IP-Adresse im öffentlichen Netz gemeint oder die IP-Adresse im privaten Netz, über den der VDR-Rechner ins Internet kann?
Damit ist die Adresse gemeint, auf die sich andere vidtrans-plugins verbinden koennen. Also bei dynamischen Adressen vom Provider genau diese. Bei NAT die externe. Wenn ein internes Netz aufgebaut werden soll, dann die interne Adresse.
Zweck dieser Config-Variablen: Diese Adresse wird an andere vidtrans-plugins weitergegeben, damit sich diese anderen vidtrans-plugins an dieser Adresse Videoschnipsel abholen koennen.
Wie koennte man das im README kurz und buendig formulieren, damit es besser verstaendlich wird?
Kendy
QuoteOriginal von Sledge Hammer
Zusätzlich habe ich jetzt zwei Dateien core.8018 und core.8072 mit je rund 36.000 kB (gezippt etwas unter 2 MB). Was soll ich damit jetzt machen?
Mir zukommen lassen. Entweder per Email an kutzner@ira.uka.de oder irgendwo oeffentlich hinstellen und mir die URL schicken.
Danke fuer die Muehe!
Kendy
Hallo,
OT:
QuoteOriginal von jarny
Die gleichen Probleme musste doch auch damals schon das ShareMarks-Plugin zum Austauschen von Schnittmarken-Positionen lösen (was ist eigentlich daraus geworden?)
Um deine frage zu was ist aus sharemarks geworden :
Sharemarks funktioniert super aber es wird leider nicht von sehr vielen genutzt.
Es ist ja sogar möglich das ganze anonym zu nutzen und zum zwecke der automatisierung habe ich es in mein AutoCutter eingebaut - siehe signatur.
In der hoffnung das sharemarks in zukunft mehr genutzt wird ...
On-topic :
Interessantes Projekt
Gruß
Viking
Wobei wir bei einer Frage wären:
Werden eventuell vorhandene Schnittmarken bei VIDEGOR mit übertragen ?
QuoteOriginal von kendykutzner
sicher dass igor gestartet ist und dass das Plugin davon ueber die Umgebungsvariable IGOR=... darueber informiert war?
Ja, da bin ich mir ganz sicher...
Quote
Sorry, ich bin mir nicht sicher, ob ich das verstanden habe.
Also ich starte Igor, und dann VDR mittels meiner runvdr. Jetzt ist es so, dass nahezu in 100% aller Fälle, der VDR restartet, weil obiger Fehler auftaucht. Nach 2-3 Versuchen (es taucht immer der Fehler auf) kommt der Fehler nicht mehr, und VDR bleibt an.
Jetzt schau ich in die OSD Menüs der Plugins und spziell beim Sched-Plugin stürzt der VDR gerne ab...
Quote
Deine externe. Die Portnummer ist hier frei waehlbar und wird benutzt, um direkt zwischen den vidtrans-plugins zu kommunizieren. Ueber IGOR werden nur meta-Daten ausgetauscht, die Videodaten selbst laufen direkt von vidtrans zu vidtrans.
OK, also dyndns Adresse...
QuoteIn solchen Faellen bitte core-files oder backtraces an mich schicken.
Kendy
Ich warte mal ab, da ich vermute, dass die anderen den gleichen Fehler habe und ich mich mit dem Core-File-Erstellen noch nicht auseinander gesetzt habe...
QuoteOriginal von mbruehl
Werden eventuell vorhandene Schnittmarken bei VIDEGOR mit übertragen ?
Nein. Aber ich sehe kein Problem das zu tun. (Wir hatten einfach nicht genügend Zeit, das zu programmieren.) IGOR ist ein System, um beliebige Inhalte zu verteilen, egal ob EPG-Daten oder Infos darüber, wer welches Videoschnipsel noch auf Platte hat, oder eben Schnittmarken. Im Detail wird man sich überlegen müssen, wie man die Schnittmarken kombiniert, wenn zu einem Film von mehreren Leuten Marken angeboten werden.
Don’t have an account yet? Register yourself now and be a part of our community!