stampTV's Plugins Notice
©2003-2004, Bruno G. Albuquerque, bga@bug-br.org.br
©2001-2002, Georges-Edouard Berenger, berenger@francenet.fr
Hamburg, October 7th, 2001.
Was sind stampTV Plugins?
stampTV kann nun mehr als nur Fernsehbilder darstellen, es kann einige Effekte auf die Bilder in Echtzeit anwenden.
Um eine Abhängigkeit zu bestimten Versionen von stampTV zu vermeiden, diese Effekte sind in Plugins untergebracht die Sie in ausreichend aktuelle Versionen von stampTV einsetzen können. Auf der einen Seite können nun Entwickler Effekte entwickeln, und Anwender können von all diesen zur gleichen Zeit proffitieren trotz daß die Entwickler nicht miteinander Arbeiteten und vermutlich den Quellcode für Ihre Effekte geheim halten.
Plugin Unterstützung ist auf eine Weise eingebaut worden, daß es Entwicklern erlaubt die Unterstützung für stampTV Plugins ganz einfach in ihre eigenen Anwendungen einzubinden. Sie können stampTV als Refferenz Implementation heranziehen, und die Trennung zwischen allgemeiner Plugin Aktivität und stampTV`s Spezifischer Implementierung ist so sauber wie möglich gehalten worden.
Entwickler sollten auch folgendes lesen: Developers' documentation.
Eigenschaften
- Unterstützung für eine unbegrenzte Zahl an Plugins, obwohl und selbstredend, falls Ihre Plugins zu CPU intensiv sind werden Bilder ausgelassen.
- Plugins können die unterstützte Farbtiefe angeben, mit der möglichkeit diese zu ändern.
- Plugins können informieren ob und wie sie in den Overlay schreiben können (Aus Performance Gründen).
- Eine einzelne Plugin Binärdatei kann mehrere verschiedene Effekte beinhalten. Das ermöglicht die einfache Unterstützung von Plugins die andere Plugin Standards überschneiden.
- Jeder Effekt kann individuell mit seinen eigenen Einstellungs Werkzeugen konfiguriert werden.
- Plugins können ihren Effekt direkt auf das Bitmap anwenden was eine Menge Speicher und CPU Zeit sparen kann wenn dieser Effekt auf einen begrenzten Bereich des Bildes angewandt wird.
- Plugins können "BView drawing" Funktionalitäten benutzen, (Soweit der gewählte Farbmodus dieses unterstütz!).
- Die Optimierung ist geschaffen um so wenig Bitmaps als möglich zu verwenden.
- Ein Overlay wird verwendet werden falls die Video Karte einen Modus unterstützt welchers das letzte Plugin für Overlays unterstützt. Das ermöglicht es, daß ein Overlay verwendet wird wenn möglich, aber nur wenn der Plugin speziell angibt daß es dies unterstützt. (Daß in das Overlay geschrieben werden kann setzt vorraus daß der Code sorgsam geschrieben wurde ansonsten wird die Leistung dramatisch darunter leiden.)
Verfügbare Plugins
Es sollte klar sein daß die derzeitigen Plugins hauptsächlich zum Zwecke von Tests und Entwicklung eestellt wurden. Der Autor ist kein Künstler und hoffentlich tragen andere Entwickler mit Code und/oder Plugins dazu bei!
- Mosaic
Dieses Plugin erzeugt einen Mosaique aus Bildern von verschiedenen Kanälen so wie sie geskant wurden. Es können Eingestellt werden: die Anzahl und Größe der Bilder, die Geschwindigkeit der Wiederauffrischung, wie und ob Kanäle geskannt werden und ob der Name des Programms dargestellt werden soll.
- Drawer
Sehr simpler Plugin welcher "BView drawing APIs" um in die Bitmaps zu schreiben. Es schreibt einfach einen simplen Text auf das Bitmap. Dieses Plugin demonstriert auch wie man einen Konfigurationsfenster für Plugins macht.
- Horizontal Flip (Waagerechtes Spiegeln)
Gibt das Bild Spiegelverkehrt wieder.
- Pass Filter
Erzeugt einige Unterschiede zwischen angrenzenden PixelnDoes some kind of difference between adjacent pixels. (Spielt mit dem Quellcode!)
- Overlayer
"Unsichtbarer" Effekt, der ermöglichen soll, daß der Ausgang auf den Schirm über ein Overlay anstelle eines "blit" gebracht wird. Das heißt, anstatt ein DrawBitmap zu erstellen, wird der Inhalt in den Puffer eines Overlay Bitmaps kopiert und somit direkt auf den Bildschirm dargestellt.
- Deinterlacer
"Entschachtelt" das Bild, um jene häßliche horizontale Linien Effekte zu entfernen, welche sichtbar sind, wenn das Bild sich stark ändert. Der Algorithmus ist sehr einfach (Linien Verdopplung) aber schnell und sollte durch etwas bessers ersetzt werden. Freiwillige sind willkommen! Nur sinnvoll für höhere Auflösungen.
Bekannte Fehler & Probleme
- Die Plugineigenschaften sollten sehr sorgfältig eingestellt werden, sonst könnten unerwartete verhaltensweisen auftreten, besonders mit dem Overlay u. dem Prozeß in den Platzeigenschaften.
- Frame grabbing wird nicht ausgeführt bevor die Effektverarbeitung erfolgt ist.
Noch zu erledigen
Das sind Projekte in Arbeit. Hier ist was hinzugefugt werden könnte/sollte:
- Flexiblere Aktivierung/Inaktivierung/Anordnung der Plugins,
- Ereignisse Plugin "Maschine" wissen lassen daß der Kanal gewechselt wurde, eine Voreinstellung umbenennt etc.
- "Haken" hinzufügen, so daß Plugins die am Overlay agieren auch selbst an der Overlay Maske wirken können, um Effekte auf dem Overlay direkt zu legen.
- Unterstützung für mehr Host Funktionalitäten, wie die Steuerung des Audioniveaus- und/oder der Bildqualität
- So viele Effekte wie möglich einfügen!
StampTV's Video Plugin Lizens
© 2002-2003, Bruno G. Albuquerque, All Rights Reserved.
© 2001-2002, Georges-Edouard Berenger, All Rights Reserved.
- Die Weitergabe und der Gebrauch in der Quell und/oder in der binären Form, mit oder ohne Ă„nderung, wird gestattet, vorausgesetzt daß die folgenden Bedingungen erfüllt werden:
- Weitergegebene Versionen des Quellenprogramms müssen beinhalten: den folgenden Urheberrechts Vermerk, diese Liste mit Bedingungen und die folgende Verzichtserklärung.
- Die Weitergabe in binärer Form muß den folgende Urheberrecht Vermerk, diese Liste von Bedingungen und die folgende Verzichtserklärung und/oder anderes Material daß mit der Distribution weitergegeben wird.
- Der Name des Autors darf nicht zur Einführung oder Vermarktung von Produkten, die aus dieser Software abgeleitet wurden, ohne ausdrückliche Schriftliche Genehmigung verwendet werden.
DIESE SOFTWARE WIRD VOM AUTOR "ALS IST" ZUR VERFÜGUNG GESTELLT UND JEDWELCHE AUSDRÜCKLICHE ODER ANGEDEUTETE GARANTIE, EINSCHLIESSLICH, ABER NICHT BEGRENZT AUF DIE EINGESCHLOSSENEN GARANTIENÂ VON TITEL, UNVERSEHRTHEIT, MARKTGÄNGIGKEIT UND EIGNUNG ZU EINEM BESTIMMTEN ZWECK, WIRD AUSGESCHLOSSEN. IN KEINEM FALL IST DER AUTOR FÜR IRGENDWELCHE DIREKTEN, INDIREKTEN, BEILÄUFIGEN, SPEZIELLEN, BEISPIELHAFTEN ODER FOLGESCHÄDEN VERANTWORTLICH (EINSCHLIESSLICH, ABER NICHT DARAUF BEGRENZT DIE BESCHAFFUNG VON ERSATZ WAREN ODER DIENSTLEISTUNGEN, NUTZUNGSVERLUST, DATENVERLUST, PROFITEINBUßEN ODER GESCHÄFTAUSFÄLLE) WIE AUCH IMMER VERURSACHT UND AUF IRGENDEINER VERBINDLICHKEITS THEORIE, OB IM VERTRAG, IN DER DIREKTEN VERBINDLICHKEIT ODER IN DER UNERLAUBTEN HANDLUNG (EINSCHLIESSLICH NACHLÄSSIGKEIT ODER ANDERS) ENTSTANDEN AUF IRGENDEINER WEISE DURCH DIESE SOFTWARE, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Ich würde mich freuen über Ihre Bugreports, Probleme, Kommentare, Wünsche, Vorschläge zu hören...
Sie können mich direkt anschreiben : Bruno G. Albuquerque.
stampTV wird mit dem Quellcode ausgeliefert damit jeder damit experimentieren kann. Wenn Sie mit irgendeiner Verbesserung oder Bugfix beitragen wollen, bitte lassen Sie es uns wissen! Wir werden prüfen ob es für die offizielle Distribution Sinnvoll ist.
Bitte, bevor Sie eine größere Arbeit an stampTVs Quellcode verrichten, warum hinterlassen Sie uns nicht einen Hinweis damit Sie sicher sind, daß Aufwand nicht doppelt ist? Das verhindert Frustrationen für Jedermann! Jeder hasst es, wenn er feststellen muß, daß was er gerade geschrieben hat bereits woanderst im Einsatz ist...
Versionsverlauf
v1.0 (October 7th 2001)
|