Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi DSPack DVD abspielen (https://www.delphipraxis.net/92002-dspack-dvd-abspielen.html)

bluescreen25 13. Mai 2007 08:56


DSPack DVD abspielen
 
Ich möchte gerne eine DVD mit Hilfe des DSPack abspielen.

In meinem Project verwende ich zum Testen den PlayCode des DSPack und bekomme folgende Fehlermeldung:

'Some basic error occurred in building the graph.'#13'Possibilities include the DVD Navigator filter or the video or audio renderer not instantiating,'#13'a trivial connection or pin enumeration failing, or none of the streams rendering.'

Die Übergabe von Filename funktioniert: Z:\VIDEO_TS\VIDEO_TS.IFO


Mit dem compilierten Demo DVDPlay in DSPack bekomme ich folgende Fehlermeldung:

'The video decoder doesn''t produce line 21 (closed captioning) data.'

Im Windows Media Player 10 klappt das Abspielen, habe den Intervideo XPack DVD Codec installiert.


der PlayCode aus dem DSPack:
Delphi-Quellcode:
procedure PlayDVD(FileName: WideString);
var
  Status : TAMDVDRenderStatus;
  DvdCmd: IDvdCmd;
  HR: HRESULT;
begin
  showmessage(FileName);  //<-------------Filename zeigt sich korrekt !
  // Activate the filter Graph
  if not FilterGraph1.Active then
  begin
    FilterGraph1.Active := true;
    // Render DVD
    HR := FilterGraph1.RenderDvd(Status, FileName);

    if HR <> S_OK then
    begin
      case HR of
        HRESULT(E_INVALIDARG): Application.MessageBox('Invalid Argument.','Error', mb_ok);
        HRESULT(S_FALSE)    : begin
                        if Status.hrVPEStatus <> 0 then Application.MessageBox(PChar(GetErrorString(Status.hrVPEStatus)), 'Error', mb_OK);
                        if Status.bDvdVolInvalid  then Application.MessageBox('The specified DVD volume to be played does not exist.', 'Error', mb_OK);
                        if Status.bDvdVolUnknown  then Application.MessageBox('No DVD volume is specified or isn''t found.', 'Error', mb_OK);
                        if Status.bNoLine21In     then Application.MessageBox('The video decoder doesn''t produce line 21 (closed captioning) data.', 'Error', mb_OK);
                        if Status.bNoLine21Out    then Application.MessageBox('The video decoder can''t be shown as closed captioning on video due to a problem with graph building.', 'Error', mb_OK);
                        if status.iNumStreamsFailed > 0 then Application.MessageBox('Can''t render one or more stream.', 'Error', mb_OK);
                      end;
        HRESULT(VFW_E_DVD_DECNOTENOUGH) : Application.MessageBox('There isn''t enough hardware or software decoders to decode all streams.','Error', mb_OK);
        HRESULT(VFW_E_DVD_RENDERFAIL)  : Application.MessageBox('Some basic error occurred in building the graph.'#13'Possibilities include the DVD Navigator filter or the video or audio renderer not instantiating,'#13'a trivial connection or pin enumeration failing, or none of the streams rendering.','Error', mb_OK);
      end;
      FilterGraph1.ClearGraph;
      exit;
    end;
    FilterGraph1.Play;
    with FilterGraph1 as IDVDControl2 do
    begin
      SetOption(DVD_NotifyParentalLevelChange,false); //not notify us when parental level changes
      SetOption(DVD_HMSF_TimeCodeEvents, true);      // use new HMSF timecode format
    end;
  end
  else
  begin
    FilterGraph1.Play;
    with FilterGraph1 as IDvdControl2 do PlayForwards(1.0,DVD_CMD_FLAG_None, DvdCmd);
  end;
end;
Jetzt habe ich gelesen, das wenn DSPack die Filter nicht automatisch verbinden kann, auf Grund von mehreren Filtern im Windows, das man ggf diese manuell verbinden soll, das ich aber als democode zum testen nicht finden konnte.



Kennt sich da jemand aus ?


Gruß,bluescreen25

Mazel 13. Mai 2007 10:52

Re: DSPack DVD abspielen
 
Kann es sein dass die IFO Probleme macht? Ich glaube bei meinem Player auch mal Probleme damit gehabt zu haben. Was macht er denn mit der VOB, auch nicht?

bluescreen25 13. Mai 2007 11:17

Re: DSPack DVD abspielen
 
Zitat:

Zitat von Mazel
Kann es sein dass die IFO Probleme macht? Ich glaube bei meinem Player auch mal Probleme damit gehabt zu haben. Was macht er denn mit der VOB, auch nicht?

Hmm hatte es vergessen zu erwähnen, die vob geht auch nicht, dasselbe Problem.

Generell scheint im System ja der Codec da zu sein, im Win Mediaplayer gehts ja.
Das DSPack scheint hier in der Automatik, so nenne ich das mal, nicht dieses zu verbinden, deshalb gibt es dort ja eine manuelle Möglichkeit, die Filter zu listen und ggf zu verbinden, nur blicke ich überhaupt nicht durch.

Es soll ja auf jedem System später funktionieren. Ich weiss nicht, wie andere Player dies erledigen, wenn ggf mehrere Codecs vorliegen.

Noch ein Hinweis: Ich habe das DSPack dynamisch eingebunden, also nicht als VCL Kompo und Video ist soweit komplett in Funktion,nur die DVD "frisst" er nicht. Nur als Info, wenn jemand einen Tipp hat.

Dieses ist nur für das Problem an sich nicht relevant, da der Demo-DVD-Player auch nicht funzt, jedoch mit einer anderen Fehlermeldung, siehe Threadbegin.

Gruß, bluescreen25


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 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