Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

#include "MemoryOutputModule.h"
#include <decoder.h>

int memory_output_module_probe(const char *name)
{
        ByteVector* aByteVector = (ByteVector*) atoi(name);

        if (aByteVector == NULL)
                return XA_ERROR_INVALID_PARAMETERS;

        return XA_SUCCESS;
}

int memory_output_module_query(XA_OutputModuleQuery *query,
                                 unsigned long query_mask)
{
        return XA_SUCCESS;
}

int   memory_output_new(XA_OutputInstance **output, const char *name,
                        XA_OutputModuleClassInfo *class_info,
                        XA_DecoderInfo *decoder)
{
       
        *output = (XA_OutputInstance*) atoi(name);
        MemoryOutput* aMemoryOutput = (MemoryOutput*) *output;

        return XA_SUCCESS;
}

int   memory_output_delete(XA_OutputInstance *output)
{      
        return XA_SUCCESS;
}

int memory_output_open(XA_OutputInstance *output)
{
        return XA_SUCCESS;
}

int memory_output_close(XA_OutputInstance *output)
{
        return XA_SUCCESS;
}

int   memory_output_write(XA_OutputInstance *output, const void *buffer,
                      unsigned long size, unsigned int bytes_per_sample,
                      unsigned int nb_channels, unsigned int sample_rate)
{
        MemoryOutput* aMemoryOutput = (MemoryOutput*) output;

        aMemoryOutput->mBitsPerSample = bytes_per_sample*8;
        aMemoryOutput->mNumChannels = nb_channels;
        aMemoryOutput->mSamplingRate = sample_rate;

        aMemoryOutput->mByteVector.insert(aMemoryOutput->mByteVector.end(),
                (const unsigned char*) buffer,
                (const unsigned char*) buffer + size);

        return XA_SUCCESS;
}

int memory_output_module_register(XA_OutputModule *module)
{
        module->api_version_id = XA_SYNC_API_VERSION;
        module->output_module_probe = memory_output_module_probe;
        module->output_module_query = memory_output_module_query;
        module->output_new = memory_output_new;
        module->output_delete = memory_output_delete;
        module->output_open = memory_output_open;
        module->output_close = memory_output_close;
        module->output_write = memory_output_write;
        module->output_get_buffer = NULL;
        module->output_set_control = NULL;
        module->output_get_control = NULL;
        module->output_get_status = NULL;
        module->output_get_caps = NULL;
        module->output_send_message = NULL;    

        return XA_SUCCESS;
}