File: SpursSpeexCInterface.cpp

package info (click to toggle)
openmohaa 0.82.1%2Bdfsg-1
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 34,192 kB
  • sloc: cpp: 315,720; ansic: 275,789; sh: 312; xml: 246; asm: 141; makefile: 7
file content (102 lines) | stat: -rw-r--r-- 3,473 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include "spursConfiguration.h"
#include "SpursSpeexCInterface.h"
#include <stdio.h>
#include "SpursSpeexTaskManager.h"
#include "spursSupportInterface.h"
#include <sys/spu_initialize.h> 

SpursSpeexTaskManager* gSpursSpeexTaskManager = 0;
SpursSupportInterface* gSpursSupport = 0;
const unsigned int MAX_SPURS_SPEEX_TASKS=1;


///initialize SPURS
int initializeSpursSampleTask()
{
	gSpursSupport = new SpursSupportInterface();
	
	gSpursSpeexTaskManager = new SpursSpeexTaskManager(gSpursSupport,MAX_SPURS_SPEEX_TASKS);
	return gSpursSpeexTaskManager->initialize();	
}

///not finished, need to pass proper data
int issueSampleTaskEncodeInit(int quality, int samplesPerFrame, SpursSpeexTaskOutput *taskOutput,  char *userAllocatedSpeexBuffer, int userAllocatedSpeexBufferSize)
{
	btAssert(gSpursSpeexTaskManager!=0);
	btAssert(gSpursSupport!=0);

	return gSpursSpeexTaskManager->issueEncodeInitTask(quality, samplesPerFrame, taskOutput,userAllocatedSpeexBuffer,userAllocatedSpeexBufferSize);

	//printf("issueSampleTaskEncodeInit called\n");	
}

///submit some work to SPURS
int issueSampleTaskEncode(short* inBuffer, int inBufferSize, int encodedFrameSize,  char *outBuffer, int outBufferSize, 
                          struct SpursSpeexTaskOutput *taskOuput,   char *userAllocatedSpeexBuffer, int userAllocatedSpeexBufferSize )
{
	btAssert(gSpursSpeexTaskManager!=0);
	btAssert(gSpursSupport!=0);

	return gSpursSpeexTaskManager->issueEncodeTask(inBuffer, inBufferSize, encodedFrameSize, outBuffer, outBufferSize, taskOuput,
		userAllocatedSpeexBuffer,userAllocatedSpeexBufferSize);

	//printf("issueSampleTaskEncode called\n");
}

int issueSampleTaskDecodeAdd(char *decoderStateBuffer, int decoderStateBufferSize, char *inBuffer, int inBufferSize, int encodedFrameSize,
								 short* outBuffer, int outBufferSize, struct SpursSpeexTaskOutput *taskOutput)
{
	btAssert(gSpursSpeexTaskManager!=0);
	btAssert(gSpursSupport!=0);

	return gSpursSpeexTaskManager->issueDecodeAddTask(decoderStateBuffer, decoderStateBufferSize, inBuffer, inBufferSize, encodedFrameSize,
		outBuffer, outBufferSize, taskOutput);

	//printf("issueSampleTaskDecode called\n");
}

int issueSampleTaskDecodeSet(char *decoderStateBuffer, int decoderStateBufferSize, char *inBuffer, int inBufferSize, int encodedFrameSize,
								 short* outBuffer, int outBufferSize, struct SpursSpeexTaskOutput *taskOutput)
{
	btAssert(gSpursSpeexTaskManager!=0);
	btAssert(gSpursSupport!=0);

	return gSpursSpeexTaskManager->issueDecodeSetTask(decoderStateBuffer, decoderStateBufferSize, inBuffer, inBufferSize, encodedFrameSize,
		outBuffer, outBufferSize, taskOutput);

	//printf("issueSampleTaskDecode called\n");
}

int issueSampleTaskDecodeInit(char *decoderStateBuffer, int decoderStateBufferSize, int sampleRate, struct SpursSpeexTaskOutput *taskOutput)
{
	btAssert(gSpursSpeexTaskManager!=0);
	btAssert(gSpursSupport!=0);

	return gSpursSpeexTaskManager->issueDecodeInitTask(decoderStateBuffer, decoderStateBufferSize, sampleRate, taskOutput);

	//printf("issueSampleTaskDecode called\n");
}


///wait for the work to be finished
/*
int flushSampleTask()
{
	btAssert(gSpursSpeexTaskManager!=0);
	btAssert(gSpursSupport!=0);

	//printf("flushSampleTask called\n");
}
*/

///shutdown SPURS
int shutdownSpursTask()
{
	btAssert(gSpursSpeexTaskManager!=0);
	btAssert(gSpursSupport!=0);
	delete gSpursSpeexTaskManager;
	delete gSpursSupport;
	if (spursConfiguration_terminate() != 0)
		return -1;
	return 0;
}