1a69729dc76b97c44387088d351480d5d0701517eJeff Tinker/*
2a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**
3a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** Copyright 2008, The Android Open Source Project
4a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**
5a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** Licensed under the Apache License, Version 2.0 (the "License");
6a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** you may not use this file except in compliance with the License.
7a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** You may obtain a copy of the License at
8a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**
9a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**     http://www.apache.org/licenses/LICENSE-2.0
10a69729dc76b97c44387088d351480d5d0701517eJeff Tinker**
11a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** Unless required by applicable law or agreed to in writing, software
12a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** distributed under the License is distributed on an "AS IS" BASIS,
13a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** See the License for the specific language governing permissions and
15a69729dc76b97c44387088d351480d5d0701517eJeff Tinker** limitations under the License.
16a69729dc76b97c44387088d351480d5d0701517eJeff Tinker*/
17a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
18a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#define LOG_TAG "mediaserver"
19a69729dc76b97c44387088d351480d5d0701517eJeff Tinker//#define LOG_NDEBUG 0
20a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
21a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <fcntl.h>
22a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <sys/prctl.h>
23a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <sys/wait.h>
24a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <binder/IPCThreadState.h>
25a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <binder/ProcessState.h>
26a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <binder/IServiceManager.h>
27a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <cutils/properties.h>
28a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include <utils/Log.h>
29a69729dc76b97c44387088d351480d5d0701517eJeff Tinker#include "MediaDrmService.h"
309dbe9a57bf0ae2494ec312d6c1b06feec20e9ec9Chong Zhang#include "MediaCasService.h"
31a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
32a69729dc76b97c44387088d351480d5d0701517eJeff Tinkerusing namespace android;
33a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
34c903684e9a8af5450bab61b0883fc81c5a466844Aurimas Liutikasint main()
35a69729dc76b97c44387088d351480d5d0701517eJeff Tinker{
36a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    signal(SIGPIPE, SIG_IGN);
37a69729dc76b97c44387088d351480d5d0701517eJeff Tinker
38a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    sp<ProcessState> proc(ProcessState::self());
39a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    sp<IServiceManager> sm = defaultServiceManager();
40a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    ALOGI("ServiceManager: %p", sm.get());
41a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    MediaDrmService::instantiate();
429dbe9a57bf0ae2494ec312d6c1b06feec20e9ec9Chong Zhang    MediaCasService::instantiate();
43a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    ProcessState::self()->startThreadPool();
44a69729dc76b97c44387088d351480d5d0701517eJeff Tinker    IPCThreadState::self()->joinThreadPool();
45a69729dc76b97c44387088d351480d5d0701517eJeff Tinker}
46