Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-137088

Sporadic crashes on AVFMediaPlayer::updateAudioOutputDevice()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • None
    • 6.7.3, 6.8.3
    • Multimedia
    • None
    • Different macOS versions
    • macOS

    Description

      Observing this when analyzing our users' crashes in Sentry.

      It's never reproduced in our testing environment, but seems this may happen when user connect/disconnect headphones during media playback.

       

      Some helper AVF thread is crashing:

      OS Version: macOS 15.4.1 (24E263)
      Report Version: 104
      
      Crashed Thread: 152851
      
      Application Specific Information:
      Fatal Error: EXC_BAD_ACCESS / KERN_INVALID_ADDRESS / 0xffffffffcdde2c30
      
      Thread 152851 Crashed:
      0   libobjc.A.dylib                 0x18c427910         <unknown>
      1   MediaToolbox                    0x19d479978         <unknown>
      2   MediaToolbox                    0x19d8fa8e0         <unknown>
      3   MediaToolbox                    0x19d8f8bfc         <unknown>
      4   MediaToolbox                    0x19d8ff5e0         <unknown>
      5   MediaToolbox                    0x19d8fed4c         <unknown>
      6   MediaToolbox                    0x19d3d7520         <unknown>
      7   MediaToolbox                    0x19d9033b0         <unknown>
      8   MediaToolbox                    0x19d90cab8         <unknown>
      9   MediaToolbox                    0x19d3d7aa0         <unknown>
      10  CoreMedia                       0x197bd3ef0         <unknown>
      11  libdispatch.dylib               0x18c67b85c         <unknown>
      12  libdispatch.dylib               0x18c66a350         <unknown>
      13  libdispatch.dylib               0x18c66ae60         <unknown>
      14  libdispatch.dylib               0x18c673e30         <unknown>
      15  libdispatch.dylib               0x18c673bf0         <unknown>
      16  libsystem_pthread.dylib         0x18c819c08         _pthread_cond_wait
      17  libsystem_pthread.dylib         0x18c814b7c         pthread_cond_broadcast
      18  libdispatch.dylib               0x18c673ae4         <unknown>
      
      

       

      UI thread:

      16  libsystem_pthread.dylib         0x18c819c08         _pthread_cond_wait
      17  libsystem_pthread.dylib         0x18c814b7c         pthread_cond_broadcast
      18  libdispatch.dylib               0x18c673ae4         <unknown>Thread 259
      0   libsystem_kernel.dylib          0x18c7da89c         semaphore_create
      1   libsystem_pthread.dylib         0x18c81483c         _pthread_mutex_firstfit_unlock_slow
      2   MediaToolbox                    0x19d90304c         <unknown>
      3   MediaToolbox                    0x19d3df1d8         <unknown>
      4   MediaToolbox                    0x19d93c420         <unknown>
      5   MediaToolbox                    0x19d47dda0         <unknown>
      6   MediaToolbox                    0x19daac714         <unknown>
      7   MediaToolbox                    0x19d99e0a4         <unknown>
      8   MediaToolbox                    0x19d9544ac         <unknown>
      9   MediaToolbox                    0x19d93c588         <unknown>
      10  MediaToolbox                    0x19d3b6e00         <unknown>
      11  MediaToolbox                    0x19d3b6a10         <unknown>
      12  libdispatch.dylib               0x18c67b85c         <unknown>
      13  libdispatch.dylib               0x18c6717a8         <unknown>
      14  MediaToolbox                    0x19d3b94e0         <unknown>
      15  MediaToolbox                    0x19d93c420         <unknown>
      16  MediaToolbox                    0x19d47dda0         <unknown>
      17  MediaToolbox                    0x19d8ec1e4         <unknown>
      18  AVFCore                         0x1a3ca8c80         <unknown>
      19  libdispatch.dylib               0x18c67b85c         <unknown>
      20  libdispatch.dylib               0x18c6717a8         <unknown>
      21  AVFCore                         0x1a3ca8b8c         <unknown>
      22  libdarwinmediaplugin.dylib      0x346e74d38         AVFMediaPlayer::updateAudioOutputDevice
      23  QtCore                          0x10b346f50         [inlined] QtPrivate::QSlotObjectBase::call (qobjectdefs_impl.h:469)
      24  QtCore                          0x10b346f50         doActivate<T> (qobject.cpp:4086)
      25  QtMultimedia                    0x108cb9180         [inlined] QAudioOutput::deviceChanged (moc_qaudiooutput.cpp:233)
      26  QtMultimedia                    0x108cb9180         QAudioOutput::setDevice (qaudiooutput.cpp:193)
      27  QtMultimedia                    0x108cb9578         QAudioOutput::qt_metacall (moc_qaudiooutput.cpp:224)
      28  QtQml                           0x10a10f24c         QV4::QQmlValueTypeWrapper::write (qqmlvaluetypewrapper.cpp:568)
      29  QtQml                           0x10a00bc84         GenericBinding<T>::write (qqmlbinding.cpp:268)
      30  QtQml                           0x10a0047c8         QQmlBinding::doUpdate (qqmlbinding.cpp:708)
      31  QtQml                           0x10a00271c         QQmlBinding::update (qqmlbinding.cpp:165)
      32  QtQml                           0x10a07e6d8         QQmlNotifier::emitNotify (qqmlnotifier.cpp:70)
      33  QtCore                          0x10b346a8c         doActivate<T> (qobject.cpp:3976)
        ...
      
      

      There is nothing specific in the app code, we just use QML MediaPlayer to play user's media files.
      Something like:

      VideoOutput {
          id: output
          ...
      }
      
      MediaPlayer {
          videoOutput: output
          audioOutput: AudioOutput { device: <some_binding_to_device> }
          source: <some_binding_to_source>
          ...
      }
      

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              tpochep Timur Pocheptsov
              studiosus Vladimir Belyavsky
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes