
Recherche avancée
Médias (29)
-
#7 Ambience
16 octobre 2011, par
Mis à jour : Juin 2015
Langue : English
Type : Audio
-
#6 Teaser Music
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#5 End Title
16 octobre 2011, par
Mis à jour : Février 2013
Langue : English
Type : Audio
-
#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
Autres articles (33)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
(Dés)Activation de fonctionnalités (plugins)
18 février 2011, parPour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...) -
Activation de l’inscription des visiteurs
12 avril 2011, parIl est également possible d’activer l’inscription des visiteurs ce qui permettra à tout un chacun d’ouvrir soit même un compte sur le canal en question dans le cadre de projets ouverts par exemple.
Pour ce faire, il suffit d’aller dans l’espace de configuration du site en choisissant le sous menus "Gestion des utilisateurs". Le premier formulaire visible correspond à cette fonctionnalité.
Par défaut, MediaSPIP a créé lors de son initialisation un élément de menu dans le menu du haut de la page menant (...)
Sur d’autres sites (5077)
-
Révision 18371 : Report de r18366 :
22 août 2011, par cedric -Manque dans l’analyseur de DTD : il ne verifie pas qu’un attribut de type NMTOKEN ou NMTOKENS ne contient que des noms. Utile pour certains attributs des balises d’en-tete dans la DTD XHTML Basic 1.1, mais curieusement pas pour l’attribut "class" qui est clairement un NMTOKENS pourtant. (...)
-
AVFrame in AV_PIX_FMT_YUV420P format to H*W*3 data buffer conversion using sws_scale not accurate ?
13 février 2024, par user3133806I have an AVFrame that is in YUV420 format and I am trying to convert to packed RGB in a data buffer :


// Allocate enough for 8 bits per color in RGB.
 // Note that I want packed, not planar. i.e. RGBRGBRGB...
 // Each pixel is 3 bytes of RGB in row-major order
 buffer = new unsigned char[frame->height * frame->width * 3];

 enum AVPixelFormat frameFormat =
 static_cast<enum avpixelformat="avpixelformat">(frame->format);

 // Make sure the input is in the expected format.
 CHECK_EQ(frameFormat, AV_PIX_FMT_YUV420P);

 SwsContext* swsContext = sws_getContext(
 frame->width,
 frame->height,
 frameFormat,
 frame->width,
 frame->height,
 AV_PIX_FMT_RGB24,

 // I played around with these flags but could not get an accurate image
 SWS_BICUBIC | SWS_ACCURATE_RND,
 nullptr,
 nullptr,
 nullptr);

 // My understanding is that because I am using packed format, not planar
 // I only need to fill in the first pointer.
 unsigned char* out_planes[4];
 out_planes[0] = buffer;
 out_planes[1] = nullptr;
 out_planes[2] = nullptr;
 out_planes[3] = nullptr;

 sws_scale(
 swsContext,
 frame->data,
 frame->linesize,
 0,
 frame->height,
 &out_planes,

 // My understanding is that the stride of each plane is frame->width * 3
 (const int[4]){frame->width * 3, 0, 0, 0});
 sws_freeContext(swsContext);

</enum>


This code does produce an image but the image appears to be wrong.


On a 300x200 video, the right few columns are wrong.


On a bigger resolution video the image seems correct, but on a smaller video it is not :






EDIT : It appears this is a bug in sws_scale (bug or expected feature). Turning off vector instructions causes it to work as expected :


// Adding this line before sws_scale causes the images to be bit exact.
av_set_cpu_flags_mask(0);



I got that idea from this answer on SO : Turn off sw_scale conversion to planar YUV 32 byte alignment requirements


-
intreadwrite : Add intermediate variables in the byteswise AV_W*() macros
1er août 2016, par Martin Storsjöintreadwrite : Add intermediate variables in the byteswise AV_W*() macros
This avoids issues with expanding the argument multiple times,
and makes sure that it is of the right type for the following shifts.Even if the caller of a macro could be expected not to pass parameters
that have side effects if expanded multiple times, these fallback
codepaths are rarely, if ever, tested, so it is expected that such
issues can arise.Thefore, for safety, make sure the fallback codepaths only expand
the arguments once.Signed-off-by : Martin Storsjö <martin@martin.st>