status_t MovieEncoder::Encode(const media_format_family& family, const media_file_format& fileFormat, const media_format& format, const media_codec_info& info, const color_space& space) { SetMediaFormatFamily(family); SetMediaFileFormat(fileFormat); SetMediaFormat(format); SetMediaCodecInfo(info); SetColorSpace(space); return Encode(); }
Controller::Controller() : BLooper("Controller"), fCaptureThread(-1), fNumFrames(0), fKillThread(true), fPaused(false), fDirectWindowAvailable(false), fEncoder(NULL), fEncoderThread(-1), fFileList(NULL), fCodecList(NULL) { memset(&fDirectInfo, 0, sizeof(fDirectInfo)); fEncoder = new MovieEncoder; Settings settings; BString name = settings.OutputFileName(); fEncoder->SetOutputFile(name.String()); BRect rect = settings.CaptureArea(); SetCaptureArea(rect); BString fileFormatName; settings.GetOutputFileFormat(fileFormatName); media_file_format fileFormat; if (!get_media_file_format(fileFormatName.String(), &fileFormat)) { if (!get_media_file_format(NULL, &fileFormat)) throw "Unable to find a suitable media_file_format!"; } SetMediaFileFormat(fileFormat); BString codecName; settings.GetOutputCodec(codecName); if (codecName != "") SetMediaCodec(codecName); else SetMediaCodec(fCodecList->ItemAt(0)->pretty_name); Run(); }