• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: How to correctly allocating CFStrings in an AudioFileRegionList?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to correctly allocating CFStrings in an AudioFileRegionList?


  • Subject: Re: How to correctly allocating CFStrings in an AudioFileRegionList?
  • From: Charles Constant <email@hidden>
  • Date: Sun, 18 Sep 2016 21:25:42 -0700

Hi Doug, I'm wondering if the test you ran, was an AudioFileMarkerList, as opposed to an AudioFileRegionList? I can get the former to work. I'm pretty certain the latter is broken now. 

I wasn't 100% clear how to handle the CFRefs, and whether I was taking padding into account for the allocation. I've examined that pretty carefully the last couple days... 

    AudioFileRegionList:
    https://pbs.twimg.com/media/CsoaLsMUkAACeYH.jpg:large

    Unmanaged CFString handling in Swift:
    https://pbs.twimg.com/media/CsLae9qVMAE2IGQ.jpg:large

I just had another go in Swift, and I'm pretty sure my code is correct now - but it still crashes.

If you confirm this still works with a Region list, not just a Marker list, I will keep trying. Otherwise, I ought to use a Marker list, as a workaround, and move on to other areas of my app. I'd prefer not to have a loose bag of range locations and conclusions, but it wouldn't be the end of the world.

Thanks!



















On Fri, Sep 16, 2016 at 12:48 PM, Doug Wyatt <email@hidden> wrote:
Hi Charles,

If you could please write a bug report and attach a crash log, we'll look into it. I have successfully written a small number of markers to a CAF file...

Thanks,
Doug


> On Sep 16, 2016, at 1:17 , Charles Constant <email@hidden> wrote:
>
> Judging by the lack of mentions anywhere on the internet, I don't think many people use AudioFileRegionLists. I have found one mention from 3 years ago, where the developer had similar results reading, as to what I am seeing with writing - in so far as only the first marker of the first region is reliably accessible.
>
> https://devforums.apple.com/message/759692#759692
>
> So I'm leaning toward a new theory, that it's not my CSStrings, but that this feature is broken. Can anyone confirm this?
>
> Thanks
>
> Charles
>
> PS: I also see a layer down, this might be possible using a CAFRegionChunk. Anyone had any luck with this?
>
>
>
> On Wed, Sep 14, 2016 at 8:53 PM, Charles Constant <email@hidden> wrote:
>
> I'm having a rather bad time getting AudioFileSetProperty to write an AudioFileRegionList to a CAF file. I suspect the problem is the way that I'm allocating CFStrings.
>
> Is this an appropriate way to allocate CFStrings when setting a marker.mName or region.mName?
>
>     rgn->mName = CFStringCreateWithFormat( kCFAllocatorDefault, NULL, CFSTR("Region-%d"), r );
>
>
>
> My problem is that if I try to create a List that contains more than one Region, as soon as I call AudioFileSetProperty, I get "EXC_BAD_ACCESS." This happens unless I use a very small quantity of regions and markers. The debugger shows the exact place where AudioFileSetProperty falls over as either "CFStringGetLength" or "CAFRegion_NtoB(CAFRegion*)".
>
>
>
> If I create only a single Region, and then use afinfo to view my file, I get this type of thing:
>
> MacBook-Pro:~ username$ afinfo /Users/username/UnitTest_CAF_ANSI_C.caf
> File:           /Users/username/UnitTest_CAF_ANSI_C.caf
> File type ID:   caff
> Num Tracks:     1
> ----
> Data format:     1 ch,  44100 Hz, 'lpcm' (0x0000000E) 16-bit big-endian signed integer
>                 no channel layout.
> estimated duration: 5.001315 sec
> audio bytes: 441116
> audio packets: 220558
> bit rate: 705600 bits per second
> packet size upper bound: 2
> maximum packet size: 2
> audio data file offset: 4096
> optimized
> audio 220558 valid frames + 0 priming + 0 remainder = 220558
> source bit depth: I16
> 1 regions; SMPTE time type 0 (none)
>   region 1, "Region-0", flags 00000000
>        marker 990, "Marker-990": frame       100   SMPTE time 0:00:00:00/0    type 1935828327 ('sbeg') channel 0
>        marker 991, "<unnnamed>": frame       200   SMPTE time 0:00:00:00/0    type 1936027236 ('send') channel 0
>        marker 992, "<unnnamed>": frame       300   SMPTE time 0:00:00:00/0    type 1935828327 ('sbeg') channel 0
>
> The names should be "Marker-990" "Marker-991" "Marker-992" and so on.
>
>
> Anyone have any ideas? I'm stumped, and after three days working on this, I can't find much outside information.
>
> Thanks,
>
> Charles
>
>
>
>
>
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Coreaudio-api mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden







 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

References: 
 >How to correctly allocating CFStrings in an AudioFileRegionList? (From: Charles Constant <email@hidden>)
 >Re: How to correctly allocating CFStrings in an AudioFileRegionList? (From: Charles Constant <email@hidden>)
 >Re: How to correctly allocating CFStrings in an AudioFileRegionList? (From: Doug Wyatt <email@hidden>)

  • Prev by Date: Re: How to correctly allocating CFStrings in an AudioFileRegionList?
  • Next by Date: Re: AudioUnitRender() thread safe?
  • Previous by thread: Re: How to correctly allocating CFStrings in an AudioFileRegionList?
  • Next by thread: AudioUnitRender() thread safe?
  • Index(es):
    • Date
    • Thread