From f9809847cdede8d4a0c48ab47670bd4f5887f90a Mon Sep 17 00:00:00 2001 From: jp9000 Date: Thu, 27 Feb 2014 23:14:03 -0700 Subject: [PATCH] Use MP4s when not on windows Also, make it use 'veryfast' preset. Still testing this, might have to revise this later. --- libobs/media-io/audio-io.c | 2 +- libobs/media-io/audio-io.h | 2 +- libobs/media-io/video-io.c | 2 +- libobs/media-io/video-io.h | 2 +- obs/window-basic-main.cpp | 7 ++++++- plugins/obs-ffmpeg/obs-ffmpeg-output.c | 10 +++++++--- 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/libobs/media-io/audio-io.c b/libobs/media-io/audio-io.c index 43cfced97..41bcf14a6 100644 --- a/libobs/media-io/audio-io.c +++ b/libobs/media-io/audio-io.c @@ -497,7 +497,7 @@ static inline bool audio_input_init(struct audio_input *input, } bool audio_output_connect(audio_t audio, - struct audio_convert_info *conversion, + const struct audio_convert_info *conversion, void (*callback)(void *param, const struct audio_data *data), void *param) { diff --git a/libobs/media-io/audio-io.h b/libobs/media-io/audio-io.h index 8b81c91a6..a54393c65 100644 --- a/libobs/media-io/audio-io.h +++ b/libobs/media-io/audio-io.h @@ -173,7 +173,7 @@ EXPORT int audio_output_open(audio_t *audio, struct audio_output_info *info); EXPORT void audio_output_close(audio_t audio); EXPORT bool audio_output_connect(audio_t video, - struct audio_convert_info *conversion, + const struct audio_convert_info *conversion, void (*callback)(void *param, const struct audio_data *data), void *param); EXPORT void audio_output_disconnect(audio_t video, diff --git a/libobs/media-io/video-io.c b/libobs/media-io/video-io.c index 3776c5dc3..48b1d2033 100644 --- a/libobs/media-io/video-io.c +++ b/libobs/media-io/video-io.c @@ -255,7 +255,7 @@ static inline bool video_input_init(struct video_input *input, } bool video_output_connect(video_t video, - struct video_scale_info *conversion, + const struct video_scale_info *conversion, void (*callback)(void *param, const struct video_data *frame), void *param) { diff --git a/libobs/media-io/video-io.h b/libobs/media-io/video-io.h index 4b8a60a46..4f0b1624a 100644 --- a/libobs/media-io/video-io.h +++ b/libobs/media-io/video-io.h @@ -111,7 +111,7 @@ EXPORT int video_output_open(video_t *video, struct video_output_info *info); EXPORT void video_output_close(video_t video); EXPORT bool video_output_connect(video_t video, - struct video_scale_info *conversion, + const struct video_scale_info *conversion, void (*callback)(void *param, const struct video_data *frame), void *param); EXPORT void video_output_disconnect(video_t video, diff --git a/obs/window-basic-main.cpp b/obs/window-basic-main.cpp index 812a080ed..1f28de0e4 100644 --- a/obs/window-basic-main.cpp +++ b/obs/window-basic-main.cpp @@ -601,7 +601,12 @@ void OBSBasic::on_recordButton_clicked() } else { QString path = QFileDialog::getSaveFileName(this, "Please enter a file name", QString(), - "Video Files (*.avi)"); +#ifdef _WIN32 + "AVI Files (*.avi)" +#else + "MP4 Files (*.mp4)" +#endif + ); if (path.isNull() || path.isEmpty()) return; diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.c b/plugins/obs-ffmpeg/obs-ffmpeg-output.c index 62d96a362..68297f764 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-output.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.c @@ -18,6 +18,7 @@ #include #include +#include #include #include @@ -123,6 +124,9 @@ static bool open_video_codec(struct ffmpeg_data *data) AVCodecContext *context = data->video->codec; int ret; + if (data->vcodec->id == AV_CODEC_ID_H264) + av_opt_set(context->priv_data, "preset", "veryfast", 0); + ret = avcodec_open2(context, data->vcodec, NULL); if (ret < 0) { blog(LOG_ERROR, "Failed to open video codec: %s", @@ -383,13 +387,13 @@ static const char *ffmpeg_output_getname(const char *locale) return "FFmpeg file output"; } -static void ffmpeg_log_callback(void *param, int bla, const char *format, +static void ffmpeg_log_callback(void *param, int level, const char *format, va_list args) { - blogva(LOG_DEBUG, format, args); + if (level < AV_LOG_WARNING) + blogva(LOG_DEBUG, format, args); UNUSED_PARAMETER(param); - UNUSED_PARAMETER(bla); } static void *ffmpeg_output_create(obs_data_t settings, obs_output_t output)