CMediaSample, classe

hiérarchie de la classe cmediasample

La CMediaSample classe définit un exemple de média qui prend en charge l’interface IMediaSample2 . L’exemple de support contient un pointeur vers une mémoire tampon et diverses propriétés stockées en tant que variables membres protégées.

Les exemples de média sont créés par des allocateurs, qui sont dérivés de la classe CBaseAllocator . Le CMediaSample constructeur reçoit un pointeur vers une mémoire tampon allouée, ainsi que la taille de la mémoire tampon. D’autres propriétés sont généralement définies et récupérées par le biais de méthodes d’interface IMediaSample .

Le cycle de vie d’un exemple de média diffère de celui de la plupart des objets COM :

  • L’Allocator contient une liste d’échantillons gratuits. Lorsqu’un filtre a besoin d’un nouvel exemple, il appelle la méthode IMemAllocator :: GetBuffer de l’allocateur. L’Allocator récupère un exemple à partir de sa liste libre, incrémente le décompte de références de l’exemple et retourne un pointeur vers l’exemple.
  • Une fois le filtre terminé avec l’exemple, il appelle la méthode IUnknown :: Release sur l’exemple. Contrairement à la plupart des objets, l’exemple ne se supprime pas quand son décompte de références atteint zéro. Au lieu de cela, il appelle la méthode IMemAllocator :: ReleaseBuffer sur l’allocateur, et l’allocateur retourne l’exemple à sa liste libre.
  • L’Allocator ne détruit pas les exemples tant que la méthode IMemAllocator ::D ecommit est appelée.
Variables membres protégées Description
m _ dwFlags Exemples d’indicateurs de propriété.
m _ dwTypeSpecificFlags Indicateurs spécifiques au type.
m _ pbuffer Pointeur vers la mémoire tampon qui contient les données multimédia.
m _ lActual Longueur des données valides dans la mémoire tampon, en octets.
m _ cbBuffer Taille de la mémoire tampon, en octets.
m _ pAllocator Pointeur vers l’allocateur qui a créé cet exemple.
m _ pNext Pointeur vers l’exemple suivant dans la liste des exemples de l’allocateur.
_début m Heure de début de l’exemple.
_fin m Heure de fin de l’exemple.
m _ MediaStart Heure de début du média.
m _ MediaEnd Heure d’arrêt du support.
m _ pMediaType Pointeur vers le type de média, si le type a été modifié par rapport à l’exemple précédent dans le flux de données.
m _ dwStreamId Identificateur de flux.
Variables membres publiques Description
m _ cref Nombre de références.
Méthodes publiques Description
CMediaSample Méthode de constructeur.
~ CMediaSample Méthode de destructeur. Virtuels.
SetPoint Définit le pointeur sur la mémoire tampon.
Méthodes IMediaSample Description
GetPointer Récupère un pointeur en lecture/écriture dans la mémoire tampon.
GetSize Récupère la taille de la mémoire tampon.
GetTime Récupère les temps de flux auxquels cet exemple doit commencer et se terminer.
SetTime Définit les temps de flux auxquels cet exemple doit commencer et se terminer.
IsSyncPoint Détermine si le début de l’exemple est un point de synchronisation.
SetSyncPoint Spécifie si le début de cet exemple est un point de synchronisation.
IsPreroll Détermine si cet exemple est un exemple de préroll.
SetPreroll Spécifie si cet exemple est un exemple de préroll.
GetActualDataLength Récupère la longueur des données valides dans la mémoire tampon.
SetActualDataLength Définit la longueur des données valides dans la mémoire tampon.
GetMediaType Récupère le type de média si le type de média diffère de l’exemple précédent.
SetMediaType Définit le type de média pour l’exemple.
IsDiscontinuity Détermine si cet exemple représente une rupture dans le flux de données.
SetDiscontinuity Spécifie si cet exemple représente une rupture dans le flux de données.
GetMediaTime Récupère les temps de support pour cet exemple.
SetMediaTime Définit les durées de support pour cet exemple.
Méthodes IMediaSample2 Description
GetProperties Récupère les propriétés de l’exemple.
SetProperties Définit les propriétés de l’exemple.

Spécifications

Condition requise Valeur
En-tête
Amfilter. h (inclure Flux. h)
Bibliothèque
Strmbase. lib (versions commerciales);
Strmbasd. lib (versions Debug)