Posts by kls

    Code
    1. Aug 6 10:15:15 VDR-2004-Dev vdr: [283179] 283179 - R - - - - - - - - L
    2. Aug 6 10:15:15 VDR-2004-Dev vdr: [283179] 283179 R * - - - - - - - - L

    You are trying to lock the timers while holding a lock on the channels.

    To implicitly avoid deadlocks when locking more than one of the global lists of VDR at the same time, make sure you always lock Timers, Channels, Recordings and Schedules in this sequence. So you need to give up the lock on the channels, then lock the timers, and, if necessary, lock the channels again.

    Can you please add these lines and post the results?

    I tried to reproduce this, but everything worked as expected:

    kfb77 I tried that and all events were cleared just as expected.

    Are you using plain vanilla VDR 2.5.6 without any patches and with only the minimum number of plugins necessary?


    What I did see while testing this is that if "CLRE <number>" is issued while the Schedule menu of that channel is open, the list isn't immediately cleared. Closing and reopening it shows that all events are gone (including those at and after the timer). I'll fix this.

    Let's assume you're using CLRE w/o any additional parameters, which executes this code in cSVDRPServer::CmdCLRE():

    Code
    1. LOCK_TIMERS_WRITE;
    2. LOCK_SCHEDULES_WRITE;
    3. for (cTimer *Timer = Timers->First(); Timer; Timer = Timers->Next(Timer))
    4. Timer->SetEvent(NULL); // processing all timers here (local *and* remote)
    5. for (cSchedule *Schedule = Schedules->First(); Schedule; Schedule = Schedules->Next
    6. Schedule->Cleanup(INT_MAX);
    7. cEitFilter::SetDisableUntil(time(NULL) + EITDISABLETIME);
    8. Reply(250, "EPG data cleared");

    Here it sets the event of all timers to NULL and calls Cleanup() for all schedules with a time (INT_MAX) that is way in the future.

    So now all schedules should be empty.

    In cSchedule::Cleanup(time_t Time) we have

    Code
    1. cEvent *Event;
    2. while ((Event = events.First()) != NULL) {
    3. if (Event->HasTimer()) dsyslog("event has timer");//XXX
    4. if (!Event->HasTimer() && Event->EndTime() + EPG_LINGER_TIME < Time)
    5. DelEvent(Event);
    6. else
    7. break;
    8. }

    See the line marked with XXX. Add that line to your file and recompile.

    If you issue the CLRE command and get that log message, the event's 'numTimers' member apparently got out of sync and we'll need to further investigate there.

    Ich würde an deiner Stelle einfach die Header-Files von einer früheren Kernelversion nehmen.

    "upstream in vdr" wird sich da nichts tun, denn das ist Treiber- bzw. Kernelsache. Ausserdem sind FF-Karten (leider) "legacy" und neu gar nicht mehr zu bekommen. Die Onboard-Grafik auf einem modernen Intel-Board z.B. ist deutlich flexibler und weniger problematisch (keine Firmware).

    Zu den FF-Karten kann ich nichts sagen, weil ich keine mehr habe.


    Poste doch mal die channels.conf-Zeile eines solchen Kanals.

    schon das probiert? https://github.com/andyrew/piHDR

    Danke, das sieht schon mal nicht schlecht aus, damit werden die einzelnen Bilder in Abständen von unter 2 Sekunden aufgenommen. Allerdings stimmen die Farben hinten und vorne nicht, aber als Starthilfe zum Experimentieren schon mal nicht schlecht.


    Der im Script enthaltene Aufruf von 'hdrgen' benutzt ein '../picam.rsp', welches leider nicht dabei ist und auch nicht beschrieben ist, wie man das erstellt. Ein Aufruf ohne dieses führt zu


    phdrimg.cpp@564>data: ldr_01.jpg: needs exposure calibration

    hdrgenmain.cpp@187>data: Failure generating HDR image

    Von welcher Quelle stammt denn das Plugin, das du verwendest?

    Und poste bitte mal die channels.conf-Zeile für den betreffenden Kanal, dann schau ich mal, ob ich das hier reproduzieren kann.

    Ich habe jetzt mal einen vergleichbaren Timer auf Sat gesetzt:


    1:S19.2E-1-1021-28332:MTWTFSS:0000:2359:50:99:{@Quarks| }Quarks~{>}:


    aber damit wird nur ein einzelner Timer generiert.


    Woher kommen denn die Events für IPTV?

    Kann es sein, dass der Mechanismus, der die Events generiert, da was durcheinanderbringt?