
Recherche avancée
Médias (1)
-
La conservation du net art au musée. Les stratégies à l’œuvre
26 mai 2011
Mis à jour : Juillet 2013
Langue : français
Type : Texte
Autres articles (99)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
Mise à jour de la version 0.1 vers 0.2
24 juin 2013, parExplications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...) -
Personnaliser en ajoutant son logo, sa bannière ou son image de fond
5 septembre 2013, parCertains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;
Sur d’autres sites (9699)
-
How to improve the performance of Audio Queue Services when playing audio ?
11 décembre 2014, par 谢小进I want to play
RTMP
’sH.264
/AAC
usingFFmpeg
for decoding and playing video,Audio Queue Services
for playing audio. I have successfully done them all, but still some tough issues, for example high memory allocation when playing audio. I have debugged and found thatAudio Queue Services
lead to high memory allocation, and then crash ! Does anybody know how to improve the memory performance ? Here is my code forAudio Queue Services
playing audio.//
// RTMPAudioPlayer.h
//
#import <foundation></foundation>Foundation.h>
#import <audiotoolbox></audiotoolbox>AudioToolbox.h>
@interface AQBuffer : NSObject
@property (nonatomic) AudioQueueBufferRef buffer;
@end
@interface RTMPAudioPlayer : NSObject {
AudioQueueRef queue;
AudioStreamBasicDescription dataFormat;
NSMutableArray *buffers;
NSMutableArray *reusableBuffers;
}
- (id)initWithSampleRate:(int)sampleRate channels:(int)channels bitsPerChannel:(int)bitsPerChannel;
- (void)start;
- (void)stop;
- (void)putData:(NSData *)data;
@end
//
// RTMPAudioPlayer.m
//
#import "RTMPAudioPlayer.h"
static const int kNumberBuffers = 3;
static const int kBufferSize = 0xA000;
@implementation AQBuffer
@end
@implementation RTMPAudioPlayer
void AQOutputCallback(void *inUserData, AudioQueueRef inAQ, AudioQueueBufferRef inCompleteAQBuffer) {
RTMPAudioPlayer *THIS = (__bridge RTMPAudioPlayer *)inUserData;
[THIS handleAQOutputCallback:inAQ buffer:inCompleteAQBuffer];
}
- (void)handleAQOutputCallback:(AudioQueueRef)audioQueue buffer:(AudioQueueBufferRef)buffer {
for (int i = 0; i < [buffers count]; ++i) {
if (buffer == [buffers[i] buffer]) {
[reusableBuffers addObject:buffers[i]];
break;
}
}
}
- (id)initWithSampleRate:(int)sampleRate channels:(int)channels bitsPerChannel:(int)bitsPerChannel {
self = [super init];
if (self) {
memset(&dataFormat, 0, sizeof(dataFormat));
dataFormat.mSampleRate = sampleRate;
dataFormat.mFormatID = kAudioFormatLinearPCM;
dataFormat.mFormatFlags = kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;
dataFormat.mBitsPerChannel = bitsPerChannel;
dataFormat.mChannelsPerFrame = channels;
dataFormat.mFramesPerPacket = 1;
dataFormat.mBytesPerFrame = (dataFormat.mBitsPerChannel / 8) * dataFormat.mChannelsPerFrame;
dataFormat.mBytesPerPacket = dataFormat.mBytesPerFrame * dataFormat.mFramesPerPacket;
}
return self;
}
- (void)start {
OSStatus status = AudioQueueNewOutput(&dataFormat, AQOutputCallback, (__bridge void *)self, NULL, NULL, 0, &queue);
if (status == noErr) {
buffers = [NSMutableArray array];
reusableBuffers = [NSMutableArray array];
for (int i = 0; i < kNumberBuffers; i++) {
AudioQueueBufferRef buffer;
status = AudioQueueAllocateBuffer(queue, kBufferSize, &buffer);
if (status == noErr) {
AQBuffer *bufferObj = [[AQBuffer alloc] init];
bufferObj.buffer = buffer;
[buffers addObject:bufferObj];
[reusableBuffers addObject:bufferObj];
} else {
AudioQueueDispose(queue, true);
queue = NULL;
break;
}
}
AudioQueueStart(queue, NULL);
} else {
queue = NULL;
}
}
- (void)stop {
if (queue) {
AudioQueueStop(queue, true);
}
}
- (void)putData:(NSData *)data {
AQBuffer *bufferObj = [reusableBuffers firstObject];
[reusableBuffers removeObject:bufferObj];
AudioQueueBufferRef buffer;
OSStatus status = AudioQueueAllocateBuffer(queue, kBufferSize, &buffer);
if (status == noErr) {
bufferObj = [[AQBuffer alloc] init];
bufferObj.buffer = buffer;
memcpy(bufferObj.buffer->mAudioData, [data bytes], [data length]);
bufferObj.buffer->mAudioDataByteSize = [data length];
AudioQueueEnqueueBuffer(queue, bufferObj.buffer, 0, NULL);
}
}
@end -
Revision 4b57a8b356 : Add extended transforms for 32x32 and 64x64 Framework for alternate transforms
17 juillet 2015, par Debargha MukherjeeChanged Paths :
Modify /test/quantize_test.cc
Modify /vp9/common/vp9_blockd.h
Modify /vp9/common/vp9_entropy.h
Modify /vp9/common/vp9_entropymode.c
Modify /vp9/common/vp9_entropymode.h
Modify /vp9/common/vp9_enums.h
Modify /vp9/common/vp9_idct.c
Modify /vp9/common/vp9_idct.h
Modify /vp9/common/vp9_idwt.c
Modify /vp9/common/vp9_idwt.h
Modify /vp9/common/vp9_rtcd_defs.pl
Modify /vp9/common/vp9_scan.c
Modify /vp9/common/vp9_scan.h
Modify /vp9/decoder/vp9_decodeframe.c
Modify /vp9/decoder/vp9_decodemv.c
Modify /vp9/encoder/vp9_bitstream.c
Modify /vp9/encoder/vp9_dwt.c
Modify /vp9/encoder/vp9_dwt.h
Modify /vp9/encoder/vp9_encodeframe.c
Modify /vp9/encoder/vp9_encodemb.c
Modify /vp9/encoder/vp9_encoder.c
Modify /vp9/encoder/vp9_encoder.h
Modify /vp9/encoder/vp9_rd.c
Modify /vp9/encoder/vp9_rdopt.c
Add extended transforms for 32x32 and 64x64Framework for alternate transforms for inter 32x32 and larger based
on dwt-dct hybrid is implemented.
Further experiments are to be condcuted with different
variations of hybrid dct/dwt or plain dwt, as well as super-resolution
mode.Change-Id : I9a2bf49ba317e7668002cf1499211d7da6fa14ad
-
Anomalie #4652 : [RGAA/HTM5] summary est déprécié en HTML5 (pour les tableaux)
19 février 2021Bonjour Cédric,
C’est super !
Il faudrait juste un
avant le et ce sera parfait.Un grand merci à toi.