Project

General

Profile

Actions

Support Request #2764

closed

MSF_REFERENCE

Added by hidden almost 6 years ago. Updated almost 4 years ago.

Status:
Closed
Priority:
Normal
Customer:
AUDI
Department:
EX
Requester's Priority:
Normal
Support Level:
2nd Level
Resolution:
Workaround Available
Product Issue Numbers:
Affected Products:
Platform:
Windows 7 64bit
Topic:
ADTF::SDK
FAQ Links:

Description

Supportanfrage:

Hallo,

Jan möchte Kopiervorgänge sparen und externen Speicher in einem MediaSample referenzieren.
Uns ist bewusst, dass das seine Gefahren birgt, aber wir wollen es dennoch versuchen ;)

Problem ist allerdings, dass wir von außen nicht mitbekommen, wann der Referenz-Counter des MediaSamples auf 0 geht und somit das MediaSample zerstört wird. Das wäre der Zeitpunkt, an dem wir auch den externen Speicher recyclen können.

Idee für einen Workaround:

· Eigene Implementierung eines MediaSamples, welches einen CallBack anbietet. Problem: Neue Klasse müsste in der Runtime erst registriert werden.

Habt ihr eine Alternative zu unserem Workaround?

Lösung:

Auszug aus der ADTF3 Doku:

/**
 * Sample that uses samples buffers that do not copy the data, but only keep a reference to it.
 * Use this with EXTREME care!! Keep these samples in a
 * \ref adtf::ucom::ant::weak_object_ptr in order to be able to check if they no longer exist
 * before you manipulate the data again.
 */

class cReferenceSample: public cSample

Dort gibt es das Beispiel cDemoSampleDataReferenceSource, mit einem weak_object_ptr kann überprüft werden, ob das Sample noch in Verwendung ist.

zu ADTF 2:
Mangels weak_object_ptr in ADTF2 würde man nicht um eine eigene Implementierung eines MediaSamples herumkommen

Workaround: Für speziellen Anwendungsfall hinreichend großen Ringspeicher nutzen, um sicherzustellen, dass überschriebener Speicher nicht mehr genutzt wird.

Actions

Also available in: Atom PDF