Beiträge von NicoWallmeier

    Bei dem im Wireshark-Log dargestellten Fall handelt es sich im einen Container der Aufnahmen enthält (von der Serie "Kleine Prinzessin"). Ich habe noch einen weiteren Ordner, der ebenfalls nicht korrekt angezeigt wird. Alle anderen werden korrekt angezeigt...


    Ich habe probiert, die Ursache zu finden und kann noch feststellen, dass cContentDirectory::Browse UPNP_E_SUCCESS für diesen Container zurückliefert...

    Wie ich schon in diesem Thread geschrieben habe, werden mir zwei Aufnahme-Ordner nur leer angezeigt. Ein Sniff der Kommunikation hat dabei für einen der beiden Ordner das folgende geliefert:



    methodus hast Du eine Idee, was die Ursache dafür ist?

    In der Datei server/contentDirectory.cpp
    Zeile 318:

    Code
    esyslog("UPnP\tError while browsing object ID '%s': %s (%d)", browseRequest.objectID, request->ErrStr, request->ErrCode);


    muss es heißen

    Code
    esyslog("UPnP\tError while browsing object ID '%s': %s (%d)", browseRequest.objectID.c_str(), request->ErrStr, request->ErrCode);


    Genauso in media/mediaManager.cpp
    Zeile 457:

    Code
    dsyslog("Container %s is empty.", request.objectID);


    muss es heißen

    Code
    dsyslog("Container %s is empty.", request.objectID.c_str());


    Ansonsten stürzt der vdr ab, wenn er auf diese Zeilen trifft...

    Im Anhang befinden sich zwei Diffs zum aktuellen upnp-plugin:


    1. recordingTitle.diff: Der angezeigte Titel für eine Aufnahme ist konfigurierbar. Die eingebauten Platzhalter sind in recordingTitle.conf aufgeführt. Der Diff ist minimal erweitert zu der gestern geposteten Version.


    2. recordingSort.diff: Wird keine Sortierung vom DLNA-Client vorgegeben, wird nach dem Titel aufsteigend sortiert

    Ich werde mal schauen, dass ich heute Abend etwas bastel - mir schwebt vor, den Titel konfigurierbar zu machen - ähnlich dem Kanaltitel...


    In den Attachments befindet sich ein Patch für den aktuelle upnp-Stand, der den Titel bei den Recordings konfigurierbar macht. Die Konfigdatei gehört ins gleiche Verzeichnis wie die Datei channelTitle.conf. Ist keine Konfigurationsdatei vorhanden, verhält es sich so, wie methodus es gebaut hat.


    Wenn mir jemand eine sinnvolle Lösung unterbreiten kann, dann bin ich gern bereit das umzusetzen, aber wie gesagt: die einen wünschen sich das Aufnahmedatum, die anderen nur die Episode, wieder andere wollen vielleicht den Kanalnamen davor stehen haben. Je individueller, desto weniger Plug-and-Play.


    Ich werde mal schauen, dass ich heute Abend etwas bastel - mir schwebt vor, den Titel konfigurierbar zu machen - ähnlich dem Kanaltitel...

    Das sieht schon sehr gut aus :]


    Um kürzere Titel zu bekommen, würde ich es begrüßen, wenn im Titel der Ordner nicht mehr mit enthalten ist (also ab dem Doppelpunkt)... Zur Verdeutlichung was ich meine, habe ich einen Screenshot angehängt.


    Ich habe noch zwei Ordner bei den Aufnahmen, die nicht browseable sind... Brauchst Du dafür wieder die metadata.db, um es Dir anschauen zu können?

    Aus meiner Sicht sollte nicht der Title für die Anzeige benutzt werden sondern der Name der Aufnahme - so macht es der VDR selber auch und den Namen kann einfach z.B. mit dem Live-Plugin editieren... Ich habe auch Serien aufgenommen, bei denen der Episodenname weder im Title noch in der ShortDescription vermerkt ist.


    Den Patch werde ich direkt mal testen...


    Danke für Deine Bemühungen!
    Nico

    Was zeigt der VDR in diesem Verzeichnis an?


    VDR zeigt es korrekt an - siehe angehängten Screenshot...


    Zur Sortierung nochmal: hier stellt sich immer die Frage "Was ist korrekt?". Wenn sich ein Server "gegen die Regeln" verhält, aber ein erwartbares Ergebnis zeigt, ist das wirklich korrekt? Anyway. Ich kenne das Problem. Wenn ich gerade keinen Bug zu fixen habe, versuch ich das als "Option" einzubauen.


    Ich hatte die Deine Aussage so verstanden, dass DLNA Clients eine bestimme Sortierung anfordern können. Ich tippe darauf, dass sowohl die WD TV Live als auch mein Philips Fernseher keine Sortierung anfordern und in diesem Fall, dass keine Sortierung explizit angefordert wird, wäre es schön, wenn das upnp-Plugin es alphabetisch sortieren würde.


    Schönen Abend noch!
    Nico

    Hi methodus!


    Zur Sortierung: könnte man, wäre aber am Ziel vorbei. Wenn keine Sortierung angegeben ist, ist es nur konsequent, die Daten in der Reihenfolge aufzunehmen, wie sie das System vorgibt. Wenn dieses Feature häufiger angefragt wird, nehme ich es jedoch gerne auf. Mit dem VLC kann man übrigens Sortieren. Ob dazu jeweils eine Browse-Anfrage mit Sort-Request gestellt wird, hab ich jetzt nicht geprüft.


    Das der VLC sortieren kann, hab ich bereits gefunden. Allerdings habe ich diese Funktionalität bei der WD TV Live bzw. einem Philips Fernseher nicht auf Anhieb gefunden und habe die Aufnahmen vollkommen durcheinander gewürfelt angezeigt bekommen. Benutze ich statt dem upnp-Plugin minidlna werden die Aufnahmen korrekt sortiert angezeigt.


    Zu den Aufnahmen: kannst du mir mal den Verzeichnisbaum dieser Videos, also wie sie im Dateisystem liegen (inkl. der XXXX.rec-Verzeichnisse), schreiben. Werden den die Videos korrekt abgespielt oder handelt es sich bei jeder dieser 4 Dateien um den gleichen Film?
    Hast du das Problem auch bei anderen Aufnahmen?


    Es sind 4 verschiedene Folgen der Serie und dieses Problem habe ich auch bei anderen Aufnahmen - ich habe nur exemplarisch diese genommen...


    Reicht Dir das so?


    Gruß,
    Nico

    Ich habe das Plugin jetzt auch bei mir installiert und dabei sind mir noch ein paar Dinge aufgefallen...



    In der Klasse RecProvider kann man bei der Funktion GetContainerEntries die Performance optimieren, wenn man die folgende Zeile

    Code
    list.push_back(fs);


    durch

    Code
    bool contains = std::find(list.begin(), list.end(), fs) != list.end();
    if (!contains)
      list.push_back(fs);


    ersetzt. Dadurch wird ein Order nicht n-mal in die Liste eingetragen, sondern nur einmal. Somit wird der Inhalt dieses Ordners auch nur einmal gescannt statt n-mal.




    Thema Sortierung der Aufnahmen:

    Die Sortierung ist Teil der UPnP-Browse-Requests. Wenn der Client ein Sort anfordert, dann liefere ich das Ergebnis exakt so, wie es angefordert ist. Alles andere wäre idiotisch, da ich sonst diese "Funktion" aushebeln müsste und die Clients nicht mehr selbst bestimmen könnten, wie sortiert werden soll.


    Wäre es aber möglich, wenn der Client keine Sortierung anfordert, die Liste alphabetisch zu sortieren (erst die Ordner alphabetisch und dann die Aufnahmen im aktuellen Ordner alphabetisch)?


    Weiterhin passen die Namen der Aufnahmen nicht mit der Anzeige im VDR selber überein, z.B.:
    die vier Aufnahmen im Verzeichnis /video/TROTRO:
    TROTRO_fährt_in_die_Ferien
    TROTRO_träumt_von_Afrika
    TROTROS_neuer_Drachen
    TROTROS_neuer_Schulranzen
    werden im Container TROTRO angezeigt als:
    TROTRO
    TROTRO
    TROTRO
    TROTRO
    Siehe dazu auch angehängten Screenshot.


    In dem Screenshot sieht man weiterhin, dass VLC die Laufzeit anzeigen würde - der angezeigte Wert passt aber nicht...


    Kann man vielleicht auch das Datum der Aufnahme mit anzeigen lassen?


    Noch einen schönen Abend,
    Nico

    Zitat

    Original von nox
    Funktioniert Spulen/Pausieren auf dem Philips garnicht oder nur bei manchen Aufnahmen nicht richtig?


    Ich muss gestehen, ich hatte es nur mit einer Aufnahme probiert - werde ich noch genauer testen...


    Zitat

    Original von nox
    Hast du die libupnp patches von der Plugin-Homepage benutzt, vielleicht braucht der Philips die ja?


    Die sind installiert.


    Zitat

    Original von nox
    Und tut Spulen/Pausieren bei dir ueberhaupt mit irgendeinem anderen upnp server? (mediatomb und was es da sonst noch so gibt...)


    Ok - werde ich auch noch testen...


    Danke schon mal!
    Nico

    Zitat

    Original von nox
    Das mit der Laenge duerfte das seek-Problem sein fuer das ich weiter oben nen patch geposted (ok, gelinked) hab. (passiert besonders bei Aufnahmen > 1 (2?) GB, bzw solchen die vdr in mehrere files gesplitted hat.)


    Überhaupt kannst du von meinen Patches http://people.freebsd.org/~nox/dvb/vdr-plugin-upnp-patches/ ausser patch-Makefile.txt, patch-fromgit.txt (der ist ja schon im git) und vielleicht patch-livetv-channelname.txt sicher alle gebrauchen, nur patch-freebsd.txt wird bei dir nix tun, darf aber trozdem gern rein. :) Naja und patch-libupnp1.6.9.txt ist natuerlich auch nur sinnvoll wenn du auch die libupnp updatest.


    Dank Deiner Patches kann ich jetzt mit einem Philips Fernseher auf den vdr zugreifen - das einzige Manko ist noch, dass Spulen bzw. Pausieren noch nicht funktioniert. Ich habe alle Patches außer dem fürs Makefile bzw. BSD installiert...


    Danke für die tollen Patche!
    Nico

    Hallo,


    Zitat

    Original von Schnulli
    wird die generell nicht mehr erkannt? oder nur mal kurz abgezogen?
    ist die LED grün oder rot?


    ist jetzt bei zwei Bootvorgängen nicht mehr erkannt worden. Die Karte hat eine LED - ist mir noch nie aufgefallen... Muss ich mal schauen, wenn ich wieder zuhause bin.


    Ich habe mir jetzt erstmal das Kernelmodul budget-av gepacht, damit es auch mit dieser Subsystem-ID zurecht und damit scheint die Karte zu laufen...


    Noch einen schönen Abend,
    Nico

    Hallo!


    Meine SATELCO EasyWatch PCI DVB-C wird nicht mehr korrekt erkannt. lspci gibt folgendes aus:


    Wie man erkennen kann, passt das Subsystem nicht - woran kann das liegen? Die KNC One DVB-C Karte wird einwandfrei erkannt...


    Danke schon mal!
    Nico

    Hallo!


    Ich wollte die neue Version auch gerne testen - allerdings scheitere ich schon beim Compilieren:

    Code
    g++ -g -O2 -Wall -Woverloaded-virtual -Wno-parentheses -fPIC -c -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -DUSE_CUTTIME -DUSE_JUMPPLAY -DUSE_LIEMIEXT -DUSE_MAINMENUHOOKS -DUSE_PLUGINMISSING -DUSE_SORTRECORDS -DUSE_WAREAGLEICON -D_GNU_SOURCE -I/src/vdr-1.7.14/include -I.. -o extern.o extern.c
    extern.c: In constructor `Streamdev::cTSExt::cTSExt(cRingBufferLinear*, const cServerConnection*, const cChannel*, const int*, const int*)':
    extern.c:154: Fehler: »const class std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<const std::string, std::string> > >« hat kein Element namens »at«


    Liegt es an meiner alten gcc-Installation (3.4.6)?


    Gruß,
    Nico