Loading drm/drmserver/drmserver.rc +7 −0 Original line number Original line Diff line number Diff line service drm /system/bin/drmserver service drm /system/bin/drmserver disabled class main class main user drm user drm group drm system inet drmrpc readproc group drm system inet drmrpc readproc writepid /dev/cpuset/foreground/tasks writepid /dev/cpuset/foreground/tasks on property:drm.service.enabled=true start drm on property:drm.service.enabled=1 start drm drm/libdrmframework/DrmManagerClientImpl.cpp +6 −9 Original line number Original line Diff line number Diff line Loading @@ -52,25 +52,22 @@ void DrmManagerClientImpl::remove(int uniqueId) { const sp<IDrmManagerService>& DrmManagerClientImpl::getDrmManagerService() { const sp<IDrmManagerService>& DrmManagerClientImpl::getDrmManagerService() { Mutex::Autolock lock(sMutex); Mutex::Autolock lock(sMutex); if (NULL == sDrmManagerService.get()) { if (NULL == sDrmManagerService.get()) { char value[PROPERTY_VALUE_MAX]; if (property_get("drm.service.enabled", value, NULL) == 0) { // Drm is undefined for this device return sDrmManagerService; } sp<IServiceManager> sm = defaultServiceManager(); sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> binder; sp<IBinder> binder; do { for(int i = 0; i < 10; i++) { binder = sm->getService(String16("drm.drmManager")); binder = sm->getService(String16("drm.drmManager")); if (binder != 0) { if (binder != 0) { break; break; } } ALOGW("DrmManagerService not published, waiting..."); ALOGW("DrmManagerService not published, waiting... %d", i); struct timespec reqt; struct timespec reqt; reqt.tv_sec = 0; reqt.tv_sec = 0; reqt.tv_nsec = 500000000; //0.5 sec reqt.tv_nsec = 500000000; //0.5 sec nanosleep(&reqt, NULL); nanosleep(&reqt, NULL); } while (true); } if (binder == NULL) { return sDrmManagerService; } if (NULL == sDeathNotifier.get()) { if (NULL == sDeathNotifier.get()) { sDeathNotifier = new DeathNotifier(); sDeathNotifier = new DeathNotifier(); } } Loading media/codec2/vndk/C2AllocatorGralloc.cpp +10 −0 Original line number Original line Diff line number Diff line Loading @@ -750,6 +750,16 @@ c2_status_t C2AllocationGralloc::map( // We really don't know what this is; lock the buffer and pass it through --- // We really don't know what this is; lock the buffer and pass it through --- // the client may know how to interpret it. // the client may know how to interpret it. // unlock previous allocation if it was successful if (err == OK) { err = GraphicBufferMapper::get().unlock(mBuffer); if (err) { ALOGE("failed transaction: unlock"); return C2_CORRUPTED; } } void *pointer = nullptr; void *pointer = nullptr; err = GraphicBufferMapper::get().lock( err = GraphicBufferMapper::get().lock( const_cast<native_handle_t *>(mBuffer), grallocUsage, rect, &pointer); const_cast<native_handle_t *>(mBuffer), grallocUsage, rect, &pointer); Loading Loading
drm/drmserver/drmserver.rc +7 −0 Original line number Original line Diff line number Diff line service drm /system/bin/drmserver service drm /system/bin/drmserver disabled class main class main user drm user drm group drm system inet drmrpc readproc group drm system inet drmrpc readproc writepid /dev/cpuset/foreground/tasks writepid /dev/cpuset/foreground/tasks on property:drm.service.enabled=true start drm on property:drm.service.enabled=1 start drm
drm/libdrmframework/DrmManagerClientImpl.cpp +6 −9 Original line number Original line Diff line number Diff line Loading @@ -52,25 +52,22 @@ void DrmManagerClientImpl::remove(int uniqueId) { const sp<IDrmManagerService>& DrmManagerClientImpl::getDrmManagerService() { const sp<IDrmManagerService>& DrmManagerClientImpl::getDrmManagerService() { Mutex::Autolock lock(sMutex); Mutex::Autolock lock(sMutex); if (NULL == sDrmManagerService.get()) { if (NULL == sDrmManagerService.get()) { char value[PROPERTY_VALUE_MAX]; if (property_get("drm.service.enabled", value, NULL) == 0) { // Drm is undefined for this device return sDrmManagerService; } sp<IServiceManager> sm = defaultServiceManager(); sp<IServiceManager> sm = defaultServiceManager(); sp<IBinder> binder; sp<IBinder> binder; do { for(int i = 0; i < 10; i++) { binder = sm->getService(String16("drm.drmManager")); binder = sm->getService(String16("drm.drmManager")); if (binder != 0) { if (binder != 0) { break; break; } } ALOGW("DrmManagerService not published, waiting..."); ALOGW("DrmManagerService not published, waiting... %d", i); struct timespec reqt; struct timespec reqt; reqt.tv_sec = 0; reqt.tv_sec = 0; reqt.tv_nsec = 500000000; //0.5 sec reqt.tv_nsec = 500000000; //0.5 sec nanosleep(&reqt, NULL); nanosleep(&reqt, NULL); } while (true); } if (binder == NULL) { return sDrmManagerService; } if (NULL == sDeathNotifier.get()) { if (NULL == sDeathNotifier.get()) { sDeathNotifier = new DeathNotifier(); sDeathNotifier = new DeathNotifier(); } } Loading
media/codec2/vndk/C2AllocatorGralloc.cpp +10 −0 Original line number Original line Diff line number Diff line Loading @@ -750,6 +750,16 @@ c2_status_t C2AllocationGralloc::map( // We really don't know what this is; lock the buffer and pass it through --- // We really don't know what this is; lock the buffer and pass it through --- // the client may know how to interpret it. // the client may know how to interpret it. // unlock previous allocation if it was successful if (err == OK) { err = GraphicBufferMapper::get().unlock(mBuffer); if (err) { ALOGE("failed transaction: unlock"); return C2_CORRUPTED; } } void *pointer = nullptr; void *pointer = nullptr; err = GraphicBufferMapper::get().lock( err = GraphicBufferMapper::get().lock( const_cast<native_handle_t *>(mBuffer), grallocUsage, rect, &pointer); const_cast<native_handle_t *>(mBuffer), grallocUsage, rect, &pointer); Loading