Support Request #6386
closedGetNextSample does not return next sample and fails
Description
Supportanfrage
Mein alter Code funktioniert leider nicht mehr wie vorher.
vorher hatte ich in der Empfangsmethode:
ucom::object_ptr<const streaming::ISample> pReadSample = nullptr;
while(IS_OK(pReader->GetNextSample(pReadSample)))
GetNextSample liefert aber nun immer false zurück und das Sample bleibt leer.
Wenn ich den Code auf folgendes umstelle geht alles aber das war eigentlich nicht mein Ziel.
ucom::object_ptr<const streaming::ISample> pReadSample = nullptr;
if(IS_OK(pReader->GetLastSample(pReadSample)))
Lösung
Du hast die falsche ProcessInput erwischt. Wenn du selber über die Samples iterieren willst, nimm die ProcessInput(tNanoSeconds, ISampleReader*). Ansonsten nimm deine jetzige und verarbeite einfach pSample, dass Du schon als Parameter bekommst, dann kannst Du Dir die while Schleife sparen
Zur Info, die ProcessInput(ISampleReader*, iobject_ptr<const ISample>&) hat den ersten Parameter nur damit man erkennen von welchem Input das Sample kam. Da wird eben immer GetNextSample aufgerufen und dann an die Funktion weitergegeben, daher hat der Reader dann nicht noch ein Sample übrig.
Ticket zur Doku angelegt -> ACORE-9927