
Recherche avancée
Médias (91)
-
#3 The Safest Place
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#4 Emo Creates
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#2 Typewriter Dance
15 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#1 The Wires
11 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
ED-ME-5 1-DVD
11 octobre 2011, par
Mis à jour : Octobre 2011
Langue : English
Type : Audio
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (112)
-
Script d’installation automatique de MediaSPIP
25 avril 2011, parAfin de palier aux difficultés d’installation dues principalement aux dépendances logicielles coté serveur, un script d’installation "tout en un" en bash a été créé afin de faciliter cette étape sur un serveur doté d’une distribution Linux compatible.
Vous devez bénéficier d’un accès SSH à votre serveur et d’un compte "root" afin de l’utiliser, ce qui permettra d’installer les dépendances. Contactez votre hébergeur si vous ne disposez pas de cela.
La documentation de l’utilisation du script d’installation (...) -
Demande de création d’un canal
12 mars 2010, parEn fonction de la configuration de la plateforme, l’utilisateur peu avoir à sa disposition deux méthodes différentes de demande de création de canal. La première est au moment de son inscription, la seconde, après son inscription en remplissant un formulaire de demande.
Les deux manières demandent les mêmes choses fonctionnent à peu près de la même manière, le futur utilisateur doit remplir une série de champ de formulaire permettant tout d’abord aux administrateurs d’avoir des informations quant à (...) -
La sauvegarde automatique de canaux SPIP
1er avril 2010, parDans le cadre de la mise en place d’une plateforme ouverte, il est important pour les hébergeurs de pouvoir disposer de sauvegardes assez régulières pour parer à tout problème éventuel.
Pour réaliser cette tâche on se base sur deux plugins SPIP : Saveauto qui permet une sauvegarde régulière de la base de donnée sous la forme d’un dump mysql (utilisable dans phpmyadmin) mes_fichiers_2 qui permet de réaliser une archive au format zip des données importantes du site (les documents, les éléments (...)
Sur d’autres sites (11598)
-
How video editor show real time preview of videos ? [closed]
3 juin 2024, par SWIKI am trying to create a simple video editor that combine two video by layering one over another, i can easily do it with ffmpeg, but I am not sure how can I make a preview of it before making final video ? How video editor display preview without building them ? I am looking towards create a react application.


-
How to compare/show the difference between 2 videos in ffmpeg ?
25 janvier 2016, par polarkaI am a newbie at encoding. I have read and tried x264 in lossless mode (-qp 0), however I’d like to make sure that in my new video, every single pixel contains the same information as the source file (which is in YUV 420 so the loss of color conversion is avoidable, as far as I know). I want to be able to check that, because I don’t believe in that if someone just says its lossless.
I welcome answers suggesting other codecs for lossless encoding, my only requirements for codecs are having one of the best compression rate and let me to pick different calculation times (such as the range from placebo to veryfast in x264) in order to adjust the compression level and calc time to my needs. But keep in mind that the original question is about how can I calculate the differences frame by frame of two videos and export it to a 3rd file, so I can watch it myself. I think that knowledge (if its possible and doesnt have serious limitations) will be useful for me in the future too.
-
Why does the frame time increase over time when decoding video using OpenCV ?
21 février 2024, par ZeunO8I have set up OpenCV in my project. I added the OpenCV github repo as a submodule in my project and included it in my cmake dependencies file like so :


set(WITH_FFMPEG ON)
 set(VIDEOIO_PLUGIN_LIST "ffmpeg")
 set(BUILD_PERF_TESTS OFF)
 set(BUILD_TESTS OFF)
 set(INSTALL_TESTS OFF)
 add_subdirectory(${COJE_SRC_DIR}/vendor/opencv build/build_opencv)



I then set up a Video struct inheriting from IEntity (to get it working with my render drivers draw system) and that looks like :


#pragma once
#include <opencv2></opencv2>opencv.hpp>
#include <coje></coje>interfaces/IEntity.hpp>
#include <coje></coje>enums/EFileLocation.hpp>
#include <coje></coje>String.hpp>
#include <coje></coje>graphics/Texture.hpp>

namespace coje::entitys
{
 struct Video : IEntity
 {
 String filePath;
 EFileLocation fileLocation;
 String tempname;
 glm::vec2 size;
 UniquePointer videoCapturePointer;
 cv::Mat frame;
 cv::Mat frameConverted;
 Floating64 fps = 0;
 Floating64 frameCount = 0;
 Integer64 currentFrameIndex = -1;
 Video(const String &filePath, const EFileLocation &fileLocation, const glm::vec2 &size, const glm::vec3 &position, const glm::quat &rotation);
 ~Video();
 void updateTextureWithFrame(const uInteger64 &frameIndex, UniquePointer<texture> &texturePointer);
 const Boolean resize(const glm::vec2 &size);
 Boolean update(const uInteger64 &elapsedTimeMs);
 };
}
</texture>


The source for Video.cpp is :


#include <coje></coje>bullet.hpp>
#include <coje></coje>Common.hpp>
#include <coje></coje>Entitys/Video.hpp>
#include <coje></coje>Logger.hpp>
#include <coje></coje>Timer.hpp>
#include <cstdio>
using namespace coje::entitys;
/*
 */
Video::Video(const String &filePath, const EFileLocation &fileLocation, const glm::vec2 &size, const glm::vec3 &position, const glm::quat &rotation) : IEntity(EntityType)
{
 this->position = position;
 this->rotation = rotation;
 File videoFile(filePath, fileLocation, "r");
 auto videoBytes = videoFile.toBytes();
 tempname = std::tmpnam(0);
 {
 File tempFile(tempname, EFileLocation::Relative, "w");
 tempFile & videoBytes;
 }
 videoCapturePointer = {ReleaseType::Delete, new cv::VideoCapture(tempname.c_str(), cv::CAP_FFMPEG), 1};
 auto &videoCapture = *videoCapturePointer.pointer;
 if (!videoCapture.isOpened())
 {
 Logger(LogType::ERROR, "%s\n", "Error opening video stream from memory");
 return;
 }
 // videoCapture.set(cv::CAP_PROP_BUFFERSIZE, 100);
 uInteger64 bufferSize = videoCapture.get(cv::CAP_PROP_BUFFERSIZE);
 Logger(LogType::INFO, "BufferSize: %llu\n", bufferSize);
 fps = videoCapture.get(cv::CAP_PROP_FPS);
 frameCount = videoCapture.get(cv::CAP_PROP_FRAME_COUNT);
 uInteger64 frameWidth = videoCapture.get(cv::CAP_PROP_FRAME_WIDTH),
 frameHeight = videoCapture.get(cv::CAP_PROP_FRAME_HEIGHT);
 resize(size);
 textures.push_back({ReleaseType::Delete, new Texture(frameWidth, frameHeight, ETextureFormat::RGB8, ETextureType::UnsignedByte), 1});
 glm::ivec3 *indices = (glm::ivec3 *)(*this).operator()(IEntity::Quanta::Indice, 2);
 indices[0] = {3, 2, 1}; // front
 indices[1] = {1, 0, 3};
 glm::vec2 *uvs = (glm::vec2 *)(*this).operator()<float>(IEntity::Quanta::UV2, 4);
 auto _uvs = Common::getUVs2DQuad();
 for (int index = 0; index < 4; index++)
 {
 uvs[index] = _uvs._data[index];
 }
 TimerFunctions::addFunction({this, &Video::update}, 0, 1000 / fps);
 return;
};
/*
 */
Video::~Video()
{
 File tempFile(tempname);
 tempFile.remove();
};
/*
 */
void Video::updateTextureWithFrame(const uInteger64 &frameIndex, UniquePointer<texture> &texturePointer)
{
 auto start = std::chrono::high_resolution_clock::now();
 auto &videoCapture = *videoCapturePointer.pointer;
 videoCapture.set(cv::CAP_PROP_POS_FRAMES, frameIndex);
 Boolean frameGrabSuccess = videoCapture.grab();
 if (!frameGrabSuccess)
 {
 Logger(LogType::ERROR, "%s\n", "Failed to grab frame from VideoCapture");
 return;
 }
 Boolean frameRetrieveSuccess = videoCapture.retrieve(frame);
 if (!frameRetrieveSuccess)
 {
 Logger(LogType::ERROR, "%s\n", "Failed to retrieve frame from VideoCapture");
 return;
 }
 auto end = std::chrono::high_resolution_clock::now();
 std::chrono::duration elapsed = end - start;
 std::cout << "Video::updateTextureWithFrame took " << elapsed.count() << "ms\n";
 cv::cvtColor(frame, frameConverted, cv::COLOR_BGR2RGB);
 cv::flip(frameConverted, frameConverted, 0);
 if (texturePointer.pointer)
 {
 auto &texture = texturePointer.pointer;
 if (texture->width != frameConverted.cols || texture->height != frameConverted.rows)
 {
 goto _newTexture;
 }
 else
 {
 texture->update(frameConverted.data);
 }
 }
 else
 {
 _newTexture:
 texturePointer = {ReleaseType::Delete, new Texture(frameConverted.cols, frameConverted.rows, frameConverted.data, ETextureFormat::RGB8, ETextureType::UnsignedByte), 1};
 }
};
/*
 */
const Boolean Video::resize(const glm::vec2 &_size)
{
 size = _size;
 glm::vec3 *vertices = (glm::vec3 *)(*this).operator()<float>(IEntity::Quanta::Vertex, 4);
 glm::vec3 topRight = {size.x / 2, size.y / 2, 0};
 glm::vec3 bottomRight = {size.x / 2, -(size.y / 2), 0};
 glm::vec3 bottomLeft = {-(size.x / 2), -(size.y / 2), 0};
 glm::vec3 topLeft = {-(size.x / 2), size.y / 2, 0};
 vertices[0] = topRight;
 vertices[1] = bottomRight;
 vertices[2] = bottomLeft;
 vertices[3] = topLeft;
 *changedPointer = true;
 return true;
};
/*
 */
Boolean Video::update(const uInteger64 &elapsedTimeMs)
{
 currentFrameIndex++;
 Logger(LogType::INFO, "Video-elapsedTime: %llums\n", elapsedTimeMs);
 if (currentFrameIndex == frameCount - 1)
 {
 return false;
 }
 auto &texturePointer = textures._data[0];
 updateTextureWithFrame(currentFrameIndex, texturePointer);
 return true;
};
</float></texture></float></cstdio>


When running a simple test video @
1280x720
theupdateTextureWithFrame
timer begins at 12ms but gradually over time increases to over 100ms and beyond. Causing video playback to be running at lower than defined frames per second.

What is causing this gradual increase in
updateTextureWithFrame
?? How can I solve it ?

Edit :


uInteger64 bufferSize = videoCapture.get(cv::CAP_PROP_BUFFERSIZE);
 Logger(LogType::INFO, "BufferSize: %llu\n", bufferSize);



prints BufferSize : 0. Indicating setting CAP_PROP_BUFFERSIZE is not supported for ffmpeg


Edit2 :
Some logs of timings


Video::updateTextureWithFrame took 16.5161ms
Video::updateTextureWithFrame took 21.6109ms
Video::updateTextureWithFrame took 21.1443ms
Video::updateTextureWithFrame took 20.4253ms
Video::updateTextureWithFrame took 23.9015ms
Video::updateTextureWithFrame took 22.1348ms
Video::updateTextureWithFrame took 21.3723ms
Video::updateTextureWithFrame took 21.2186ms
Video::updateTextureWithFrame took 24.0211ms
Video::updateTextureWithFrame took 24.5907ms
Video::updateTextureWithFrame took 23.2134ms
Video::updateTextureWithFrame took 25.6763ms
Video::updateTextureWithFrame took 25.416ms
Video::updateTextureWithFrame took 25.2314ms
Video::updateTextureWithFrame took 26.3919ms
Video::updateTextureWithFrame took 24.1883ms
Video::updateTextureWithFrame took 27.7095ms
Video::updateTextureWithFrame took 26.5594ms
Video::updateTextureWithFrame took 26.6618ms
Video::updateTextureWithFrame took 29.496ms
Video::updateTextureWithFrame took 27.2731ms
Video::updateTextureWithFrame took 27.5113ms
Video::updateTextureWithFrame took 30.2855ms
Video::updateTextureWithFrame took 27.6773ms
Video::updateTextureWithFrame took 30.5532ms
Video::updateTextureWithFrame took 32.6858ms
Video::updateTextureWithFrame took 32.8735ms
Video::updateTextureWithFrame took 31.7369ms
Video::updateTextureWithFrame took 31.2453ms
Video::updateTextureWithFrame took 30.9424ms
Video::updateTextureWithFrame took 36.7046ms
Video::updateTextureWithFrame took 33.6224ms
Video::updateTextureWithFrame took 32.0368ms
Video::updateTextureWithFrame took 33.0109ms
Video::updateTextureWithFrame took 32.2155ms
Video::updateTextureWithFrame took 33.5314ms
Video::updateTextureWithFrame took 33.576ms
Video::updateTextureWithFrame took 37.8993ms
Video::updateTextureWithFrame took 33.9495ms
Video::updateTextureWithFrame took 35.776ms
Video::updateTextureWithFrame took 36.2566ms
Video::updateTextureWithFrame took 36.5887ms
Video::updateTextureWithFrame took 40.0839ms
Video::updateTextureWithFrame took 38.5146ms
Video::updateTextureWithFrame took 40.72ms
Video::updateTextureWithFrame took 37.8345ms
Video::updateTextureWithFrame took 37.9925ms
Video::updateTextureWithFrame took 39.0402ms
Video::updateTextureWithFrame took 39.8856ms
Video::updateTextureWithFrame took 41.3421ms
Video::updateTextureWithFrame took 41.0703ms
Video::updateTextureWithFrame took 42.9482ms
Video::updateTextureWithFrame took 42.9199ms
Video::updateTextureWithFrame took 44.2593ms
Video::updateTextureWithFrame took 41.2746ms
Video::updateTextureWithFrame took 45.7017ms
Video::updateTextureWithFrame took 46.1854ms
Video::updateTextureWithFrame took 44.154ms
Video::updateTextureWithFrame took 42.6004ms
Video::updateTextureWithFrame took 47.2442ms
Video::updateTextureWithFrame took 43.4156ms
Video::updateTextureWithFrame took 47.9288ms
Video::updateTextureWithFrame took 45.3475ms
Video::updateTextureWithFrame took 46.9646ms
Video::updateTextureWithFrame took 48.4978ms
Video::updateTextureWithFrame took 45.1322ms
Video::updateTextureWithFrame took 48.1365ms
Video::updateTextureWithFrame took 49.8857ms
Video::updateTextureWithFrame took 47.4854ms
Video::updateTextureWithFrame took 48.2378ms
Video::updateTextureWithFrame took 50.9174ms
Video::updateTextureWithFrame took 52.347ms
Video::updateTextureWithFrame took 51.6252ms
Video::updateTextureWithFrame took 52.2018ms
Video::updateTextureWithFrame took 49.2384ms
Video::updateTextureWithFrame took 50.9491ms
Video::updateTextureWithFrame took 52.2139ms
Video::updateTextureWithFrame took 53.3229ms
Video::updateTextureWithFrame took 56.0199ms
Video::updateTextureWithFrame took 55.582ms
Video::updateTextureWithFrame took 55.2675ms
Video::updateTextureWithFrame took 54.9446ms
Video::updateTextureWithFrame took 54.7955ms
Video::updateTextureWithFrame took 54.0296ms
Video::updateTextureWithFrame took 54.0375ms
Video::updateTextureWithFrame took 57.0916ms
Video::updateTextureWithFrame took 55.2474ms
Video::updateTextureWithFrame took 56.8046ms
Video::updateTextureWithFrame took 57.562ms
Video::updateTextureWithFrame took 59.9115ms
Video::updateTextureWithFrame took 59.3991ms
Video::updateTextureWithFrame took 60.0536ms
Video::updateTextureWithFrame took 59.9457ms
Video::updateTextureWithFrame took 57.5088ms
Video::updateTextureWithFrame took 59.1255ms
Video::updateTextureWithFrame took 62.2311ms
Video::updateTextureWithFrame took 59.0422ms
Video::updateTextureWithFrame took 62.0419ms
Video::updateTextureWithFrame took 62.0586ms
Video::updateTextureWithFrame took 64.0988ms
Video::updateTextureWithFrame took 64.743ms
Video::updateTextureWithFrame took 63.008ms
Video::updateTextureWithFrame took 65.1726ms
Video::updateTextureWithFrame took 63.3618ms
Video::updateTextureWithFrame took 65.6431ms
Video::updateTextureWithFrame took 63.8957ms
Video::updateTextureWithFrame took 65.1142ms
Video::updateTextureWithFrame took 67.2243ms
Video::updateTextureWithFrame took 65.1302ms
Video::updateTextureWithFrame took 66.4947ms
Video::updateTextureWithFrame took 66.092ms
Video::updateTextureWithFrame took 68.6997ms
Video::updateTextureWithFrame took 70.5683ms
Video::updateTextureWithFrame took 71.9019ms
Video::updateTextureWithFrame took 68.6088ms
Video::updateTextureWithFrame took 70.7946ms
Video::updateTextureWithFrame took 68.263ms
Video::updateTextureWithFrame took 66.1565ms
Video::updateTextureWithFrame took 70.6742ms
Video::updateTextureWithFrame took 70.7035ms
Video::updateTextureWithFrame took 73.8002ms
Video::updateTextureWithFrame took 73.1897ms
Video::updateTextureWithFrame took 74.006ms
Video::updateTextureWithFrame took 74.1048ms
Video::updateTextureWithFrame took 72.9378ms
Video::updateTextureWithFrame took 75.0651ms
Video::updateTextureWithFrame took 73.5676ms
Video::updateTextureWithFrame took 73.7706ms
Video::updateTextureWithFrame took 74.0839ms
Video::updateTextureWithFrame took 74.6773ms
Video::updateTextureWithFrame took 75.8827ms
Video::updateTextureWithFrame took 74.4724ms
Video::updateTextureWithFrame took 75.2119ms
Video::updateTextureWithFrame took 83.4102ms
Video::updateTextureWithFrame took 77.6811ms
Video::updateTextureWithFrame took 78.7307ms
Video::updateTextureWithFrame took 80.1705ms
Video::updateTextureWithFrame took 78.6064ms
Video::updateTextureWithFrame took 80.803ms
Video::updateTextureWithFrame took 80.0117ms
Video::updateTextureWithFrame took 78.2948ms
Video::updateTextureWithFrame took 81.0375ms
Video::updateTextureWithFrame took 78.7389ms
Video::updateTextureWithFrame took 80.2201ms
Video::updateTextureWithFrame took 82.8578ms
Video::updateTextureWithFrame took 84.2388ms
Video::updateTextureWithFrame took 84.6484ms
Video::updateTextureWithFrame took 87.6683ms
Video::updateTextureWithFrame took 82.8939ms
Video::updateTextureWithFrame took 84.015ms
Video::updateTextureWithFrame took 88.1832ms
Video::updateTextureWithFrame took 83.3894ms
Video::updateTextureWithFrame took 86.9088ms
Video::updateTextureWithFrame took 87.1049ms
Video::updateTextureWithFrame took 87.6748ms
Video::updateTextureWithFrame took 87.178ms
Video::updateTextureWithFrame took 84.7988ms
Video::updateTextureWithFrame took 89.528ms
Video::updateTextureWithFrame took 88.7021ms
Video::updateTextureWithFrame took 90.0357ms
Video::updateTextureWithFrame took 90.398ms
Video::updateTextureWithFrame took 87.8047ms
Video::updateTextureWithFrame took 90.2447ms
Video::updateTextureWithFrame took 94.6288ms
Video::updateTextureWithFrame took 88.9265ms
Video::updateTextureWithFrame took 89.01ms
Video::updateTextureWithFrame took 87.6294ms
Video::updateTextureWithFrame took 90.6988ms
Video::updateTextureWithFrame took 93.0173ms
Video::updateTextureWithFrame took 92.1651ms
Video::updateTextureWithFrame took 92.9234ms
Video::updateTextureWithFrame took 95.4223ms
Video::updateTextureWithFrame took 99.0941ms
Video::updateTextureWithFrame took 97.3014ms
Video::updateTextureWithFrame took 91.8709ms
Video::updateTextureWithFrame took 96.8951ms
Video::updateTextureWithFrame took 95.3506ms
Video::updateTextureWithFrame took 96.5474ms
Video::updateTextureWithFrame took 92.4739ms
Video::updateTextureWithFrame took 95.1857ms
Video::updateTextureWithFrame took 96.6743ms
Video::updateTextureWithFrame took 99.0657ms
Video::updateTextureWithFrame took 105.84ms
Video::updateTextureWithFrame took 99.3163ms
Video::updateTextureWithFrame took 127.942ms
Video::updateTextureWithFrame took 101.378ms
Video::updateTextureWithFrame took 98.6114ms
Video::updateTextureWithFrame took 101.161ms
Video::updateTextureWithFrame took 102.271ms
Video::updateTextureWithFrame took 100.77ms
Video::updateTextureWithFrame took 100.825ms
Video::updateTextureWithFrame took 100.64ms
Video::updateTextureWithFrame took 99.7002ms
Video::updateTextureWithFrame took 103.207ms
Video::updateTextureWithFrame took 107.135ms
Video::updateTextureWithFrame took 100.766ms
Video::updateTextureWithFrame took 103.321ms
Video::updateTextureWithFrame took 107.361ms
Video::updateTextureWithFrame took 104.086ms
Video::updateTextureWithFrame took 100.975ms
Video::updateTextureWithFrame took 105.846ms
Video::updateTextureWithFrame took 104.755ms
Video::updateTextureWithFrame took 105.893ms
Video::updateTextureWithFrame took 105.234ms
Video::updateTextureWithFrame took 109.415ms
Video::updateTextureWithFrame took 107.942ms
Video::updateTextureWithFrame took 109.816ms
Video::updateTextureWithFrame took 109.268ms
Video::updateTextureWithFrame took 111.918ms
Video::updateTextureWithFrame took 110.123ms
Video::updateTextureWithFrame took 109.975ms
Video::updateTextureWithFrame took 110.105ms
Video::updateTextureWithFrame took 115.888ms
Video::updateTextureWithFrame took 112.443ms
Video::updateTextureWithFrame took 111.795ms
Video::updateTextureWithFrame took 112.016ms
Video::updateTextureWithFrame took 115.857ms
Video::updateTextureWithFrame took 114.762ms
Video::updateTextureWithFrame took 112.551ms
Video::updateTextureWithFrame took 116.05ms
Video::updateTextureWithFrame took 119.133ms
Video::updateTextureWithFrame took 114.202ms
Video::updateTextureWithFrame took 119.864ms
Video::updateTextureWithFrame took 119.743ms
Video::updateTextureWithFrame took 119.911ms
Video::updateTextureWithFrame took 120.957ms
Video::updateTextureWithFrame took 117.611ms
Video::updateTextureWithFrame took 116.596ms
Video::updateTextureWithFrame took 116.859ms
Video::updateTextureWithFrame took 120.355ms
Video::updateTextureWithFrame took 121.932ms
Video::updateTextureWithFrame took 117.56ms
Video::updateTextureWithFrame took 122.747ms
Video::updateTextureWithFrame took 120.103ms
Video::updateTextureWithFrame took 123.497ms
Video::updateTextureWithFrame took 126.391ms
Video::updateTextureWithFrame took 123.512ms
Video::updateTextureWithFrame took 121.612ms
Video::updateTextureWithFrame took 130.169ms
Video::updateTextureWithFrame took 126.936ms
Video::updateTextureWithFrame took 122.812ms
Video::updateTextureWithFrame took 122.843ms
Video::updateTextureWithFrame took 124.214ms
Video::updateTextureWithFrame took 125.563ms
Video::updateTextureWithFrame took 128.024ms
Video::updateTextureWithFrame took 129.263ms
Video::updateTextureWithFrame took 130.028ms
Video::updateTextureWithFrame took 127.493ms
Video::updateTextureWithFrame took 129.553ms
Video::updateTextureWithFrame took 130.538ms
Video::updateTextureWithFrame took 22.6048ms
Video::updateTextureWithFrame took 20.2454ms
Video::updateTextureWithFrame took 19.9947ms
Video::updateTextureWithFrame took 21.2817ms
Video::updateTextureWithFrame took 22.6694ms
Video::updateTextureWithFrame took 25.5187ms
Video::updateTextureWithFrame took 19.8971ms
Video::updateTextureWithFrame took 22.2975ms
Video::updateTextureWithFrame took 21.4979ms
Video::updateTextureWithFrame took 25.6767ms
Video::updateTextureWithFrame took 23.4276ms
Video::updateTextureWithFrame took 25.5657ms
Video::updateTextureWithFrame took 23.2816ms
Video::updateTextureWithFrame took 26.8515ms
Video::updateTextureWithFrame took 24.0271ms
Video::updateTextureWithFrame took 24.4675ms
Video::updateTextureWithFrame took 25.6897ms
Video::updateTextureWithFrame took 28.7489ms
Video::updateTextureWithFrame took 24.6164ms
Video::updateTextureWithFrame took 29.6739ms
Video::updateTextureWithFrame took 27.8118ms
Video::updateTextureWithFrame took 30.3992ms
Video::updateTextureWithFrame took 28.2943ms
Video::updateTextureWithFrame took 29.9693ms
Video::updateTextureWithFrame took 30.6129ms