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