diff --git a/lib/installer-exclude/jmf.jar b/lib/installer-exclude/jmf.jar index cc8456b50..d17b5ea44 100644 Binary files a/lib/installer-exclude/jmf.jar and b/lib/installer-exclude/jmf.jar differ diff --git a/lib/native/linux-64/libavcodec.so b/lib/native/linux-64/libavcodec.so index 7871f7131..5cae03f9b 100755 Binary files a/lib/native/linux-64/libavcodec.so and b/lib/native/linux-64/libavcodec.so differ diff --git a/lib/native/linux-64/libavformat.so b/lib/native/linux-64/libavformat.so index 30fc8e8bf..c3cd7372e 100755 Binary files a/lib/native/linux-64/libavformat.so and b/lib/native/linux-64/libavformat.so differ diff --git a/lib/native/linux-64/libavutil.so b/lib/native/linux-64/libavutil.so index 65d033afa..33527121f 100755 Binary files a/lib/native/linux-64/libavutil.so and b/lib/native/linux-64/libavutil.so differ diff --git a/lib/native/linux/libavcodec.so b/lib/native/linux/libavcodec.so index 45afd23de..09eb23361 100755 Binary files a/lib/native/linux/libavcodec.so and b/lib/native/linux/libavcodec.so differ diff --git a/lib/native/linux/libavformat.so b/lib/native/linux/libavformat.so index a8fc4b2fb..647e0e732 100755 Binary files a/lib/native/linux/libavformat.so and b/lib/native/linux/libavformat.so differ diff --git a/lib/native/linux/libavutil.so b/lib/native/linux/libavutil.so index 2d7bf87ff..9816a1ae9 100755 Binary files a/lib/native/linux/libavutil.so and b/lib/native/linux/libavutil.so differ diff --git a/lib/native/mac/libavcodec.dylib b/lib/native/mac/libavcodec.dylib index 5017585c6..937b723c7 100755 Binary files a/lib/native/mac/libavcodec.dylib and b/lib/native/mac/libavcodec.dylib differ diff --git a/lib/native/mac/libavformat.dylib b/lib/native/mac/libavformat.dylib index 55084e93e..b9bd0df71 100755 Binary files a/lib/native/mac/libavformat.dylib and b/lib/native/mac/libavformat.dylib differ diff --git a/lib/native/mac/libavutil.dylib b/lib/native/mac/libavutil.dylib index 7d62e63f2..bd349682e 100755 Binary files a/lib/native/mac/libavutil.dylib and b/lib/native/mac/libavutil.dylib differ diff --git a/lib/native/windows/avcodec.dll b/lib/native/windows/avcodec.dll new file mode 100644 index 000000000..3c7c3149d Binary files /dev/null and b/lib/native/windows/avcodec.dll differ diff --git a/lib/native/windows/avformat.dll b/lib/native/windows/avformat.dll new file mode 100644 index 000000000..10da9c681 Binary files /dev/null and b/lib/native/windows/avformat.dll differ diff --git a/lib/native/windows/avutil.dll b/lib/native/windows/avutil.dll new file mode 100644 index 000000000..694f2a047 Binary files /dev/null and b/lib/native/windows/avutil.dll differ diff --git a/lib/os-specific/linux/installer-exclude/jmf.jar b/lib/os-specific/linux/installer-exclude/jmf.jar index 7517e179f..11f35ef6f 100644 Binary files a/lib/os-specific/linux/installer-exclude/jmf.jar and b/lib/os-specific/linux/installer-exclude/jmf.jar differ diff --git a/lib/os-specific/mac/installer-exclude/jmf.jar b/lib/os-specific/mac/installer-exclude/jmf.jar index 6c5972df7..154da23d6 100644 Binary files a/lib/os-specific/mac/installer-exclude/jmf.jar and b/lib/os-specific/mac/installer-exclude/jmf.jar differ diff --git a/lib/os-specific/solaris/installer-exclude/jmf.jar b/lib/os-specific/solaris/installer-exclude/jmf.jar index 0dc162fee..ee3902c92 100644 Binary files a/lib/os-specific/solaris/installer-exclude/jmf.jar and b/lib/os-specific/solaris/installer-exclude/jmf.jar differ diff --git a/lib/os-specific/windows/installer-exclude/jmf.jar b/lib/os-specific/windows/installer-exclude/jmf.jar index 0a12de096..bb95a6b67 100644 Binary files a/lib/os-specific/windows/installer-exclude/jmf.jar and b/lib/os-specific/windows/installer-exclude/jmf.jar differ diff --git a/src/net/java/sip/communicator/impl/media/MediaControl.java b/src/net/java/sip/communicator/impl/media/MediaControl.java index 4561b6ac0..8f5388d16 100644 --- a/src/net/java/sip/communicator/impl/media/MediaControl.java +++ b/src/net/java/sip/communicator/impl/media/MediaControl.java @@ -636,7 +636,6 @@ private void calculateSupportedEncodings() } else if (format instanceof VideoFormat) { -System.out.println("format " + format + "/" + encoding + "/" + sdp); if (!transmittableVideoEncodings.contains(sdp)) { if (logger.isDebugEnabled()) diff --git a/src/net/java/sip/communicator/impl/media/codec/video/h264/NativeDecoder.java b/src/net/java/sip/communicator/impl/media/codec/video/h264/NativeDecoder.java index eb062f8d6..9b3a3ef48 100644 --- a/src/net/java/sip/communicator/impl/media/codec/video/h264/NativeDecoder.java +++ b/src/net/java/sip/communicator/impl/media/codec/video/h264/NativeDecoder.java @@ -56,6 +56,9 @@ public class NativeDecoder new Dimension(128, 96) }; + // index of default size (output format) + private static final int defaultSizeIx = 2; + /** * Constructs new h264 decoder */ @@ -71,21 +74,7 @@ public NativeDecoder() { new RGBFormat() }; - PLUGIN_NAME = "H.264 Decoder"; - - AVFORMAT = AVFormatLibrary.INSTANCE; - AVCODEC = AVCodecLibrary.INSTANCE; - AVUTIL = AVUtilLibrary.INSTANCE; - - AVFORMAT.av_register_all(); - - AVCODEC.avcodec_init(); - } - - protected Format[] getMatchingOutputFormats(Format in) - { - VideoFormat ivf = (VideoFormat) in; - + supportedOutputFormats = new VideoFormat[supportedSizes.length]; for (int i = 0; i < supportedSizes.length; i++) @@ -97,18 +86,46 @@ protected Format[] getMatchingOutputFormats(Format in) size, -1, Format.intArray, - ivf.getFrameRate(), + Format.NOT_SPECIFIED, 32, 0xFF0000, - 0xFF00, + 0xFF00, 0xFF, 1, size.width, Format.FALSE, Format.NOT_SPECIFIED); } + + PLUGIN_NAME = "H.264 Decoder"; + + AVFORMAT = AVFormatLibrary.INSTANCE; + AVCODEC = AVCodecLibrary.INSTANCE; + AVUTIL = AVUtilLibrary.INSTANCE; + + AVFORMAT.av_register_all(); + + AVCODEC.avcodec_init(); + } + + protected Format[] getMatchingOutputFormats(Format in) + { + VideoFormat ivf = (VideoFormat) in; + + // return the default size/currently decoder and encoder + //set to transmit/receive at this size + if(ivf.getSize() == null) + return new Format[]{supportedOutputFormats[defaultSizeIx]}; + + for (int i = 0; i < supportedOutputFormats.length; i++) + { + RGBFormat f = (RGBFormat)supportedOutputFormats[i]; + + if(f.getSize().equals(ivf.getSize())) + return new Format[]{f}; + } - return supportedOutputFormats; + return null; } /** diff --git a/src/net/java/sip/communicator/impl/media/codec/video/h264/NativeEncoder.java b/src/net/java/sip/communicator/impl/media/codec/video/h264/NativeEncoder.java index 4d33449d3..d811fc1e8 100644 --- a/src/net/java/sip/communicator/impl/media/codec/video/h264/NativeEncoder.java +++ b/src/net/java/sip/communicator/impl/media/codec/video/h264/NativeEncoder.java @@ -385,8 +385,8 @@ public synchronized void open() throws ResourceUnavailableException avcontext.qcompress = 1; - //int _bitRate = 267000; - //avcontext.bit_rate = (_bitRate * 3) >> 2; // average bit rate + int _bitRate = 267000; + avcontext.bit_rate = (_bitRate * 3) >> 2; // average bit rate AVUTIL.av_log_set_callback(new AVUtilLibrary.LogCallback(){