main_codecservice.cpp revision 1900e77bac4276f247f80fd06d19316cac598f57
11900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen/*
21900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen**
31900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** Copyright 2015, The Android Open Source Project
41900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen**
51900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** Licensed under the Apache License, Version 2.0 (the "License");
61900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** you may not use this file except in compliance with the License.
71900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** You may obtain a copy of the License at
81900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen**
91900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen**     http://www.apache.org/licenses/LICENSE-2.0
101900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen**
111900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** Unless required by applicable law or agreed to in writing, software
121900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** distributed under the License is distributed on an "AS IS" BASIS,
131900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
141900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** See the License for the specific language governing permissions and
151900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen** limitations under the License.
161900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen*/
171900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen
181900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#define LOG_TAG "mediacodec"
191900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen//#define LOG_NDEBUG 0
201900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen
211900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#include <fcntl.h>
221900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#include <sys/prctl.h>
231900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#include <sys/wait.h>
241900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#include <binder/IPCThreadState.h>
251900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#include <binder/ProcessState.h>
261900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#include <binder/IServiceManager.h>
271900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#include <utils/Log.h>
281900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen
291900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen// from LOCAL_C_INCLUDES
301900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen#include "MediaCodecService.h"
311900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen
321900e77bac4276f247f80fd06d19316cac598f57Marco Nelissenusing namespace android;
331900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen
341900e77bac4276f247f80fd06d19316cac598f57Marco Nelissenint main(int argc __unused, char** argv)
351900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen{
361900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen    ALOGI("@@@ mediacodecservice starting");
371900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen    signal(SIGPIPE, SIG_IGN);
381900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen
391900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen    strcpy(argv[0], "media.codec");
401900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen    sp<ProcessState> proc(ProcessState::self());
411900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen    sp<IServiceManager> sm = defaultServiceManager();
421900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen    MediaCodecService::instantiate();
431900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen    ProcessState::self()->startThreadPool();
441900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen    IPCThreadState::self()->joinThreadPool();
451900e77bac4276f247f80fd06d19316cac598f57Marco Nelissen}
46