Requêtes de temps

Il y a deux débits de média qu'un greffon temps réel doit prendre en compte : le débit du projet et le débit demandé. Il existe des fonctions pour obtenir les débits du projet et ceux demandés. De plus, la réalisation d'effets dépendant du temps demande l'utilisation de certaines fonctions qui vous permettent de savoir où l'on se trouve dans l'exécution de l'effet.

get_project_framerate()

Donne le nombre d'images par seconde de la vidéo tel que défini par les paramètres du projet.

get_project_samplerate()

Donne le nombre d'échantillons par seconde de l'audio tel que défini par les paramètres du projet.

get_framerate()

Donne le nombre d'images par seconde que demande le greffon qui s'exécutera après celui-ci. C'est le débit d'images demandé et il est identique au paramètre frame_rate de la fonction process_buffer.

get_samplerate()

Donne le nombre d'échantillons par seconde demandé par le greffon qui suit celui-ci, il est identique au paramètre sample_rate pour process_buffer.

get_total_len()

Donne le nombre d'échantillons ou d'images dans la page couverte par l'effet, relativement au débit demandé.

get_source_start()

Pour les greffons temps réel, elle donne l'échantillon ou l'image de numéro le moins élevé dans la plage de l'effet, dans le débit de données demandé. Pour les effets qui ne sont pas temps réel, c'est le début de la partie de la timeline à traiter.

get_source_position()

Pour les greffons temps réel, c'est l'échantillon de numéro le moins élevé de la région demandée, à traiter si la reproduction est en sens normal et l'échantillon de numéro le plus élevé si la reproduction a lieu en arrière. Pour la vidéo, c'est le début de l'image si l'on effectue une lecture avant et la fin de l'image si l'on effectue une lecture arrière. La position est relative au début de l'EDL et dans le débit de données demandé. Pour les transitions, c'est toujours l'échantillons de numéro le moins élevé de la région à traiter par rapport au début de la transition.

get_direction()

donne le sens de l'opération de lecture en cours. C'est une macro définie dans transportque.inc. C'est utile pour appeler les fonctions de lecture parce que ces fonctions se placent elles-mêmes au début ou à la fin de la région à lire en fonction de l'opération de lecture.

local_to_edl()

edl_to_local()

Celles-ci effectuent la conversion entre le débit demandé et le débit du projet. Elles sont utilisées pour convertir la position des images-clés sous forme de nombres qui puissent être interpolés dans le débit demandé. La conversion est basée automatiquement sur la fréquence des images ou sur le taux d'échantillonnage en fonction du type de greffon.

get_prev_keyframe(int64_t position, int is_local)

get_next_keyframe(int64_t position, int is_local)

Celles-ci donnent l'image-clé la plus proche avant ou après la position indiquée. La version de load_configuration définie par macro retrouve automatiquement les images-clés appropriées, mais vous pouvez aussi le faire vous-même. Le paramètre de position peut être soit dans le débit du projet, soit dans le débit demandé. Utilisez une valeur de 1 pour set_local si c'est le débit demandé et 0 si c'est le débit du projet. Pour chacune des images-clés, une autre valeur de la position indique que la position de l'image-clé est relative au début de la timeline et possède le débit du projet. La seule manière d'obtenir une interpolation douce entre les images-clés est de convertir les objets se trouvant aux positions des images-clés vers le débit demandé.