diff --git a/lib/native/freebsd-64/libffmpeg.so b/lib/native/freebsd-64/libffmpeg.so
index 7ba684b00..060127a98 100755
Binary files a/lib/native/freebsd-64/libffmpeg.so and b/lib/native/freebsd-64/libffmpeg.so differ
diff --git a/lib/native/freebsd/libffmpeg.so b/lib/native/freebsd/libffmpeg.so
index 1d85231b8..dda1bacca 100755
Binary files a/lib/native/freebsd/libffmpeg.so and b/lib/native/freebsd/libffmpeg.so differ
diff --git a/lib/native/linux-64/libffmpeg.so b/lib/native/linux-64/libffmpeg.so
index fe334791f..128947b1c 100755
Binary files a/lib/native/linux-64/libffmpeg.so and b/lib/native/linux-64/libffmpeg.so differ
diff --git a/lib/native/linux/libffmpeg.so b/lib/native/linux/libffmpeg.so
index cae872ddc..49a4e5b32 100755
Binary files a/lib/native/linux/libffmpeg.so and b/lib/native/linux/libffmpeg.so differ
diff --git a/lib/native/mac/libffmpeg.jnilib b/lib/native/mac/libffmpeg.jnilib
index d27c638ee..6707a9833 100755
Binary files a/lib/native/mac/libffmpeg.jnilib and b/lib/native/mac/libffmpeg.jnilib differ
diff --git a/lib/native/windows-64/ffmpeg.dll b/lib/native/windows-64/ffmpeg.dll
index 10ef8a3a9..8cc41feff 100644
Binary files a/lib/native/windows-64/ffmpeg.dll and b/lib/native/windows-64/ffmpeg.dll differ
diff --git a/lib/native/windows/ffmpeg.dll b/lib/native/windows/ffmpeg.dll
index 284a1cdfd..d1c578ac5 100644
Binary files a/lib/native/windows/ffmpeg.dll and b/lib/native/windows/ffmpeg.dll differ
diff --git a/src/native/ffmpeg/ffmpeg_utils.c b/src/native/ffmpeg/ffmpeg_utils.c
index d6f5aa03d..cb6b625e3 100644
--- a/src/native/ffmpeg/ffmpeg_utils.c
+++ b/src/native/ffmpeg/ffmpeg_utils.c
@@ -109,8 +109,8 @@ int get_filtered_video_frame(AVFilterContext *ctx, AVFrame *frame,
return 1;
}
-int configure_filters(AVInputStream *ist, int pix_fmt, AVFilterGraph *graph,
- const char* vfilters)
+int configure_filters(AVInputStream *ist, int pix_fmt, int w, int h,
+ AVFilterGraph *graph, const char* vfilters)
{
AVFilterContext *last_filter;
/** filter graph containing all filters including input & output */
@@ -119,8 +119,8 @@ int configure_filters(AVInputStream *ist, int pix_fmt, AVFilterGraph *graph,
FFSinkContext ffsink_ctx = { .pix_fmt = pix_fmt };
char args[255];
int ret;
- int width = 640;
- int height = 480;
+ int width = w;
+ int height = h;
//graph = av_mallocz(sizeof(AVFilterGraph));
diff --git a/src/native/ffmpeg/ffmpeg_utils.h b/src/native/ffmpeg/ffmpeg_utils.h
index 4708dae2b..2489e4da6 100644
--- a/src/native/ffmpeg/ffmpeg_utils.h
+++ b/src/native/ffmpeg/ffmpeg_utils.h
@@ -107,7 +107,7 @@ typedef struct AVInputStream {
int get_filtered_video_frame(AVFilterContext *sink, AVFrame *frame,
AVFilterBufferRef **picref, AVRational *pts_tb);
-int configure_filters(AVInputStream *ist, int pix_fmt, AVFilterGraph *graph,
- const char* vfilters);
+int configure_filters(AVInputStream *ist, int pix_fmt, int width, int height,
+ AVFilterGraph *graph, const char* vfilters);
#endif /* FFMPEG_CMDUTILS_H */
diff --git a/src/native/ffmpeg/net_java_sip_communicator_impl_neomedia_codec_FFmpeg.c b/src/native/ffmpeg/net_java_sip_communicator_impl_neomedia_codec_FFmpeg.c
index cb56efdfc..423a37d34 100644
--- a/src/native/ffmpeg/net_java_sip_communicator_impl_neomedia_codec_FFmpeg.c
+++ b/src/native/ffmpeg/net_java_sip_communicator_impl_neomedia_codec_FFmpeg.c
@@ -702,12 +702,14 @@ Java_net_java_sip_communicator_impl_neomedia_codec_FFmpeg_avfilter_1free_1output
JNIEXPORT jint JNICALL
Java_net_java_sip_communicator_impl_neomedia_codec_FFmpeg_avfilter_1configure_1filters
- (JNIEnv *jniEnv, jclass clazz, jstring vfilters, jlong inputstream, jint pix_fmt, jlong graph)
+ (JNIEnv *jniEnv, jclass clazz, jstring vfilters, jlong inputstream, jint pix_fmt,
+ jint width, jint height, jlong graph)
{
jint ret = 0;
const char* filters = (*jniEnv)->GetStringUTFChars (jniEnv, vfilters, NULL);
- ret = configure_filters((AVInputStream*)inputstream, pix_fmt, (AVFilterGraph*)graph, filters);
+ ret = configure_filters((AVInputStream*)inputstream, pix_fmt, width, height,
+ (AVFilterGraph*)graph, filters);
(*jniEnv)->ReleaseStringUTFChars (jniEnv, vfilters, filters);
return ret;
diff --git a/src/native/ffmpeg/net_java_sip_communicator_impl_neomedia_codec_FFmpeg.h b/src/native/ffmpeg/net_java_sip_communicator_impl_neomedia_codec_FFmpeg.h
index 08d3cbb15..e5515dc62 100644
--- a/src/native/ffmpeg/net_java_sip_communicator_impl_neomedia_codec_FFmpeg.h
+++ b/src/native/ffmpeg/net_java_sip_communicator_impl_neomedia_codec_FFmpeg.h
@@ -641,10 +641,10 @@ JNIEXPORT void JNICALL Java_net_java_sip_communicator_impl_neomedia_codec_FFmpeg
/*
* Class: net_java_sip_communicator_impl_neomedia_codec_FFmpeg
* Method: avfilter_configure_filters
- * Signature: (Ljava/lang/String;JIJ)I
+ * Signature: (Ljava/lang/String;JIIIJ)I
*/
JNIEXPORT jint JNICALL Java_net_java_sip_communicator_impl_neomedia_codec_FFmpeg_avfilter_1configure_1filters
- (JNIEnv *, jclass, jstring, jlong, jint, jlong);
+ (JNIEnv *, jclass, jstring, jlong, jint, jint, jint, jlong);
/*
* Class: net_java_sip_communicator_impl_neomedia_codec_FFmpeg
diff --git a/src/net/java/sip/communicator/impl/neomedia/codec/FFmpeg.java b/src/net/java/sip/communicator/impl/neomedia/codec/FFmpeg.java
index 53e7a8291..8f83f0e26 100644
--- a/src/net/java/sip/communicator/impl/neomedia/codec/FFmpeg.java
+++ b/src/net/java/sip/communicator/impl/neomedia/codec/FFmpeg.java
@@ -668,11 +668,13 @@ public static native int sws_scale(
* @param filters filters list
* @param avinputstream AVInputStream pointer
* @param pix_fmt pixel format
+ * @param width width of the video
+ * @param height height of the video
* @param graph AVFilterGraph pointer
* @return 0 if success, -1 otherwise
*/
public static native int avfilter_configure_filters(String filters,
- long avinputstream, int pix_fmt, long graph);
+ long avinputstream, int pix_fmt, int width, int height, long graph);
/**
* Add the picture to the inputstream to be filtered.
diff --git a/src/net/java/sip/communicator/impl/neomedia/videoflip/VideoFlipEffect.java b/src/net/java/sip/communicator/impl/neomedia/videoflip/VideoFlipEffect.java
index 623875acc..5142ec143 100644
--- a/src/net/java/sip/communicator/impl/neomedia/videoflip/VideoFlipEffect.java
+++ b/src/net/java/sip/communicator/impl/neomedia/videoflip/VideoFlipEffect.java
@@ -212,7 +212,8 @@ public int process(Buffer inputBuffer, Buffer outputBuffer)
{
AVFrameFormat format = (AVFrameFormat)inputBuffer.getFormat();
if(FFmpeg.avfilter_configure_filters("hflip", inputstream,
- format.getPixFmt(), graph) != 0)
+ format.getPixFmt(), format.getSize().width,
+ format.getSize().height, graph) != 0)
{
if(logger.isDebugEnabled())
{