Skip to content
Snippets Groups Projects
Commit 1e933870 authored by Rafaël Carré's avatar Rafaël Carré
Browse files

Make the x264 preset builtin

parent 554be882
Branches
Tags
No related merge requests found
coder=0
flags=-loop
cmp=+chroma
partitions=-parti8x8-parti4x4-partp8x8-partb8x8
me_method=dia
subq=0
me_range=16
g=250
keyint_min=25
sc_threshold=0
i_qfactor=0.71
b_strategy=0
qcomp=0.6
qmin=0
qmax=69
qdiff=4
bf=0
refs=1
directpred=1
trellis=0
flags2=-bpyramid-mixed_refs-wpred-dct8x8+fastpskip-mbtree
wpredp=0
aq_mode=0
rc_lookahead=0
static const char *x264_preset_ultrafast = "coder=0\n" \
"flags=-loop\n" \
"cmp=+chroma\n" \
"partitions=-parti8x8-parti4x4-partp8x8-partb8x8\n" \
"me_method=dia\n" \
"subq=0\n" \
"me_range=16\n" \
"g=250\n" \
"keyint_min=25\n" \
"sc_threshold=0\n" \
"i_qfactor=0.71\n" \
"b_strategy=0\n" \
"qcomp=0.6\n" \
"qmin=0\n" \
"qmax=69\n" \
"qdiff=4\n" \
"bf=0\n" \
"refs=1\n" \
"directpred=1\n" \
"trellis=0\n" \
"flags2=-bpyramid-mixed_refs-wpred-dct8x8+fastpskip-mbtree\n" \
"wpredp=0\n" \
"aq_mode=0\n" \
"rc_lookahead=0";
...@@ -42,6 +42,7 @@ extern "C" { ...@@ -42,6 +42,7 @@ extern "C" {
} }
#include "manager.h" #include "manager.h"
#include "libx264-ultrafast.ffpreset.h"
namespace sfl_video { namespace sfl_video {
...@@ -84,33 +85,7 @@ void VideoSendThread::waitForSDP() ...@@ -84,33 +85,7 @@ void VideoSendThread::waitForSDP()
void VideoSendThread::forcePresetX264() void VideoSendThread::forcePresetX264()
{ {
std::cerr << "get x264 preset time" << std::endl; av_set_options_string(encoderCtx_, x264_preset_ultrafast, "=", "\n");
//int opt_name_count = 0;
FILE *f = 0;
// FIXME: hardcoded! should look for FFMPEG_DATADIR
const char* preset_filename = "libx264-ultrafast.ffpreset";
/* open preset file for libx264 */
f = fopen(preset_filename, "r");
if (f == 0)
{
std::cerr << "File for preset ' " << preset_filename << "' not"
"found" << std::endl;
cleanup();
}
/* grab preset file and put it in character buffer */
fseek(f, 0, SEEK_END);
long pos = ftell(f);
fseek(f, 0, SEEK_SET);
char *encoder_options_string = reinterpret_cast<char*>(malloc(pos + 1));
fread(encoder_options_string, pos, 1, f);
encoder_options_string[pos] = '\0';
fclose(f);
std::cerr << "Encoder options: " << encoder_options_string << std::endl;
av_set_options_string(encoderCtx_, encoder_options_string, "=", "\n");
free(encoder_options_string); // free allocated memory
} }
void VideoSendThread::prepareEncoderContext() void VideoSendThread::prepareEncoderContext()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment