StagefrightMetadataRetriever.h revision 2a4a7d5af053a17586a262a1267ba993e31790f1
12a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber/*
22a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber**
32a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** Copyright 2009, The Android Open Source Project
42a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber**
52a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** Licensed under the Apache License, Version 2.0 (the "License");
62a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** you may not use this file except in compliance with the License.
72a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** You may obtain a copy of the License at
82a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber**
92a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber**     http://www.apache.org/licenses/LICENSE-2.0
102a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber**
112a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** Unless required by applicable law or agreed to in writing, software
122a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** distributed under the License is distributed on an "AS IS" BASIS,
132a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
142a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** See the License for the specific language governing permissions and
152a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber** limitations under the License.
162a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber*/
172a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
182a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber#ifndef STAGEFRIGHT_METADATA_RETRIEVER_H_
192a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
202a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber#define STAGEFRIGHT_METADATA_RETRIEVER_H_
212a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
222a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber#include <media/MediaMetadataRetrieverInterface.h>
232a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
242a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber#include <media/stagefright/OMXClient.h>
252a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
262a4a7d5af053a17586a262a1267ba993e31790f1Andreas Hubernamespace android {
272a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
282a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huberclass MediaExtractor;
292a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
302a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huberstruct StagefrightMetadataRetriever : public MediaMetadataRetrieverInterface {
312a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    StagefrightMetadataRetriever();
322a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    virtual ~StagefrightMetadataRetriever();
332a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
342a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    virtual status_t setDataSource(const char *url);
352a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    virtual status_t setDataSource(int fd, int64_t offset, int64_t length);
362a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
372a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    virtual VideoFrame *captureFrame();
382a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    virtual MediaAlbumArt *extractAlbumArt();
392a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    virtual const char *extractMetadata(int keyCode);
402a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
412a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huberprivate:
422a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    OMXClient mClient;
432a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    sp<MediaExtractor> mExtractor;
442a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
452a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    StagefrightMetadataRetriever(const StagefrightMetadataRetriever &);
462a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
472a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber    StagefrightMetadataRetriever &operator=(
482a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber            const StagefrightMetadataRetriever &);
492a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber};
502a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
512a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber}  // namespace android
522a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber
532a4a7d5af053a17586a262a1267ba993e31790f1Andreas Huber#endif  // STAGEFRIGHT_METADATA_RETRIEVER_H_
54