AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia VMR9 Allocator/Presenter unter Firemonkey
Thema durchsuchen
Ansicht
Themen-Optionen

VMR9 Allocator/Presenter unter Firemonkey

Ein Thema von Peter666 · begonnen am 26. Jan 2021
Antwort Antwort
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#1

VMR9 Allocator/Presenter unter Firemonkey

  Alt 26. Jan 2021, 13:58
Hi,

beim Lesen der FMX.Media.Win ist mir aufgefallen, dass die Kameraklasse zwar einen VMR9 Allocator/Presenter nutzt, damit man die Bilddaten als Bitmap erhält, aber die TWindowsMedia Klasse nicht. Also dachte ich mir probierst du doch mal den Allocator/Presenter in einem normalen Videographen zu verwenden.

Delphi-Quellcode:
function GetPin(const Filter: IBaseFilter; out Pin: IPin; Dir:
  TPinDirection = PINDIR_INPUT): Boolean;
var
  EPins: IEnumPins;
  pPin: IPin;
  f: Int64;
  d: TPinDirection;
begin
  result := false;
  Pin := nil;
  if not assigned(Filter) then
    exit;
  if SUCCEEDED(Filter.EnumPins(EPins)) then
    while EPins.Next(1, pPin, @f) = S_OK do
      if SUCCEEDED(pPin.QueryDirection(d)) and (d = Dir) then
      begin
        Pin := pPin;
        result := true;
        break;
      end;
end;

procedure TForm3.LoadFromFile(const AFilename: String);
var
  Filter: IBaseFilter;
  Pin: IPin;
begin
  if FAILED(CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER,
    IID_IGraphBuilder, FGraphBuilder)) then
    exit;
   FGraphBuilder.QueryInterface(IID_IMediaControl, FMediaControl);

  FVMRRenderer := TVMRRenderer.Create;
  FVMRRenderer.SampleBufferReady := VMRRendererSampleReady;
  if SUCCEEDED(FGraphBuilder.AddSourceFilter(PChar(AFileName),'Source', Filter)) and
  (FVMRRenderer.AddToGraph(FGraphBuilder)) and
  (GetPin(Filter, Pin, PINDIR_OUTPUT)) and SUCCEEDED(FGraphBuilder.Render(Pin)) then
    FMediaControl.Run;
end;
Das oben stehende mein Testcode und erstaunlicherweise geht der nicht. Sobald MediaControl.Run ausgeführt wird gibt es irgendwo eine Exception. Hat sich damit jemand schon mal beschäftigt? Ich hatte bis jetzt Alcinoe von Github als Player und da gehen nur iOS und Android.

Peter
  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 08:34 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