
Recherche avancée
Médias (91)
-
Chuck D with Fine Arts Militia - No Meaning No
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Paul Westerberg - Looking Up in Heaven
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Le Tigre - Fake French
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Thievery Corporation - DC 3000
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Dan the Automator - Relaxation Spa Treatment
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Gilberto Gil - Oslodum
15 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (60)
-
MediaSPIP Core : La Configuration
9 novembre 2010, parMediaSPIP Core fournit par défaut trois pages différentes de configuration (ces pages utilisent le plugin de configuration CFG pour fonctionner) : une page spécifique à la configuration générale du squelettes ; une page spécifique à la configuration de la page d’accueil du site ; une page spécifique à la configuration des secteurs ;
Il fournit également une page supplémentaire qui n’apparait que lorsque certains plugins sont activés permettant de contrôler l’affichage et les fonctionnalités spécifiques (...) -
Gestion des droits de création et d’édition des objets
8 février 2011, parPar défaut, beaucoup de fonctionnalités sont limitées aux administrateurs mais restent configurables indépendamment pour modifier leur statut minimal d’utilisation notamment : la rédaction de contenus sur le site modifiables dans la gestion des templates de formulaires ; l’ajout de notes aux articles ; l’ajout de légendes et d’annotations sur les images ;
-
HTML5 audio and video support
13 avril 2011, parMediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
For older browsers the Flowplayer flash fallback is used.
MediaSPIP allows for media playback on major mobile platforms with the above (...)
Sur d’autres sites (7927)
-
Anomalie #2020 : Rendre optionnelles les extensions
8 juin 2011, par guytarr °Bon, à présent ça me parait peu réaliste de vouloir un spip fonctionnel sans extensions. Par contre, si certaines sont nécessaires, d’autres devraient être vraiment optionnelles. Je pense notamment à breves, sites, petitions, mots, organiseur, grenier, squelettes_par_rubrique, statistiques... Or, (...)
-
Anomalie #2020 (Nouveau) : Rendre optionnelles les extensions
4 avril 2011, par Guy CesaroSans extensions, on a certaines erreurs qui me paraissent évitables : Les boucles forums et documents dans les modèles du privé devraient prendre le ? pour boucler sur des tables absentes sans erreur, elles n’en marcheraient pas moins bien lorsque l’extension est là. ex : Il manque un (...)
-
How do I force an IDR-frame using the x264 C API ?
28 octobre 2020, par KeithI am attempting to use an external bool signal to force the next encoded frame to be an IDR-frame using the x264 C API. I am using the "baseline" profile with the "ultrafast" and "zerolatency" presets. I tried to use the input pic settings prior to encoding, as in this code snippet, but this has not worked. My class Open() and Encode() methods are shown here. Any help will be appreciated.


int X264Encoder::Open(void)
{
 if (_x264VideoEncoder != NULL)
 Close();

 // Set up default parameters.
 if (x264_param_default_preset(&_param, _encoderSpeedPreset.c_str(), "zerolatency") < 0) // 0=success, -1=failed
 { _errStr = "X264Encoder::Open: Default parameter preset failed with " + _encoderSpeedPreset; return(0); }

 // Set non-default params.
 _param.i_bitdepth = 8;
 _param.i_csp = _colourSpaceMapping[_colourSpace]; // Input colour space
 if(!_param.i_csp)
 { _errStr = "X264Encoder::Open: Incompatible colour space " + to_string(_colourSpace); return(0); }
 _param.i_width = _width;
 _param.i_height = _height;
 _param.i_fps_num = _videoRateNumerator;
 _param.i_fps_den = _videoRateDenominator;

 _param.rc.i_bitrate = _avgBitsPerSecond / 1000; // bitrate units are in kbits/s

 _param.i_threads = 1;
 _param.b_vfr_input = 0; // VFR input. If 1, use timebase and timestamps for ratecontrol purposes. If 0, use fps only.
 _param.b_repeat_headers = 1; // Put SPS/PPS before each keyframe
 _param.b_annexb = 1; // If set, place start codes (4 bytes) before NAL units, otherwise place size (4 bytes) before NAL units.

 // Apply profile restrictions.
 if (x264_param_apply_profile(&_param, _profile.c_str()) < 0) // 0=success, -1=failed
 { _errStr = "X264Encoder::Open: Unable to set profile " + _profile; return(0); }

 // Initialise the encoder input pic buffer.
 if (x264_picture_alloc(&_picIn, _param.i_csp, _param.i_width, _param.i_height) < 0)
 { _errStr = "X264Encoder::Open: Unable to alloc input picture buffer"; return(0); }
 _inPicIsAllocated = true;

 // Instantiate the encoder.
 _x264VideoEncoder = x264_encoder_open(&_param);
 if (_x264VideoEncoder == NULL)
 {
 _errStr = "X264Encoder::Open: Unable to instantiate the encoder"; 
 // Clean up before exit.
 x264_picture_clean(&_picIn);
 _inPicIsAllocated = false;
 return(0);
 }//end if !_x264VideoEncoder...

 // Frame counting for pts timestamps.
 _frameNum = 0;
 _lastPicType = 0; // IDR-frame

 d.clear();

 return(1);
}//end Open.

int X264Encoder::Encode(void* pSrc, void* pCmp, void* codeParameter)
{
 _encodedFrameSize = 0;

 // Validation house work.
 if(!Ready())
 { _errStr = "X264Encoder::Encode: Not ready"; return(0); }

 if(!pSrc || !pCmp)
 { _errStr = "X264Encoder::Encode: Invalid function parameter list"; return(0); }

 // Load input image. 
 if(_param.i_csp != X264_CSP_I420) // Can only process I420 input colour space.
 { _errStr = "X264Encoder::Encode: I420 colour space required"; return(0); }
 uint32_t lumSize = _width * _height;
 uint32_t chrSize = lumSize / 4;
 // Transfer the input source image into the x264 picture img structure.
 uint8_t* pImg = static_cast(pSrc);
 memcpy_s(_picIn.img.plane[0], lumSize, pImg, lumSize);
 pImg += lumSize;
 memcpy_s(_picIn.img.plane[1], chrSize, pImg, chrSize);
 pImg += chrSize;
 memcpy_s(_picIn.img.plane[2], chrSize, pImg, chrSize);

 // Encode single frame
 _picIn.i_pts = _frameNum;
 if (_idrFrameRequired) 
 { 
 _picIn.i_type = X264_TYPE_IDR; 
 //... and clear the signal.
 _idrFrameRequired = false; 
 }//end if _idrFrameRequired...
 else 
 _picIn.i_type = X264_TYPE_AUTO;

 _encodedFrameSize = x264_encoder_encode(_x264VideoEncoder, &_nal, &_nalCnt, &_picIn, &_picOut);
 if (_encodedFrameSize > 0)
 {
 // Write the encoded stream to the output.
 uint8_t* pOut = static_cast(pCmp);
 memcpy_s(pOut, _encodedFrameSize, _nal->p_payload, _encodedFrameSize);
 }//end else if _encodedFrameSize...
 else
 { _errStr = "X264Encoder::Encode: Encode process failed"; return(0); }

 _lastPicType = 1; // Non-IDR
 if (_picOut.i_type == X264_TYPE_IDR)
 _lastPicType = 0; // IDR

 d.push_back({ _encodedFrameSize, _lastPicType });

 _frameNum++;
 return(1);
}//end Encode...