14b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen/* 24b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * Copyright (C) 2009 The Android Open Source Project 34b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * 44b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * Licensed under the Apache License, Version 2.0 (the "License"); 54b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * you may not use this file except in compliance with the License. 64b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * You may obtain a copy of the License at 74b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * 84b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * http://www.apache.org/licenses/LICENSE-2.0 94b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * 104b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * Unless required by applicable law or agreed to in writing, software 114b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * distributed under the License is distributed on an "AS IS" BASIS, 124b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * See the License for the specific language governing permissions and 144b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen * limitations under the License. 154b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen */ 164b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 174b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen#ifndef SKOMXPIXELREF_DEFINED 184b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen#define SKOMXPIXELREF_DEFINED 194b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 204b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen#include <media/stagefright/MediaBuffer.h> 214b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen#include <media/stagefright/OMXClient.h> 224b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen#include <media/stagefright/OMXCodec.h> 234b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen#include <SkPixelRef.h> 244b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 254b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chennamespace android { 264b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 274b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chenclass SkOmxPixelRef : public SkPixelRef { 284b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chenpublic: 294b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen SkOmxPixelRef(SkColorTable* ctable, MediaBuffer* buffer, 30987dbde838014e5f0c55a63acdd2a9a002b140ccAndreas Huber sp<MediaSource> decoder); 314b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen virtual ~SkOmxPixelRef(); 324b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 334b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen //! Return the allocation size for the pixels 344b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen size_t getSize() const { return mSize; } 354b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 364b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chenprotected: 374b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen // overrides from SkPixelRef 384b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen virtual void* onLockPixels(SkColorTable**); 394b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen virtual void onUnlockPixels(); 404b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 414b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chenprivate: 424b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen MediaBuffer* mBuffer; 43987dbde838014e5f0c55a63acdd2a9a002b140ccAndreas Huber sp<MediaSource> mDecoder; 444b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen size_t mSize; 454b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen SkColorTable* mCTable; 464b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 474b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen typedef SkPixelRef INHERITED; 484b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen}; 494b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen 504b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen} // namespace android 514b6f4942fcef3300b407d9a07a680c07b162333fWei-Ta Chen#endif // SKOMXPIXELREF_DEFINED 52