Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91b8b1c9 authored by Paramananda's avatar Paramananda Committed by Steve Kondik
Browse files

Media: Make media support DRM file's playing

- Make media support DRM file's playing.

Change-Id: I1558e62ceec12a17749aa826bf94c3fcca7eedd5
parent c1d0d36d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -89,6 +89,9 @@ void DrmManager::removeUniqueId(int uniqueId) {

status_t DrmManager::loadPlugIns() {

    String8 vendorPluginDirPath64("/vendor/lib64/drm");
    loadPlugIns(vendorPluginDirPath64);

    String8 vendorPluginDirPath("/vendor/lib/drm");
    loadPlugIns(vendorPluginDirPath);

+7 −0
Original line number Diff line number Diff line
@@ -37,6 +37,9 @@ static bool isProtectedCallAllowed() {
    // TODO
    // Following implementation is just for reference.
    // Each OEM manufacturer should implement/replace with their own solutions.

    // Disabling the reference to allow all process to access DRM API.
    /*
    IPCThreadState* ipcState = IPCThreadState::self();
    uid_t uid = ipcState->getCallingUid();

@@ -46,6 +49,10 @@ static bool isProtectedCallAllowed() {
        }
    }
    return false;
    */

    // All process can access DRM  Framework APIs.
    return true;
}

void DrmManagerService::instantiate() {
+42 −5
Original line number Diff line number Diff line
@@ -52,14 +52,24 @@ struct MimeTypeList{


// Known mimetypes by android
static const char mime_type_audio_mpeg[]  = "audio/mpeg";
static const char mime_type_audio_mpeg[]  = "audio/qc-mpeg";
static const char mime_type_audio_3gpp[]  = "audio/3gpp";
static const char mime_type_audio_amr[]   = "audio/amr-wb";
static const char mime_type_audio_amr[]   = "audio/qc-amr";
static const char mime_type_audio_amr_wb[]   = "audio/qc-amr-wb";
static const char mime_type_audio_aac[]   = "audio/mp4a-latm";
static const char mime_type_audio_wav[]   = "audio/wav";
static const char mime_type_audio_wav[]   = "audio/qc-wav";
static const char mime_type_audio_wma[]   = "audio/x-ms-wma";

static const char mime_type_video_mpeg4[] = "video/mpeg4";
static const char mime_type_video_3gpp[]  = "video/3gpp";
static const char mime_type_video_ogg[]  = "video/qc-ogg";
static const char mime_type_video_flv[]  = "video/qc-flv";
static const char mime_type_video_3g2[]  = "video/3g2";
static const char mime_type_video_wmv[]  = "video/x-ms-wmv";

static const char mime_type_image_png[]   = "image/png";
static const char mime_type_image_jpeg[]  = "image/jpeg";
static const char mime_type_image_gif[]   = "image/gif";

// Known mimetype groups
static const char mime_group_audio[]       = "audio/";
@@ -80,6 +90,7 @@ static struct MimeGroup mimeGroup[] = {
static struct MimeTypeList mimeTypeList[] = {
    // Mp3 mime types
    {MIMETYPE_AUDIO, "mp3",          sizeof("mp3")-1,         mime_type_audio_mpeg},
    {MIMETYPE_AUDIO, "mp3d",         sizeof("mp3d")-1,        mime_type_audio_mpeg},
    {MIMETYPE_AUDIO, "x-mpeg",       sizeof("x-mpeg")-1,      mime_type_audio_mpeg},
    {MIMETYPE_AUDIO, "x-mp3",        sizeof("x-mp3")-1,       mime_type_audio_mpeg},
    {MIMETYPE_AUDIO, "mpg",          sizeof("mpg")-1,         mime_type_audio_mpeg},
@@ -89,23 +100,47 @@ static struct MimeTypeList mimeTypeList[] = {

    // 3gpp audio mime types
    {MIMETYPE_AUDIO, "3gp",          sizeof("3gp")-1,         mime_type_audio_3gpp},
    {MIMETYPE_AUDIO, "3gpp2",        sizeof("3gpp2")-1,       mime_type_audio_3gpp},
    {MIMETYPE_AUDIO, "3gpp",         sizeof("3gpp")-1,        mime_type_video_3g2},



    // Amr audio mime types
    {MIMETYPE_AUDIO, "amr",          sizeof("amr")-1,         mime_type_audio_amr},
    {MIMETYPE_AUDIO, "amr-nb",       sizeof("amr-nb")-1,      mime_type_audio_amr},
    {MIMETYPE_AUDIO, "amr-wb",       sizeof("amr-wb")-1,      mime_type_audio_amr_wb},

    // Aac audio mime types
    {MIMETYPE_AUDIO, "aac",          sizeof("aac")-1,         mime_type_audio_aac},
    {MIMETYPE_AUDIO, "mp4a-latm",    sizeof("mp4a-latm")-1,   mime_type_audio_aac},

    // Wav audio mime types
    {MIMETYPE_AUDIO, "x-wav",        sizeof("x-wav")-1,       mime_type_audio_wav},
    {MIMETYPE_AUDIO, "wav",          sizeof("wav")-1,         mime_type_audio_wav},

    // Wma audio mime types
    {MIMETYPE_AUDIO, "wma",          sizeof("wma")-1,         mime_type_audio_wma},

    // Mpeg4 video mime types
    {MIMETYPE_VIDEO, "mpg4",         sizeof("mpg4")-1,        mime_type_video_mpeg4},
    {MIMETYPE_VIDEO, "mp4v-es",      sizeof("mp4v-es")-1,     mime_type_video_mpeg4},
    {MIMETYPE_AUDIO, "m4a",          sizeof("m4a")-1,         mime_type_video_mpeg4},

    {MIMETYPE_VIDEO, "ogg",          sizeof("ogg")-1,         mime_type_video_ogg},
    {MIMETYPE_VIDEO, "flv",          sizeof("flv")-1,         mime_type_video_flv},

    // 3gpp video mime types
    {MIMETYPE_VIDEO, "3gp",          sizeof("3gp")-1,         mime_type_video_3gpp},

    // png image mime type
    {MIMETYPE_IMAGE, "png",          sizeof("png")-1,         mime_type_image_png},

    // jpeg image mime type
    {MIMETYPE_IMAGE, "jpeg",         sizeof("jpeg")-1,        mime_type_image_jpeg},

    // jpeg image mime type
    {MIMETYPE_IMAGE, "gif",          sizeof("gif")-1,         mime_type_image_gif},

    // Must be last entry
    {MIMETYPE_LAST,  NULL,           0,                       NULL}
};
@@ -131,7 +166,9 @@ String8 MimeTypeUtil::convertMimeType(String8& mimeType) {
    pMimeType = mimeType.string();
    if (NULL != pMimeType) {
        if ((0 == strncmp(pMimeType, mime_group_audio, (sizeof mime_group_audio) - 1)) ||
            (0 == strncmp(pMimeType, mime_group_video, (sizeof mime_group_video) - 1))) {
            (0 == strncmp(pMimeType, mime_group_video, (sizeof mime_group_video) - 1)) ||
            (0 == strncmp(pMimeType, mime_group_image, (sizeof mime_group_image) - 1)) ||
            (0 == strncmp(pMimeType, "application/ogg", 15))) {
            /* Check which group the mimetype is */
            pGroup = mimeGroup;
            while (MIMETYPE_LAST != pGroup->type) {
+1 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ LOCAL_SHARED_LIBRARIES := \
    libstagefright_wfd          \
    libutils                    \
    libvorbisidec               \
    libdrmframework             \

LOCAL_STATIC_LIBRARIES :=       \
    libstagefright_nuplayer     \
+2 −0
Original line number Diff line number Diff line
@@ -491,6 +491,7 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args)
            while (!feof(f)) {
                fgets(buffer, SIZE, f);
                if (strstr(buffer, " /storage/") ||
                    strstr(buffer, " /mnt/sdcard/") ||
                    strstr(buffer, " /system/sounds/") ||
                    strstr(buffer, " /data/") ||
                    strstr(buffer, " /system/media/")) {
@@ -527,6 +528,7 @@ status_t MediaPlayerService::dump(int fd, const Vector<String16>& args)
                                    linkto[len] = 0;
                                }
                                if (strstr(linkto, "/storage/") == linkto ||
                                    strstr(linkto, "/mnt/sdcard/") == linkto ||
                                    strstr(linkto, "/system/sounds/") == linkto ||
                                    strstr(linkto, "/data/") == linkto ||
                                    strstr(linkto, "/system/media/") == linkto) {
Loading