
Recherche avancée
Autres articles (59)
-
MediaSPIP v0.2
21 juin 2013, parMediaSPIP 0.2 est la première version de MediaSPIP stable.
Sa date de sortie officielle est le 21 juin 2013 et est annoncée ici.
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Comme pour la version précédente, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
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 ;
Sur d’autres sites (3130)
-
Revision 0fe8304d0b : Merge "Properly handle the boundary blocks for integral projection search"
4 mars 2015, par Jingning HanChanged Paths :
Modify /vp9/encoder/vp9_encodeframe.c
Merge "Properly handle the boundary blocks for integral projection search" -
How to get CVPixelBuffer handle from UnsafeMutablePointer in Swift ?
8 mars 2021, par Chen OTI got a decoded AVFrame whose format shows 160/
Videotoolbox_vld
. After googled some articles(here) and viewed the FFmpeg source code(here, and here), theCVBuffer
handle should be atAVFrame.data[3]
. But theCVBuffer
I got seems invalid, anyCVPixelBufferGetXXX()
function returns 0 or nil.


If I used the
av_hwframe_transfer_data()
like the ffmpeg's example/hw_decode.c did, the sample can be downloaded from HW to SW buffer. ItsAVFrame.format
will benv12
. After converted viasws_scale
tobgra
, the sample can be showed on view with correct content.


I think the VideoToolbox decoded frame is OK. The way I convert
AVFrame.data[3]
toCVBuffer
may be wrong. Just learned accessing c pointer in swift but I am not sure how to read a resource handle(CVBuffer) in a pointer correctly.


The following is how I try to extract CVBuffer from AVFrame



var pFrameOpt: UnsafeMutablePointer<avframe>? = av_frame_alloc()
avcodec_receive_frame(..., pFrameOpt)

let data3: UnsafeMutablePointer<uint8>? = pFrameOpt?.pointee.data.3
data3?.withMemoryRebound(to: CVBuffer.self, capacity: 1) { pCvBuf in
 let fW = pFrameOpt!.pointee.width // print 3840
 let fH = pFrameOpt!.pointee.height // print 2160
 let fFmt = pFrameOpt!.pointee.format // print 160

 let cvBuf: CVBuffer = pCvBuf.pointee

 let a1 = CVPixelBufferGetDataSize(cvBuf) // print 0
 let a2 = CVPixelBufferGetPixelFormatType(cvBuf) // print 0
 let a3 = CVPixelBufferGetWidth(cvBuf) // print 0
 let a4 = CVPixelBufferGetHeight(cvBuf) // print 0
 let a5 = CVPixelBufferGetBytesPerRow(cvBuf) // print 0
 let a6 = CVPixelBufferGetBytesPerRowOfPlane(cvBuf, 0) // print 0
 let a7 = CVPixelBufferGetWidthOfPlane(cvBuf, 0) // print 0
 let a8 = CVPixelBufferGetHeightOfPlane(cvBuf, 0) // print 0
 let a9 = CVPixelBufferGetPlaneCount(cvBuf) // print 0
 let a10 = CVPixelBufferIsPlanar(cvBuf) // print false
 let a11 = CVPixelBufferGetIOSurface(cvBuf) // print nil
 let a12 = CVPixelBufferGetBaseAddress(cvBuf) // print nil
 let a13 = CVPixelBufferGetBaseAddressOfPlane(cvBuf, 0) // print nil

 let b1 = CVImageBufferGetCleanRect(cvBuf) // print 0, 0, 0, 0
 let b2 = CVImageBufferGetColorSpace(cvBuf) // print nil 
 let b3 = CVImageBufferGetDisplaySize(cvBuf) // print 0, 0, 0, 0
 let b4 = CVImageBufferGetEncodedSize(cvBuf) // print 0, 0, 0, 0
 let b5 = CVImageBufferIsFlipped(cvBuf) // print false

 // bad exec
 var cvTextureOut: CVMetalTexture?
 CVMetalTextureCacheCreateTextureFromImage(kCFAllocatorDefault, ..., cvBuf, nil, .bgra8Unorm, 3840, 2160, 0, ...) 


}
</uint8></avframe>


-
Revision 12b2c712ca : Merge "Updated encoder to handle intra-only frames"
16 octobre 2013, par Adrian GrangeChanged Paths :
Modify /vp9/encoder/vp9_encodeframe.c
Modify /vp9/encoder/vp9_onyx_if.c
Merge "Updated encoder to handle intra-only frames"