{5} Assigned, Active Tickets by Owner (Full Description) (9 matches)
List tickets assigned, group by ticket owner. This report demonstrates the use of full-row display.
aknudsen
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #39 | default output latency will lead to bad pops | host-api-alsa | defect | 11/29/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
We use paFramesPerBufferUnspecified, but set a higher output latency (because default output latency will lead to bad pops at least on ALSA/v19 -- this has been reported by a number of people already.) The API will then calculate a reliable buffer size for you automatically. No problems with this strategy so far. Markus |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
bjornroche
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #46 | getStreamTime goes out of whack on Mac OS X when plugging/unplugging headphones | host-api-coreaudio | defect | 01/17/07 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
On Jan 16, 2007, at 9:24 PM, Brant Sears wrote:
I'm sorry to say this looks like a bug. I get similar results when I plug/unplug the headphones on my MacBook? and I run patest_time. It seems OS X doesn't just let the sound-card handle this changeover -- it has to intervene and treat the headphone output as a new device. I'm sure PortAudio could add a listener for this change and update it's own "startTime", but it seems it would be hard to guarantee that this change happened at the same time as the plug/unplug -- at least from the perspective of another thread. So the downside of this fix is that there could be a moment where there's a huge jump in time before it settles back to the right time. The only workaround that seems like it would work, would be to use the timing information from the callback, which seems to stay on track. I have generally considered this info to be less up-to-date than the info coming from AudioDeviceGetCurrentTime?, but it seems hard to create a high-latency situation on Mac OS X, so maybe it's good enough for most people. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #40 | Support OS X 10.3 | host-api-coreaudio | enhancement | 11/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
PortAudio currently does not support OS X 10.3. The dependence on 10.4 is due to Memory barriers which are more reliable in 10.4 than they are in 10.3. It might be possible to use weak linking to support 10.3, albeit without memory barriers, but the situation is not clear. Other options have been discussed on the mailing list. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #41 | Support "Default Device" in Core Audio | host-api-coreaudio | enhancement | 11/30/06 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mac OS X supports what it calls the "default audio device", which is different from the device that happens to be the default. The "Default Audio Device" may change if a device is plugged or unplugged. For example, this behavior can be seen in !iTunes: if you use the control panel to set the default device to a USB device and then unplug the device, !iTunes will keep playing, but switches to another device. CoreAudio probably takes care of most of the troubling stuff in this transition, but it isn't clear what happens when the number of channels changes, or what other things need to be handled by he CoreAudio client. Certainly any converters the client is responsible for (such as input SR conversion) would need to be changed. Another thing that's unclear is how this device should be presented to PortAudio clients. Should it be another device, or should it be used whenever the user selects the device that happens to be the default? or calls OpenDefaultStream? Or should it only be reachable using platform specific calls, since this is not a normal behavior in PortAudio? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #45 | CoreAudio may not use the ideal buffer size in the presence of sample rate conversion | bindings | enhancement | 01/15/07 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
At the moment, core audio asks the device for a buffer size that is the same as the buffer size requested by the user. This makes sense and works well as long as SR conversion is not taking place. In the presence of SR conversion, a sample frame on the device no longer corresponds to a user sample frame. It would be good if this could be adapted in a better way, if possible, as it would reduce the chances of dropouts, and possibly reduce the CPU usage a bit. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
rossb
| Ticket | Summary | Component | Milestone | Type | Created | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #57 | blocking i/o not implemented for asio | host-api-asio | V19-RC1 | defect | 08/31/07 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ReadStream? and WriteStream? are not implemented for ASIO. It is necessary to set up separate ring buffers to implement this. If the Read or Write functions were blocked waiting to input or output data to the FIFOs the ASIO callback could set an event/condition variable to wake them up. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #18 | Patch to expose device "handle" to applications | common | V19-RC1 | enhancement | 09/14/06 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Refer to mailing list discussion on PortMixer? and exposing devices for a full understanding of the changes: diff -wruN orig/audacity/lib-src/portaudio-v19/include/portaudio.h audacity/lib-src/portaudio-v19/include/portaudio.h
--- orig/audacity/lib-src/portaudio-v19/include/portaudio.h 2006-09-04 14:05:58.000000000 -0500
+++ audacity/lib-src/portaudio-v19/include/portaudio.h 2006-09-04 05:30:19.000000000 -0500
@@ -1105,6 +1105,15 @@
signed long Pa_GetStreamWriteAvailable( PaStream* stream );
+/** Retrieve the host type handling an open stream.
+
+ @return Returns a non-negative value representing the host API type
+ handling an open stream or, a PaErrorCode (which are always negative)
+ if PortAudio is not initialized or an error is encountered.
+*/
+PaHostApiTypeId Pa_GetStreamHostApiType( PaStream* stream );
+
+
/* Miscellaneous utilities */
diff -wruN orig/audacity/lib-src/portaudio-v19/src/common/pa_front.c audacity/lib-src/portaudio-v19/src/common/pa_front.c
--- orig/audacity/lib-src/portaudio-v19/src/common/pa_front.c 2006-09-04 14:05:59.000000000 -0500
+++ audacity/lib-src/portaudio-v19/src/common/pa_front.c 2006-09-04 05:30:19.000000000 -0500
@@ -1327,8 +1327,10 @@
hostApiInputParametersPtr, hostApiOutputParametersPtr,
sampleRate, framesPerBuffer, streamFlags, streamCallback, userData );
- if( result == paNoError )
+ if( result == paNoError ) {
AddOpenStream( *stream );
+ PA_STREAM_REP(*stream)->hostApiType = hostApi->info.type;
+ }
#ifdef PA_LOG_API_CALLS
@@ -1915,6 +1917,33 @@
}
+PaHostApiTypeId Pa_GetStreamHostApiType( PaStream* stream )
+{
+ PaError error = PaUtil_ValidateStreamPointer( stream );
+ PaHostApiTypeId result;
+
+#ifdef PA_LOG_API_CALLS
+ PaUtil_DebugPrint("Pa_GetStreamHostApiType called:\n" );
+ PaUtil_DebugPrint("\tPaStream* stream: 0x%p\n", stream );
+#endif
+
+ if( error == paNoError )
+ {
+ result = PA_STREAM_REP(stream)->hostApiType;
+ }
+ else
+ {
+ result = (PaHostApiTypeId) error;
+ }
+
+#ifdef PA_LOG_API_CALLS
+ PaUtil_DebugPrint("Pa_GetStreamHostApiType returned:\n" );
+ PaUtil_DebugPrint("\tPaError: %d ( %s )\n\n", result, Pa_GetErrorText( result ) );
+#endif
+
+ return result;
+}
+
PaError Pa_GetSampleSize( PaSampleFormat format )
{
int result;
diff -wruN orig/audacity/lib-src/portaudio-v19/src/common/pa_stream.c audacity/lib-src/portaudio-v19/src/common/pa_stream.c
--- orig/audacity/lib-src/portaudio-v19/src/common/pa_stream.c 2006-09-04 14:05:59.000000000 -0500
+++ audacity/lib-src/portaudio-v19/src/common/pa_stream.c 2006-09-04 05:30:19.000000000 -0500
@@ -93,6 +93,8 @@
streamRepresentation->streamInfo.inputLatency = 0.;
streamRepresentation->streamInfo.outputLatency = 0.;
streamRepresentation->streamInfo.sampleRate = 0.;
+
+ streamRepresentation->hostApiType = 0;
}
diff -wruN orig/audacity/lib-src/portaudio-v19/src/common/pa_stream.h audacity/lib-src/portaudio-v19/src/common/pa_stream.h
--- orig/audacity/lib-src/portaudio-v19/src/common/pa_stream.h 2006-09-04 14:05:59.000000000 -0500
+++ audacity/lib-src/portaudio-v19/src/common/pa_stream.h 2006-09-04 05:30:19.000000000 -0500
@@ -152,6 +152,7 @@
PaStreamFinishedCallback *streamFinishedCallback;
void *userData;
PaStreamInfo streamInfo;
+ PaHostApiTypeId hostApiType;
} PaUtilStreamRepresentation;
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #49 | Default device is paNoDevice if the Default API contains no devices. | common | V19-RC1 | defect | 04/04/07 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
From Eliot Blennerhassett: If portaudio is built with support for more than one API, and the default API has no devices (or is not installed), then Pa_GetDefault[Input| Output]Device() returns an error paNoDevice, even if other APIs have available devices. The following patch returns the first available device from any API if one isn't available from the default API. (I guess this could be turned around, and ensure that the default API has at least one device!) Index: pa_front.c =================================================================== --- pa_front.c (revision 1182) +++ pa_front.c (working copy) @@ -747,6 +747,17 @@
+ if (result == paNoDevice) + { + hostApi=0; + while (hostApis_[hostApi]) + { + result = hostApis_[hostApi]->info.defaultInputDevice; + if (result != paNoDevice) + break; + hostApi++; + } + }
@@ -775,6 +786,17 @@
+ if (result == paNoDevice) + { + hostApi=0; + while (hostApis_[hostApi]) + { + result = hostApis_[hostApi]->info.defaultOutputDevice; + if (result != paNoDevice) + break; + hostApi++; + } + }
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| #8 | src/hostapi/asio/ASIO-README.txt possibly out of date | host-api-asio | V19-RC1 | task | 08/23/06 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
This file needs to be reviewed to see whether all of its contents are current. Possibly some contents are already in the tutorial or elsewhere. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
