diff --git a/java/impl/org/linphone/tools/H264Helper.java b/java/impl/org/linphone/tools/H264Helper.java
new file mode 100644
index 0000000000000000000000000000000000000000..49f4ced2968505b7f461833aacdcb042f6280da8
--- /dev/null
+++ b/java/impl/org/linphone/tools/H264Helper.java
@@ -0,0 +1,81 @@
+package org.linphone.tools;
+
+
+import android.os.Build;
+
+import org.linphone.core.LinphoneCore;
+import org.linphone.mediastream.Log;
+
+/**
+ * Created by brieucviel on 09/12/2016.
+ */
+
+public class H264Helper {
+    private static String FILTER_NAME_OPENH264_ENC = "MSOpenH264Enc" ;
+    private static String FILTER_NAME_OPENH264_DEC = "MSOpenH264Dec" ;
+    private static String FILTER_NAME_MEDIA_CODEC_ENC = "MSMediaCodecH264Enc" ;
+    private static String FILTER_NAME_MEDIA_CODEC_DEC = "MSMediaCodecH264Dec" ;
+
+    public static String MODE_AUTO = "Auto" ;
+    public static String MODE_OPENH264 = "OpenH264" ;
+    public static String MODE_MEDIA_CODEC = "MediaCodec" ;
+
+
+    /**
+     * H264Helper
+     */
+    public H264Helper() {
+
+    }
+
+
+    /**
+     * Define the Codec to use between MediaCodec and OpenH264
+     * Possible mode are:
+     *      - Auto to let the system choose in function of you OS version,
+     *      - OpenH264 to enable OpenH264 Encoder and Decoder,
+     *      - Mediacodec to enable Mediacodec only.
+     * @param mode String value between Auto, OpenH264 and MediaCodec
+     */
+    public static void setH264Mode(String mode, LinphoneCore linphoneCore){
+        if(mode.equals(MODE_OPENH264)){
+            Log.e("H264Helper"," setH264Mode  MODE_OPENH264 - Mode = "+mode);
+            linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_MEDIA_CODEC_DEC , false);
+            linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_MEDIA_CODEC_ENC , false);
+            linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_OPENH264_DEC , true);
+            linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_OPENH264_ENC , true);
+        }else if(mode.equals(MODE_MEDIA_CODEC)){
+            Log.e("H264Helper"," setH264Mode  MODE_MEDIA_CODEC - Mode = "+mode);
+            linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_OPENH264_DEC , false);
+            linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_OPENH264_ENC , false);
+            linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_MEDIA_CODEC_DEC , true);
+            linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_MEDIA_CODEC_ENC , true);
+        }else if(mode.equals(MODE_AUTO)){
+            Log.e("H264Helper"," setH264Mode  MODE_AUTO - Mode = "+mode);
+           // if  android >= 5.0 use MediaCodec
+           if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
+               Log.e("H264Helper"," setH264Mode  MODE_AUTO 1 - Mode = "+mode);
+               Log.i("LinphoneCoreFactoryImpl"," Openh264 disabled on the project, now using MediaCodec");
+               linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_OPENH264_DEC , false);
+               linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_OPENH264_ENC , false);
+               linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_MEDIA_CODEC_DEC , true);
+               linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_MEDIA_CODEC_ENC , true);
+           }
+           //otherwise use OpenH264
+           else{
+               Log.e("H264Helper"," setH264Mode  MODE_AUTO 2 - Mode = "+mode);
+               Log.i("LinphoneCoreFactoryImpl"," Openh264 enabled on the project");
+               linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_MEDIA_CODEC_DEC , false);
+               linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_MEDIA_CODEC_ENC , false);
+               linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_OPENH264_DEC , true);
+               linphoneCore.getMSFactory().enableFilterFromName(FILTER_NAME_OPENH264_ENC , true);
+           }
+        }else {
+            Log.e("LinphoneCoreFactoryImpl"," Error: Openh264 mode not reconized !");
+
+        }
+        Log.e("H264Helper"," setH264Mode - Mode = "+mode);
+    }
+
+}
+