Opened 10 years ago

Last modified 5 years ago

#43161 new defect

baresip: error: AudioToolbox/AudioQueue.h: No such file or directory

Reported by: bsd@… Owned by: alfredh (Alfred E. Heggestad)
Priority: Normal Milestone:
Component: ports Version: 2.2.1
Keywords: tiger Cc:
Port: baresip

Description (last modified by ryandesign (Ryan Carsten Schmidt))

  CC [M]  build-ppc/modules/coreaudio/coreaudio.o
  CC [M]  build-ppc/modules/coreaudio/player.o
modules/coreaudio/player.c:6:37: error: AudioToolbox/AudioQueue.h: No such file or directory
modules/coreaudio/player.c:24: error: parse error before ‘AudioQueueRef’

AudioToolbox/AudioQueue.h not available on Tiger.

Attachments (1)

baresip.log (93.2 KB) - added by bsd@… 10 years ago.

Download all attachments as: .zip

Change History (9)

Changed 10 years ago by bsd@…

Attachment: baresip.log added

comment:1 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: tiger added; Baresip removed
Owner: changed from macports-tickets@… to aeh@…
Port: baresip added; Baresip-0.4.4 removed
Summary: Baresip build fails on OS 10.4baresip: error: AudioToolbox/AudioQueue.h: No such file or directory

We could add an earlier error message telling the user that this port is not compatible with Tiger.

If you want it to become compatible with Tiger, you'll have to write to the software's developers.

comment:2 Changed 5 years ago by alfredh (Alfred E. Heggestad)

I doubt that baresip will work at all on OSX 10.4

comment:3 Changed 5 years ago by kencu (Ken)

AudioToolbox was present from the beginning (10.0), but AudioQueue.h showed up in 10.5:

/Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/AudioToolbox.framework/Versions/A/Headers/AudioQueue.h

baresip appears to be building on 10.7 and up on the buildbots, and there is no binary from earlier versions.

comment:4 Changed 5 years ago by kencu (Ken)

I took at look. baresip used to be able to use

modules/qtcapture/qtcapture.m

to capture video, and that is compatible with older systems. The code is still there, however in the first case the circuitry to force that to be used instead of the newer AVFoundation interfaces seems not fully working -- it did work right if I allowed the software to fully autoconfigure itself.

But the fun doesn't seem to end there. The internal interfaces seem to have changed a bit. There is now a timestamp on every captured video frame, and the older qtcapture.m interface file doesn't seem to provide that timestamp. I'm guessing that module is not used much (or at all) and it hasn't been updated in a long time to keep up with changes elsewhere in the software.

I took a stab at extracting the frame timestamp from the qtkit frame session info that is delivered with the captured frame, but it didn't work after enough trying to make me stop. The internet is short on such examples, unfortunately. No doubt it is possible, for someone with experience in that area and the ambition to fix it.

So I would presently declare this as non-functional on 10.6 and earlier without surgery. Could be closed as "won't fix" or alternatively this ticket will stay here for who knows how long until it rots away, without upstream support, which seems unlikely.

comment:5 Changed 5 years ago by kencu (Ken)

I found the last release before the timestamp code was added was 0.5.8, and it turns out that this release, when left to configure itself, installs on 10.6.8 without any troubles.

$ port -v installed baresip
The following ports are currently installed:
  baresip @0.5.8_0 (active) platform='darwin 10' archs='x86_64' date='2018-12-27T20:13:47-0500'

So users < 10.7 could use that ( the qtcapture tech goes back a ways, so who knows, it might build on Tiger).

If there is a way to properly put a timestamp on the frames using either qttime or some other version of generating time files, it would probably work with the current version on 10.6 and who knows how much earlier...

comment:6 Changed 5 years ago by alfredh (Alfred E. Heggestad)

is there any interest in maintaining the qtcapture module ?

it is correct, the internal vidsrc api was changed. we added a timestamp parameter.

I dont have access to old OSX installations now, but if you managed to get the qtcapture to compile, you are welcome to send it here as a PR:

https://github.com/alfredh/baresip/issues

comment:7 Changed 5 years ago by kencu (Ken)

I can do the old OS bits without too much trouble. I get an odd enjoyment from keeping software relevant for older systems, in a reduce-reuse-recycle sort of frame of mind.

I get stuck in the implementation details for baresip, specifically the timebase.

When QTKit returns a captured frame, it also returns a structure with additional info including a presentationTime. I would need to learn how to access the presentationTime from that structure, and convert that into the timebase baresip wants.

If you have any insight/experience on how that is done, I'd appreciate your insight on that. Otherwise we can hold older systems back to version 0.5.8 until we get to that (and I need to tweak the configure args a bit).

comment:8 Changed 5 years ago by alfredh (Alfred E. Heggestad)

the timestamp value is an integer value representing the presentation timestamp of the video frame. The unit is VIDEO_TIMEBASE, defined here:

https://github.com/alfredh/baresip/blob/master/include/baresip.h#L874

the corresponding code for avfoundation module can be found here:

https://github.com/alfredh/baresip/blob/master/modules/avcapture/avcapture.m#L255

Note: See TracTickets for help on using tickets.