MediaWriter.h revision 2dce41ad26cb3e9e15c9e456a84bcf5309548ca0
12dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber/*
22dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * Copyright (C) 2010 The Android Open Source Project
32dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber *
42dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
52dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * you may not use this file except in compliance with the License.
62dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * You may obtain a copy of the License at
72dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber *
82dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
92dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber *
102dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * Unless required by applicable law or agreed to in writing, software
112dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
122dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * See the License for the specific language governing permissions and
142dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber * limitations under the License.
152dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber */
162dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
172dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber#ifndef MEDIA_WRITER_H_
182dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
192dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber#define MEDIA_WRITER_H_
202dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
212dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber#include <utils/RefBase.h>
222dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
232dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Hubernamespace android {
242dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
252dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huberstruct MediaSource;
262dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
272dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huberstruct MediaWriter : public RefBase {
282dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber    MediaWriter() {}
292dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
302dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber    virtual status_t addSource(const sp<MediaSource> &source) = 0;
312dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber    virtual bool reachedEOS() = 0;
322dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber    virtual status_t start() = 0;
332dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber    virtual void stop() = 0;
342dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
352dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huberprotected:
362dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber    virtual ~MediaWriter() {}
372dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
382dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huberprivate:
392dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber    MediaWriter(const MediaWriter &);
402dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber    MediaWriter &operator=(const MediaWriter &);
412dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber};
422dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
432dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber}  // namespace android
442dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber
452dce41ad26cb3e9e15c9e456a84bcf5309548ca0Andreas Huber#endif  // MEDIA_WRITER_H_
46