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
Seite 5 von 5   « Erste     345   
EWeiss
(Gast)

n/a Beiträge
 
#41

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 21:32
Nein es geht nicht. (auch mit HRESULT nicht) aber meine variante.

Ich verändere dadurch das Interface
Dort ist die Funktion so definiert.
Code:
STDMETHOD_(BSTR, GetName)(UINT index) = 0;
Ich kann diese nicht einfach ändern so wie ich will.
BSTR = PWideChar ist die Rückgabe.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#42

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 22:05
Bezüglich des ENUMs:

In Delphi sind die standardmäßig so klein wie möglich (hier also Byte), aber in C++ sind ENUMs/SETs oft immer INTEGER.

Also entweder den Typ als Integer/LongInt definieren und die Werte als Konstanten,
oder {$MINENUMSIZE 4} um diese Typ-Definition. (beim SET mit einem DummyWert =31)

Bei Enums mit Vorgaben (=irgendwas ) könnte man noch bedenken, dass dort leider keine TypeInfo für die Werte generiert werden.
Das könnte man mit Dummy-/Füllwerten für die Nichtdefinierten 0 bis 2 und ohne die Zuweisung =3 beheben, falls man Delphi-Referenz durchsuchenGetEnumName verwenden will/muss.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#43

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 5. Okt 2018, 22:21
Danke!

Hier nochmal der aktuelle Status habe Kommentiert was geht und was nicht.
Siehe '// ****'

Delphi-Quellcode:
{$REGION 'Interface DYDYoutubeFilter ISupportedSites'}
  ISupportedSites = interface(IUnknown)
    ['{FF762ACC-13EC-463A-A29C-FD4B0CD3E019}']
    // Version number equals to total number of functions within the interface
    // (ISupportedSites::kVersion is the current version). New functions are
    // appended to the interface. Function signatures are never change. Therefore
    // version number is the way to check whether particular function is available
    // in the interface
    function GetVersion: UINT; stdcall; // **** Funktioniert
    // Number of supported sites
    function GetCount: UINT; stdcall; // **** Funktioniert
    // Get site name or NULL if index >= GetCount()
    function GetName(index: UINT): PWideChar; stdcall; // **** Funktioniert
    // Test whether url can be analyzed for video retrieving. S_FALSE means that
    // url seems from the supported site but not a valid video clip page. When
    // S_OK is returned, canonical_url will contain canonical page url, otherwise
    // it will not be changed
    // If explicitly == TRUE then S_OK will be returned only if URL definitely
    // points to video page URL instead of maybe just to some other page from the
    // supported site. This can be determined only for few sites, for others need
    // page data to determine this
    function Test(url: PWideChar; explicitly: BOOL; var canonical_url: PWideChar): HRESULT; stdcall; // **** Funktioniert ABER URL ist Nil vielleicht muss das so sein
    // Returns clip start time encoded in URL, in milliseconds
    function GetStartTime(url: PWideChar): UINT; stdcall; // **** Funktioniert
  end;
{$ENDREGION}
Muss jetzt mal abwarten was da von dem noch kommt wenn nichts weiter stelle ich den Support ein.
Das ist zu stressig alles irgendwie zusammen zu klopfen ohne vernünftiges SDK.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

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

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 18. Nov 2020, 14:16
Nun schon leicht älter als 2 Jahre, aber dennoch mal Fragen zu diesem Codec:
Kann man damit auch einen (anderen) IPTV-Source laden ausser YouTube ?
Ich suche einen DS-Filter um ZATTOO (und derivate wie z.B. EWE-TV) zu laden.
Mit 3DYDYouTube geht das anscheinend nicht, weil: Interface not found ...
Oder ist das irgendwas anders an Params zu setzen ?
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#45

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 09:43
Nun schon leicht älter als 2 Jahre, aber dennoch mal Fragen zu diesem Codec:
Kann man damit auch einen (anderen) IPTV-Source laden ausser YouTube ?
Ich suche einen DS-Filter um ZATTOO (und derivate wie z.B. EWE-TV) zu laden.
Mit 3DYDYouTube geht das anscheinend nicht, weil: Interface not found ...
Oder ist das irgendwas anders an Params zu setzen ?
3DYDYouTube ist ein Wrapper (Codec) der eigene IPTV-Source zur Verfügung stellt. (youtube und diverse andere)
3DYDYouTube verwendet bzw. kann verwendet werden in verbindung mit der youtube-dl.exe diese sorgt dann dafür das du andere von youtube-dl.exe verwendete IPTV-Sources-streams
verwenden kannst.

bsp..
Zitat:
youtube-dl

1tv
1up.com
20min
220.ro
23video
24video
3qsdn
3sat
4tube
56.com
5min
6play
7plus
8tracks
91porn
9c9media
9gag
9now.com.au
abc.net.au
abcnews
abcotvs
AcademicEarth
acast
ADN
AdobeConnect
adobetv
AdultSwim
aenetworks
afreecatv
AirMozilla
und 100te mehr.
Und ja auch ZATTOO.

Zitat:
Zapiks
Zaq1
Zattoo
ZattooLive
ZDF
ZDFChannel
zingmp3
Zype
bsp.
Mein Player (3DYDYouTube -> youtube-dl) und ZDFChannel Live stream

Geändert von venice2 ( 1. Dez 2020 um 16:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von TERWI
TERWI

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

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 11:18
... 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 ?

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

n/a Beiträge
 
#47

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 11: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 12: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
 
#48

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 16: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
 
#49

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 17: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
 
#50

AW: C++ Delphi Übersetzung 3DYDYoutube Filter

  Alt 20. Nov 2020, 18: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 19:20 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 05:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz