Recherche avancée

Médias (1)

Mot : - Tags -/net art

Autres articles (99)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 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, par

    Explications 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, par

    Certains 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’s H.264/AAC using FFmpeg 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 that Audio Queue Services lead to high memory allocation, and then crash ! Does anybody know how to improve the memory performance ? Here is my code for Audio 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 &lt; [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(&amp;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(&amp;dataFormat, AQOutputCallback, (__bridge void *)self, NULL, NULL, 0, &amp;queue);
       if (status == noErr) {
           buffers = [NSMutableArray array];
           reusableBuffers = [NSMutableArray array];
           for (int i = 0; i &lt; kNumberBuffers; i++) {
               AudioQueueBufferRef buffer;
               status = AudioQueueAllocateBuffer(queue, kBufferSize, &amp;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, &amp;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 Mukherjee

    Changed 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 64x64

    Framework 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 2021

    Bonjour Cédric,

    C’est super !
    Il faudrait juste un
    avant le et ce sera parfait.

    Un grand merci à toi.