Skip navigation.
 
mlRe: Crash when dispaying document in iChat Theater
FROM : Kevin Grant
DATE : Mon Apr 21 17:55:58 2008

Is the view drawing on a thread other than the main thread?
That might not be allowed (I'm not sure about Cocoa...in
Carbon this was never possible).

For the doesNotRecognizeSelector case, do you see any compiler
warnings about this?  That would at least show if it's your
code that's referring to a potentially nonexistent routine,
as opposed to the system.

Kevin G.


> Hi,
>
> I'm trying to implement iChat Theater capability into my garbage 
> collected app, and it looks to be almost working, except for a 
> rather all important crash. When my app is notified that it should 
> start sending video it executes the following code:
>
>     IMAVManager *manager = [IMAVManager sharedAVManager];
>     MyDocument *d;
>     
>     switch ([manager state])
>     {
>         case IMAVRequested:
>             d = [[NSDocumentController sharedDocumentController] 
> documentForURL:[manager URLToShare]];
>             if (d == nil) {
>                 d = [[NSDocumentController sharedDocumentController] 
> openDocumentWithContentsOfURL:[manager URLToShare] display:YES];
>             }
>             [manager setVideoDataSource:d.someView];
>             [manager start];
>             break;
>     }
>
> someView has subviews, including a PDFView subclass. I have tried 
> setting the data source to the PDFView and to the PDFView's 
> documentView, but the result is always the same.
>
> When I start a session the theater mode activates and I can see my 
> document in the iChat window. All is well until anything causes a 
> redraw of the view being displayed, at which point there is either a 
> crash, or an error that leads to a crash if I try to continue 
> execution. Here are the backtraces of the two types of crash:
>
> #0  0x956bb6e8 in objc_msgSend ()
> #1  0x90a2f337 in _pixelBufferReleaseCallback ()
> #2  0x93079d78 in CVPixelBufferBacking::finalize ()
> #3  0x9307242e in CVPixelBuffer::finalize ()
> #4  0x90a21de9 in -[IMAuxVideoProvider _fillBufferFromPool:atRate:] ()
> #5  0x90a21bfe in -[IMAuxVideoProvider _callbackThreadMain] ()
> #6  0x95d735ad in -[NSThread main] ()
> #7  0x95d73154 in __NSThread__main__ ()
> #8  0x95440c55 in _pthread_start ()
> #9  0x95440b12 in thread_start ()
>
>
> #0  0x956b00d7 in objc_exception_throw ()
> #1  0x927e844a in -[NSObject doesNotRecognizeSelector:] ()
> #2  0x927e6a4c in ___forwarding___ ()
> #3  0x927e6b12 in __forwarding_prep_0___ ()
> #4  0x90a2f337 in _pixelBufferReleaseCallback ()
> #5  0x93079d78 in CVPixelBufferBacking::finalize ()
> #6  0x9307242e in CVPixelBuffer::finalize ()
> #7  0x90a21de9 in -[IMAuxVideoProvider _fillBufferFromPool:atRate:] ()
> #8  0x90a21bfe in -[IMAuxVideoProvider _callbackThreadMain] ()
> #9  0x95d735ad in -[NSThread main] ()
> #10 0x95d73154 in __NSThread__main__ ()
> #11 0x95440c55 in _pthread_start ()
> #12 0x95440b12 in thread_start ()
>
> The second problem (doesNotRecognizeSelector:) I've so far only seen 
> once, usually there is a straight crash (bad access). This looks 
> like a framework bug to me, but I thought I'd ask here if anybody 
> has any other ideas, or similar experience to share, before filing a 
> bug report.
>
> -António

Related mailsAuthorDate
mlCrash when dispaying document in iChat Theater Antonio Nunes Apr 21, 14:18
mlRe: Crash when dispaying document in iChat Theater Kevin Grant Apr 21, 17:55
mlRe: Crash when dispaying document in iChat Theater Antonio Nunes Apr 21, 18:36
mlRe: Crash when dispaying document in iChat Theater Quincey Morris Apr 21, 18:52
mlRe: Crash when dispaying document in iChat Theater Antonio Nunes Apr 21, 19:32
mlRe: Crash when dispaying document in iChat Theater Quincey Morris Apr 21, 20:25