Make mediaserver listen to Codec2 services' deaths
Test: Kill media.extractor or mediaswcodec and observe logcat
Bug: 130071409
Change-Id: Ie785642da99dfe4ff13e78d878817dae3de9f34a
diff --git a/media/libmediaplayerservice/MediaPlayerService.h b/media/libmediaplayerservice/MediaPlayerService.h
index 26bfa71..49688ce 100644
--- a/media/libmediaplayerservice/MediaPlayerService.h
+++ b/media/libmediaplayerservice/MediaPlayerService.h
@@ -30,8 +30,6 @@
#include <media/Metadata.h>
#include <media/stagefright/foundation/ABase.h>
-#include <hidl/HidlSupport.h>
-
#include <system/audio.h>
namespace android {
@@ -39,6 +37,7 @@
struct AudioPlaybackRate;
class AudioTrack;
struct AVSyncSettings;
+class DeathNotifier;
class IDataSource;
class IMediaRecorder;
class IMediaMetadataRetriever;
@@ -388,33 +387,6 @@
virtual status_t enableAudioDeviceCallback(bool enabled);
private:
- class ServiceDeathNotifier:
- public IBinder::DeathRecipient,
- public ::android::hardware::hidl_death_recipient
- {
- public:
- ServiceDeathNotifier(
- const sp<IBinder>& service,
- const sp<MediaPlayerBase>& listener,
- int which);
- ServiceDeathNotifier(
- const sp<android::hidl::base::V1_0::IBase>& hService,
- const sp<MediaPlayerBase>& listener,
- int which);
- virtual ~ServiceDeathNotifier();
- virtual void binderDied(const wp<IBinder>& who);
- virtual void serviceDied(
- uint64_t cookie,
- const wp<::android::hidl::base::V1_0::IBase>& who);
- void unlinkToDeath();
-
- private:
- int mWhich;
- sp<IBinder> mService;
- sp<android::hidl::base::V1_0::IBase> mHService; // HIDL service
- wp<MediaPlayerBase> mListener;
- };
-
class AudioDeviceUpdatedNotifier: public AudioSystem::AudioDeviceCallback
{
public:
@@ -430,8 +402,6 @@
wp<MediaPlayerBase> mListener;
};
- void clearDeathNotifiers_l();
-
friend class MediaPlayerService;
Client( const sp<MediaPlayerService>& service,
pid_t pid,
@@ -506,8 +476,7 @@
// getMetadata clears this set.
media::Metadata::Filter mMetadataUpdated; // protected by mLock
- sp<ServiceDeathNotifier> mExtractorDeathListener;
- std::vector<sp<ServiceDeathNotifier>> mCodecDeathListeners;
+ std::vector<DeathNotifier> mDeathNotifiers;
sp<AudioDeviceUpdatedNotifier> mAudioDeviceUpdatedListener;
#if CALLBACK_ANTAGONIZER
Antagonizer* mAntagonizer;