diff options
26 files changed, 55 insertions, 198 deletions
diff --git a/cmds/screenrecord/screenrecord.cpp b/cmds/screenrecord/screenrecord.cpp index 02df1d2..36a7e73 100644 --- a/cmds/screenrecord/screenrecord.cpp +++ b/cmds/screenrecord/screenrecord.cpp @@ -23,7 +23,10 @@  #include <stdio.h>  #include <stdlib.h>  #include <string.h> +#include <sys/stat.h> +#include <sys/types.h>  #include <sys/wait.h> +  #include <termios.h>  #include <unistd.h> @@ -637,7 +640,13 @@ static status_t recordScreen(const char* fileName) {          case FORMAT_MP4: {              // Configure muxer.  We have to wait for the CSD blob from the encoder              // before we can start it. -            muxer = new MediaMuxer(fileName, MediaMuxer::OUTPUT_FORMAT_MPEG_4); +            int fd = open(fileName, O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); +            if (fd < 0) { +                fprintf(stderr, "ERROR: couldn't open file\n"); +                abort(); +            } +            muxer = new MediaMuxer(fd, MediaMuxer::OUTPUT_FORMAT_MPEG_4); +            close(fd);              if (gRotate) {                  muxer->setOrientationHint(90);  // TODO: does this do anything?              } diff --git a/cmds/stagefright/audioloop.cpp b/cmds/stagefright/audioloop.cpp index 96073f1..7b0de24 100644 --- a/cmds/stagefright/audioloop.cpp +++ b/cmds/stagefright/audioloop.cpp @@ -14,6 +14,10 @@   * limitations under the License.   */ +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +  #include <binder/ProcessState.h>  #include <media/mediarecorder.h>  #include <media/stagefright/foundation/ADebug.h> @@ -109,7 +113,12 @@ int main(int argc, char* argv[])      if (fileOut != NULL) {          // target file specified, write encoded AMR output -        sp<AMRWriter> writer = new AMRWriter(fileOut); +        int fd = open(fileOut, O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); +        if (fd < 0) { +            return 1; +        } +        sp<AMRWriter> writer = new AMRWriter(fd); +        close(fd);          writer->addSource(encoder);          writer->start();          sleep(duration); diff --git a/cmds/stagefright/muxer.cpp b/cmds/stagefright/muxer.cpp index f4a33e8..461b56c 100644 --- a/cmds/stagefright/muxer.cpp +++ b/cmds/stagefright/muxer.cpp @@ -17,6 +17,9 @@  //#define LOG_NDEBUG 0  #define LOG_TAG "muxer"  #include <inttypes.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h>  #include <utils/Log.h>  #include <binder/ProcessState.h> @@ -72,8 +75,15 @@ static int muxing(      ALOGV("input file %s, output file %s", path, outputFileName);      ALOGV("useAudio %d, useVideo %d", useAudio, useVideo); -    sp<MediaMuxer> muxer = new MediaMuxer(outputFileName, +    int fd = open(outputFileName, O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); + +    if (fd < 0) { +        ALOGE("couldn't open file"); +        return fd; +    } +    sp<MediaMuxer> muxer = new MediaMuxer(fd,                                            MediaMuxer::OUTPUT_FORMAT_MPEG_4); +    close(fd);      size_t trackCount = extractor->countTracks();      // Map the extractor's track index to the muxer's track index. diff --git a/cmds/stagefright/recordvideo.cpp b/cmds/stagefright/recordvideo.cpp index 9f547c7..2ad40bd 100644 --- a/cmds/stagefright/recordvideo.cpp +++ b/cmds/stagefright/recordvideo.cpp @@ -17,6 +17,10 @@  #include "SineSource.h"  #include <inttypes.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +  #include <binder/ProcessState.h>  #include <media/stagefright/foundation/ADebug.h>  #include <media/stagefright/AudioPlayer.h> @@ -300,7 +304,13 @@ int main(int argc, char **argv) {                  client.interface(), enc_meta, true /* createEncoder */, source,                  0, preferSoftwareCodec ? OMXCodec::kPreferSoftwareCodecs : 0); -    sp<MPEG4Writer> writer = new MPEG4Writer(fileName); +    int fd = open(fileName, O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); +    if (fd < 0) { +        fprintf(stderr, "couldn't open file"); +        return 1; +    } +    sp<MPEG4Writer> writer = new MPEG4Writer(fd); +    close(fd);      writer->addSource(encoder);      int64_t start = systemTime();      CHECK_EQ((status_t)OK, writer->start()); diff --git a/cmds/stagefright/stagefright.cpp b/cmds/stagefright/stagefright.cpp index 81edcb4..318b56d 100644 --- a/cmds/stagefright/stagefright.cpp +++ b/cmds/stagefright/stagefright.cpp @@ -19,6 +19,8 @@  #include <stdlib.h>  #include <string.h>  #include <sys/time.h> +#include <sys/types.h> +#include <sys/stat.h>  //#define LOG_NDEBUG 0  #define LOG_TAG "stagefright" @@ -506,8 +508,13 @@ static void writeSourcesToMP4(      sp<MPEG4Writer> writer =          new MPEG4Writer(gWriteMP4Filename.string());  #else +    int fd = open(gWriteMP4Filename.string(), O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); +    if (fd < 0) { +        fprintf(stderr, "couldn't open file"); +        return; +    }      sp<MPEG2TSWriter> writer = -        new MPEG2TSWriter(gWriteMP4Filename.string()); +        new MPEG2TSWriter(fd);  #endif      // at most one minute. diff --git a/include/media/IMediaRecorder.h b/include/media/IMediaRecorder.h index 3e67550..509c06b 100644 --- a/include/media/IMediaRecorder.h +++ b/include/media/IMediaRecorder.h @@ -41,7 +41,6 @@ public:      virtual status_t setOutputFormat(int of) = 0;      virtual status_t setVideoEncoder(int ve) = 0;      virtual status_t setAudioEncoder(int ae) = 0; -    virtual status_t setOutputFile(const char* path) = 0;      virtual status_t setOutputFile(int fd, int64_t offset, int64_t length) = 0;      virtual status_t setVideoSize(int width, int height) = 0;      virtual status_t setVideoFrameRate(int frames_per_second) = 0; diff --git a/include/media/MediaRecorderBase.h b/include/media/MediaRecorderBase.h index d7ac302..f55063e 100644 --- a/include/media/MediaRecorderBase.h +++ b/include/media/MediaRecorderBase.h @@ -43,7 +43,6 @@ struct MediaRecorderBase {      virtual status_t setCamera(const sp<ICamera>& camera,                                 const sp<ICameraRecordingProxy>& proxy) = 0;      virtual status_t setPreviewSurface(const sp<IGraphicBufferProducer>& surface) = 0; -    virtual status_t setOutputFile(const char *path) = 0;      virtual status_t setOutputFile(int fd, int64_t offset, int64_t length) = 0;      virtual status_t setOutputFileAuxiliary(int fd) {return INVALID_OPERATION;}      virtual status_t setParameters(const String8& params) = 0; diff --git a/include/media/mediarecorder.h b/include/media/mediarecorder.h index b0a62a7..74a6469 100644 --- a/include/media/mediarecorder.h +++ b/include/media/mediarecorder.h @@ -221,7 +221,6 @@ public:      status_t    setOutputFormat(int of);      status_t    setVideoEncoder(int ve);      status_t    setAudioEncoder(int ae); -    status_t    setOutputFile(const char* path);      status_t    setOutputFile(int fd, int64_t offset, int64_t length);      status_t    setVideoSize(int width, int height);      status_t    setVideoFrameRate(int frames_per_second); diff --git a/include/media/stagefright/AACWriter.h b/include/media/stagefright/AACWriter.h index d22707a..86417a5 100644 --- a/include/media/stagefright/AACWriter.h +++ b/include/media/stagefright/AACWriter.h @@ -27,7 +27,6 @@ struct MediaSource;  struct MetaData;  struct AACWriter : public MediaWriter { -    AACWriter(const char *filename);      AACWriter(int fd);      status_t initCheck() const; diff --git a/include/media/stagefright/AMRWriter.h b/include/media/stagefright/AMRWriter.h index 392f968..bac878b 100644 --- a/include/media/stagefright/AMRWriter.h +++ b/include/media/stagefright/AMRWriter.h @@ -29,7 +29,6 @@ struct MediaSource;  struct MetaData;  struct AMRWriter : public MediaWriter { -    AMRWriter(const char *filename);      AMRWriter(int fd);      status_t initCheck() const; diff --git a/include/media/stagefright/MPEG2TSWriter.h b/include/media/stagefright/MPEG2TSWriter.h index 2e2922e..3d7960b 100644 --- a/include/media/stagefright/MPEG2TSWriter.h +++ b/include/media/stagefright/MPEG2TSWriter.h @@ -29,7 +29,6 @@ struct ABuffer;  struct MPEG2TSWriter : public MediaWriter {      MPEG2TSWriter(int fd); -    MPEG2TSWriter(const char *filename);      MPEG2TSWriter(              void *cookie, diff --git a/include/media/stagefright/MPEG4Writer.h b/include/media/stagefright/MPEG4Writer.h index 26ce5f9..899b324 100644 --- a/include/media/stagefright/MPEG4Writer.h +++ b/include/media/stagefright/MPEG4Writer.h @@ -32,7 +32,6 @@ class MetaData;  class MPEG4Writer : public MediaWriter {  public: -    MPEG4Writer(const char *filename);      MPEG4Writer(int fd);      // Limitations diff --git a/include/media/stagefright/MediaMuxer.h b/include/media/stagefright/MediaMuxer.h index 9da98d9..e6538d1 100644 --- a/include/media/stagefright/MediaMuxer.h +++ b/include/media/stagefright/MediaMuxer.h @@ -50,9 +50,6 @@ public:          OUTPUT_FORMAT_LIST_END // must be last - used to validate format type      }; -    // Construct the muxer with the output file path. -    MediaMuxer(const char *path, OutputFormat format); -      // Construct the muxer with the file descriptor. Note that the MediaMuxer      // will close this file at stop().      MediaMuxer(int fd, OutputFormat format); diff --git a/media/libmedia/IMediaRecorder.cpp b/media/libmedia/IMediaRecorder.cpp index a733b68..3180c8c 100644 --- a/media/libmedia/IMediaRecorder.cpp +++ b/media/libmedia/IMediaRecorder.cpp @@ -46,7 +46,6 @@ enum {      SET_OUTPUT_FORMAT,      SET_VIDEO_ENCODER,      SET_AUDIO_ENCODER, -    SET_OUTPUT_FILE_PATH,      SET_OUTPUT_FILE_FD,      SET_VIDEO_SIZE,      SET_VIDEO_FRAMERATE, @@ -158,16 +157,6 @@ public:          return reply.readInt32();      } -    status_t setOutputFile(const char* path) -    { -        ALOGV("setOutputFile(%s)", path); -        Parcel data, reply; -        data.writeInterfaceToken(IMediaRecorder::getInterfaceDescriptor()); -        data.writeCString(path); -        remote()->transact(SET_OUTPUT_FILE_PATH, data, &reply); -        return reply.readInt32(); -    } -      status_t setOutputFile(int fd, int64_t offset, int64_t length) {          ALOGV("setOutputFile(%d, %" PRId64 ", %" PRId64 ")", fd, offset, length);          Parcel data, reply; @@ -390,13 +379,6 @@ status_t BnMediaRecorder::onTransact(              return NO_ERROR;          } break; -        case SET_OUTPUT_FILE_PATH: { -            ALOGV("SET_OUTPUT_FILE_PATH"); -            CHECK_INTERFACE(IMediaRecorder, data, reply); -            const char* path = data.readCString(); -            reply->writeInt32(setOutputFile(path)); -            return NO_ERROR; -        } break;          case SET_OUTPUT_FILE_FD: {              ALOGV("SET_OUTPUT_FILE_FD");              CHECK_INTERFACE(IMediaRecorder, data, reply); diff --git a/media/libmedia/mediarecorder.cpp b/media/libmedia/mediarecorder.cpp index 1952b86..973e156 100644 --- a/media/libmedia/mediarecorder.cpp +++ b/media/libmedia/mediarecorder.cpp @@ -264,32 +264,6 @@ status_t MediaRecorder::setAudioEncoder(int ae)      return ret;  } -status_t MediaRecorder::setOutputFile(const char* path) -{ -    ALOGV("setOutputFile(%s)", path); -    if (mMediaRecorder == NULL) { -        ALOGE("media recorder is not initialized yet"); -        return INVALID_OPERATION; -    } -    if (mIsOutputFileSet) { -        ALOGE("output file has already been set"); -        return INVALID_OPERATION; -    } -    if (!(mCurrentState & MEDIA_RECORDER_DATASOURCE_CONFIGURED)) { -        ALOGE("setOutputFile called in an invalid state(%d)", mCurrentState); -        return INVALID_OPERATION; -    } - -    status_t ret = mMediaRecorder->setOutputFile(path); -    if (OK != ret) { -        ALOGV("setOutputFile failed: %d", ret); -        mCurrentState = MEDIA_RECORDER_ERROR; -        return ret; -    } -    mIsOutputFileSet = true; -    return ret; -} -  status_t MediaRecorder::setOutputFile(int fd, int64_t offset, int64_t length)  {      ALOGV("setOutputFile(%d, %" PRId64 ", %" PRId64 ")", fd, offset, length); diff --git a/media/libmediaplayerservice/MediaRecorderClient.cpp b/media/libmediaplayerservice/MediaRecorderClient.cpp index 194abbb..4d4de9b 100644 --- a/media/libmediaplayerservice/MediaRecorderClient.cpp +++ b/media/libmediaplayerservice/MediaRecorderClient.cpp @@ -154,17 +154,6 @@ status_t MediaRecorderClient::setAudioEncoder(int ae)      return mRecorder->setAudioEncoder((audio_encoder)ae);  } -status_t MediaRecorderClient::setOutputFile(const char* path) -{ -    ALOGV("setOutputFile(%s)", path); -    Mutex::Autolock lock(mLock); -    if (mRecorder == NULL) { -        ALOGE("recorder is not initialized"); -        return NO_INIT; -    } -    return mRecorder->setOutputFile(path); -} -  status_t MediaRecorderClient::setOutputFile(int fd, int64_t offset, int64_t length)  {      ALOGV("setOutputFile(%d, %lld, %lld)", fd, offset, length); diff --git a/media/libmediaplayerservice/MediaRecorderClient.h b/media/libmediaplayerservice/MediaRecorderClient.h index a65ec9f..a444b6c 100644 --- a/media/libmediaplayerservice/MediaRecorderClient.h +++ b/media/libmediaplayerservice/MediaRecorderClient.h @@ -38,7 +38,6 @@ public:      virtual     status_t   setOutputFormat(int of);      virtual     status_t   setVideoEncoder(int ve);      virtual     status_t   setAudioEncoder(int ae); -    virtual     status_t   setOutputFile(const char* path);      virtual     status_t   setOutputFile(int fd, int64_t offset,                                                    int64_t length);      virtual     status_t   setVideoSize(int width, int height); diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 3d093fa..a60ee7f 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -241,14 +241,6 @@ status_t StagefrightRecorder::setPreviewSurface(const sp<IGraphicBufferProducer>      return OK;  } -status_t StagefrightRecorder::setOutputFile(const char * /* path */) { -    ALOGE("setOutputFile(const char*) must not be called"); -    // We don't actually support this at all, as the media_server process -    // no longer has permissions to create files. - -    return -EPERM; -} -  status_t StagefrightRecorder::setOutputFile(int fd, int64_t offset, int64_t length) {      ALOGV("setOutputFile: %d, %lld, %lld", fd, offset, length);      // These don't make any sense, do they? diff --git a/media/libmediaplayerservice/StagefrightRecorder.h b/media/libmediaplayerservice/StagefrightRecorder.h index 54c38d3..a6eba39 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.h +++ b/media/libmediaplayerservice/StagefrightRecorder.h @@ -53,7 +53,6 @@ struct StagefrightRecorder : public MediaRecorderBase {      virtual status_t setVideoFrameRate(int frames_per_second);      virtual status_t setCamera(const sp<ICamera>& camera, const sp<ICameraRecordingProxy>& proxy);      virtual status_t setPreviewSurface(const sp<IGraphicBufferProducer>& surface); -    virtual status_t setOutputFile(const char *path);      virtual status_t setOutputFile(int fd, int64_t offset, int64_t length);      virtual status_t setParameters(const String8& params);      virtual status_t setListener(const sp<IMediaRecorderClient>& listener); diff --git a/media/libstagefright/AACWriter.cpp b/media/libstagefright/AACWriter.cpp index 2e41d80..9d90dbd 100644 --- a/media/libstagefright/AACWriter.cpp +++ b/media/libstagefright/AACWriter.cpp @@ -36,33 +36,19 @@  namespace android { -AACWriter::AACWriter(const char *filename) -    : mFd(-1), -      mInitCheck(NO_INIT), -      mStarted(false), -      mPaused(false), -      mResumed(false), -      mChannelCount(-1), -      mSampleRate(-1), -      mAACProfile(OMX_AUDIO_AACObjectLC) { - -    ALOGV("AACWriter Constructor"); - -    mFd = open(filename, O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); -    if (mFd >= 0) { -        mInitCheck = OK; -    } -} -  AACWriter::AACWriter(int fd)      : mFd(dup(fd)),        mInitCheck(mFd < 0? NO_INIT: OK),        mStarted(false),        mPaused(false),        mResumed(false), +      mThread(0), +      mEstimatedSizeBytes(0), +      mEstimatedDurationUs(0),        mChannelCount(-1),        mSampleRate(-1), -      mAACProfile(OMX_AUDIO_AACObjectLC) { +      mAACProfile(OMX_AUDIO_AACObjectLC), +      mFrameDurationUs(0) {  }  AACWriter::~AACWriter() { diff --git a/media/libstagefright/AMRWriter.cpp b/media/libstagefright/AMRWriter.cpp index 9aa7d95..f53d7f0 100644 --- a/media/libstagefright/AMRWriter.cpp +++ b/media/libstagefright/AMRWriter.cpp @@ -31,19 +31,6 @@  namespace android { -AMRWriter::AMRWriter(const char *filename) -    : mFd(-1), -      mInitCheck(NO_INIT), -      mStarted(false), -      mPaused(false), -      mResumed(false) { - -    mFd = open(filename, O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); -    if (mFd >= 0) { -        mInitCheck = OK; -    } -} -  AMRWriter::AMRWriter(int fd)      : mFd(dup(fd)),        mInitCheck(mFd < 0? NO_INIT: OK), diff --git a/media/libstagefright/MPEG2TSWriter.cpp b/media/libstagefright/MPEG2TSWriter.cpp index 9856f92..4359fb9 100644 --- a/media/libstagefright/MPEG2TSWriter.cpp +++ b/media/libstagefright/MPEG2TSWriter.cpp @@ -480,19 +480,6 @@ MPEG2TSWriter::MPEG2TSWriter(int fd)      init();  } -MPEG2TSWriter::MPEG2TSWriter(const char *filename) -    : mFile(fopen(filename, "wb")), -      mWriteCookie(NULL), -      mWriteFunc(NULL), -      mStarted(false), -      mNumSourcesDone(0), -      mNumTSPacketsWritten(0), -      mNumTSPacketsBeforeMeta(0), -      mPATContinuityCounter(0), -      mPMTContinuityCounter(0) { -    init(); -} -  MPEG2TSWriter::MPEG2TSWriter(          void *cookie,          ssize_t (*write)(void *cookie, const void *data, size_t size)) diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp index 9f20b1d..beb6f20 100644 --- a/media/libstagefright/MPEG4Writer.cpp +++ b/media/libstagefright/MPEG4Writer.cpp @@ -345,31 +345,6 @@ private:      Track &operator=(const Track &);  }; -MPEG4Writer::MPEG4Writer(const char *filename) -    : mFd(-1), -      mInitCheck(NO_INIT), -      mIsRealTimeRecording(true), -      mUse4ByteNalLength(true), -      mUse32BitOffset(true), -      mIsFileSizeLimitExplicitlyRequested(false), -      mPaused(false), -      mStarted(false), -      mWriterThreadStarted(false), -      mOffset(0), -      mMdatOffset(0), -      mEstimatedMoovBoxSize(0), -      mInterleaveDurationUs(1000000), -      mLatitudex10000(0), -      mLongitudex10000(0), -      mAreGeoTagsAvailable(false), -      mStartTimeOffsetMs(-1) { - -    mFd = open(filename, O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); -    if (mFd >= 0) { -        mInitCheck = OK; -    } -} -  MPEG4Writer::MPEG4Writer(int fd)      : mFd(dup(fd)),        mInitCheck(mFd < 0? NO_INIT: OK), diff --git a/media/libstagefright/MediaMuxer.cpp b/media/libstagefright/MediaMuxer.cpp index c7c6f34..b13877d 100644 --- a/media/libstagefright/MediaMuxer.cpp +++ b/media/libstagefright/MediaMuxer.cpp @@ -38,21 +38,6 @@  namespace android { -MediaMuxer::MediaMuxer(const char *path, OutputFormat format) -    : mFormat(format), -      mState(UNINITIALIZED) { -    if (format == OUTPUT_FORMAT_MPEG_4) { -        mWriter = new MPEG4Writer(path); -    } else if (format == OUTPUT_FORMAT_WEBM) { -        mWriter = new WebmWriter(path); -    } - -    if (mWriter != NULL) { -        mFileMeta = new MetaData; -        mState = INITIALIZED; -    } -} -  MediaMuxer::MediaMuxer(int fd, OutputFormat format)      : mFormat(format),        mState(UNINITIALIZED) { diff --git a/media/libstagefright/webm/WebmWriter.cpp b/media/libstagefright/webm/WebmWriter.cpp index 069961b..737f144 100644 --- a/media/libstagefright/webm/WebmWriter.cpp +++ b/media/libstagefright/webm/WebmWriter.cpp @@ -80,38 +80,6 @@ WebmWriter::WebmWriter(int fd)              mCuePoints);  } -WebmWriter::WebmWriter(const char *filename) -    : mInitCheck(NO_INIT), -      mTimeCodeScale(1000000), -      mStartTimestampUs(0), -      mStartTimeOffsetMs(0), -      mSegmentOffset(0), -      mSegmentDataStart(0), -      mInfoOffset(0), -      mInfoSize(0), -      mTracksOffset(0), -      mCuesOffset(0), -      mPaused(false), -      mStarted(false), -      mIsFileSizeLimitExplicitlyRequested(false), -      mIsRealTimeRecording(false), -      mStreamableFile(true), -      mEstimatedCuesSize(0) { -    mFd = open(filename, O_CREAT | O_LARGEFILE | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); -    if (mFd >= 0) { -        ALOGV("fd %d; flags: %o", mFd, fcntl(mFd, F_GETFL, 0)); -        mInitCheck = OK; -    } -    mStreams[kAudioIndex] = WebmStream(kAudioType, "Audio", &WebmWriter::audioTrack); -    mStreams[kVideoIndex] = WebmStream(kVideoType, "Video", &WebmWriter::videoTrack); -    mSinkThread = new WebmFrameSinkThread( -            mFd, -            mSegmentDataStart, -            mStreams[kVideoIndex].mSink, -            mStreams[kAudioIndex].mSink, -            mCuePoints); -} -  // static  sp<WebmElement> WebmWriter::videoTrack(const sp<MetaData>& md) {      int32_t width, height; diff --git a/media/libstagefright/webm/WebmWriter.h b/media/libstagefright/webm/WebmWriter.h index 36b6965..4ad770e 100644 --- a/media/libstagefright/webm/WebmWriter.h +++ b/media/libstagefright/webm/WebmWriter.h @@ -37,7 +37,6 @@ namespace android {  class WebmWriter : public MediaWriter {  public:      WebmWriter(int fd); -    WebmWriter(const char *filename);      ~WebmWriter() { reset(); }  | 
