From 1e933870f6521742ca55ea9cec669e33cc4e52f2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?=
 <rafael.carre@savoirfairelinux.com>
Date: Mon, 4 Jul 2011 15:53:07 -0400
Subject: [PATCH] Make the x264 preset builtin

---
 .../src/video/libx264-ultrafast.ffpreset      | 24 ---------------
 .../src/video/libx264-ultrafast.ffpreset.h    | 24 +++++++++++++++
 .../src/video/video_send_thread.cpp           | 29 ++-----------------
 3 files changed, 26 insertions(+), 51 deletions(-)
 delete mode 100644 sflphone-common/src/video/libx264-ultrafast.ffpreset
 create mode 100644 sflphone-common/src/video/libx264-ultrafast.ffpreset.h

diff --git a/sflphone-common/src/video/libx264-ultrafast.ffpreset b/sflphone-common/src/video/libx264-ultrafast.ffpreset
deleted file mode 100644
index 28dc0eb836..0000000000
--- a/sflphone-common/src/video/libx264-ultrafast.ffpreset
+++ /dev/null
@@ -1,24 +0,0 @@
-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
diff --git a/sflphone-common/src/video/libx264-ultrafast.ffpreset.h b/sflphone-common/src/video/libx264-ultrafast.ffpreset.h
new file mode 100644
index 0000000000..f9bbc23d54
--- /dev/null
+++ b/sflphone-common/src/video/libx264-ultrafast.ffpreset.h
@@ -0,0 +1,24 @@
+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";
diff --git a/sflphone-common/src/video/video_send_thread.cpp b/sflphone-common/src/video/video_send_thread.cpp
index f7903ff611..0913f3577a 100644
--- a/sflphone-common/src/video/video_send_thread.cpp
+++ b/sflphone-common/src/video/video_send_thread.cpp
@@ -42,6 +42,7 @@ extern "C" {
 }
 
 #include "manager.h"
+#include "libx264-ultrafast.ffpreset.h"
 
 namespace sfl_video {
 
@@ -84,33 +85,7 @@ void VideoSendThread::waitForSDP()
 
 void VideoSendThread::forcePresetX264()
 {
-    std::cerr << "get x264 preset time" << std::endl;
-    //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
+    av_set_options_string(encoderCtx_, x264_preset_ultrafast, "=", "\n");
 }
 
 void VideoSendThread::prepareEncoderContext()
-- 
GitLab