AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C++ C++ Delphi Übersetzung 3DYDYoutube Filter
Thema durchsuchen
Ansicht
Themen-Optionen

C++ Delphi Übersetzung 3DYDYoutube Filter

Ein Thema von EWeiss · begonnen am 2. Okt 2018 · letzter Beitrag vom 20. Nov 2020
Antwort Antwort
venice2
(Gast)

n/a Beiträge
 
#1

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 10:30
... das hatte ich mir schon gedacht, ABER: Wie sag ich's dem Filter ?
Bislang hatte ich den LAV-Splitter in Beutzung, der ja ansonsten auch problemlos läuft.
Als Sorce bei Zattoo kann der jedoch nur HLS-Streams und - was wesentlich ist:
Beim laden / umschalten von Programmen vergehen 3-8 Sekunden ( ! ) je nach Programmaterial, bis die Load-Procedure fertig ist und was auf dem Schirm erscheint.

Im Firefox über die jeweilige Page (Zattoo oder EWE) geht das ratzfatz ohne sichtbare Verzägerung - mit VLC ist das ähnlich fix. Wird das also nicht am Server liegen ...

Wenn ich in meinem Proggie nun den LAV durch den YT-Filter ersetze (nur die CLSID ändern), dann kommt der Fehler Interface not found schon bei LOAD(URL).

Kannst du mir bitte ein paar Denkanstöße geben, wie und was ich dem Filter sagen muss ?
Ich verwende LAV und diverse Renderer MADVR und andere.

Wenn ich einen Stream lade bzw. die URL übergebe geht das bei mir auch ratzfatz mit Zattoo habe ich keine Erfahrung und will mich dort auch nicht registrieren.
Wenn du willst kannst du gerne mal meinen Player damit testen falls Zattoo damit funktioniert kann ich dir unter Umständen mit meiner Player Engine Source aushelfen den du dann allerdings selbst durchforsten musst.
Sag mir was du brauchst x64 oder x86 zum testen

Denkanstöße kann ich dir leider so aus der Luft nicht geben weis ja nicht was da bei dir interna so abgeht.

Geändert von venice2 (20. Nov 2020 um 11:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 15:31
@ venice2
Du hast eine (private) Mail von TERWI. Keine PN !
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 16:44
... aber nichtsdesdotrotz würde mich mal sehr interessieren, ob es noch mehr wissenswerte Info ausser diesen hier unter "https://ys.3dyd.com/developers/" gibt:
- IAMMediaContent (Win-Standard)
- IAMNetworkStatus (Win-Standard)
- IAMOpenProgress (Win-Standard)
- ISupportedSites (by Progger - bisher diskutiertes in "developers.zip")
- IPropertyBag, IPropertyBag2 (Win-Standard - Design by Progger)

Mittels dem bei der Installtion erzeugtem "configure.bat" hab ich mir mal die Prop-Pages angesehen ...
... wirklich schlau wird man da ohne die Beschreibung der Funktion durch Progger selbst wahrscheinlich nicht.
Ich jedenfalls nicht.

Hat da schon mal jemnd angefragt, was was genau wie wo bewirkt und wa wann wo veranlasst ?
Jemand schon mal nachgefragt ?
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#4

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 17:26
Habe dir angeboten den Quelltext zu schicken wenn du ihn nicht anforderst dann kann ich leider auch nichts machen.

Zitat:
Hat da schon mal jemnd angefragt, was was genau wie wo bewirkt und wa wann wo veranlasst ?
Jemand schon mal nachgefragt ?
Jo und auf Grund dessen meine Funktionen geschrieben.
Bsp.

IAMMediaContent
Delphi-Quellcode:
function TEVMRPlayer.GetYoutubeFilterDescription(var Description: string): HRESULT;
var
   MediaContent: IAMMediaContent;
   pwcDescription: PWideChar;
begin

   Result := E_FAIL;

   if not Assigned(srcFilter) then
     exit;

   if IsUrl then
   begin
     if Assigned(DYDYoutubeFilter) then
     begin
       srcFilter.QueryInterface(IID_IAMMediaContent, MediaContent);
       Result := MediaContent.get_Description(pwcDescription);
       if not SUCCEEDED(Result) then
         ReportError('YoutubeFilterTitle fails', Result)
       else
         begin
           Description := pwcDescription;
           SysFreeString(pwcDescription);
         end;
     end;
   end;

end;
prop page.
Delphi-Quellcode:
procedure TEVMRPlayer.Show_YoutubeFilterPropertyPage(ParentHandle: HWND);
var
  hr: HRESULT;
  PropertyPage: ISpecifyPropertyPages;
  FilterInfo: FILTER_INFO;
  pFilterUnk: IUnknown;
  caGUID: CAUUID;
begin

  if not IsRegisteredFilter(CLSID_LegacyAmFilterCategory, CLSID_3DYDYoutubeSource) then
    Exit;

  if not Assigned(DYDYoutubeFilter) then
    Exit;

  hr := DYDYoutubeFilter.QueryInterface(IID_ISpecifyPropertyPages, PropertyPage);
  if (SUCCEEDED(hr)) then
  begin
    // Get the name of filter and pointer to IUnknown.
    DYDYoutubeFilter.QueryFilterInfo(FilterInfo);
    DYDYoutubeFilter.QueryInterface(IID_IUnknown, pFilterUnk);

    // Get configuration page.
    PropertyPage.GetPages(caGUID);
{$IFDEF CPUX64}
    MyOleCreatePropertyFrame(
{$ELSE}
    OleCreatePropertyFrame(
{$ENDIF}
      ParentHandle, 0, 0, FilterInfo.achName, 1, @pFilterUnk,
        caGUID.cElems, caGUID.pElems, 0, 0, nil);

    // Clean up
    pFilterUnk := nil;
    FilterInfo.pGraph := nil;
    CoTaskMemFree(caGUID.pElems);
  end;
end;

exports..
Delphi-Quellcode:
  KVideo_ShowYoutubeFilterConfig: function(Index: Integer; ParentHandle:HWND): HRESULT; stdcall;
  // Shows the YoutubeFilter Config window
  // ( parameter )
  // - Index : Instance Count of KVideoPlayer

  KVideo_YoutubeFilterState: procedure(Index: Integer; out Registered, Loaded: BOOL); stdcall;
  // Checks if YoutubeFilter is ready to service
  // YoutubeFilter is used to play files from YouTube
  // * note) The configuration window to change YoutubeFilter's properties is shown only
  // when YoutubeFilter is registered at system.
  // ( parameter )
  // - Index : Instance Count of KVideoPlayer
  // - Registered : true if YoutubeFilter is registered at system, else false
  // - Loaded : true if YoutubeFilter is loaded, else false

  KVideo_GetYoutubeFilterTitle: function(Index: Integer; var Title: PWideChar): HRESULT; stdcall;
  // Get Media Title
  // ( parameter )
  // - Index : Instance Count of KVideoPlayer
  // - Title : if Available

  KVideo_GetYoutubeFilterSupportedSites: function(Index: Integer; var Sites: string;
    Count: Integer): HRESULT; stdcall;
  // Get Supported Sites
  // ( parameter )
  // - Index : Instance Count of KVideoPlayer
  // - Sites : which supported
  // - Count : Index from KVideo_GetYoutubeFilterSupportedSitesCount
  // ( result )
  // - 0 on success, else fails

  KVideo_GetYoutubeFilterSupportedSitesCount: function(Index: Integer;
    var Count: Integer): HRESULT; stdcall;
  // Get Supported Sites count
  // ( parameter )
  // - Index : Instance Count of KVideoPlayer
  // - Count : of Supported Sites
  // ( result )
  // - 0 on success, else fails
und, und, und...

Zitat:
Wenn ich in meinem Proggie nun den LAV durch den YT-Filter ersetze (nur die CLSID ändern), dann kommt der Fehler Interface not found schon bei LOAD(URL).
Du meinst mit 3DYDYouTube ersetzt?
Wenn ja warum?
Die Filter arbeiten doch zusammen.

https://www.gitmemory.com/issue/ytdl...2258/568124272
http://trac.lliurex.net/xenial/brows...oo.py?rev=8788

Bei Google suchenusing Zattoo with youtube-dl

Geändert von venice2 (20. Nov 2020 um 18:20 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz