# HG changeset patch
# User t_mrc-ct@users.sourceforge.jp
# Date 1382171309 -32400
# Branch GECKO2450_2014042411_RELBRANCH
# Node ID 847dc06f1781880d8c39db5e305cb337860ae280
# Parent  398e67567dfd80070e317207dcfdcd73c6ebbe23
webrtc system-jpeg support

diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -9248,22 +9248,16 @@
    EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D include_pulse_audio=0"
 fi
 
 # Don't try to compile ssse3/sse4.1 code if toolchain doesn't support
 if test -z "$HAVE_TOOLCHAIN_SUPPORT_SSSE3" || test -z "$HAVE_TOOLCHAIN_SUPPORT_MSSE4_1"; then
   EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D yuv_disable_asm=1"
 fi
 
-if test "$TENFOURFOX_VMX"; then
-   EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D tenfourfox_vmx=1"
-else
-   EXTRA_GYP_DEFINES="$EXTRA_GYP_DEFINES -D tenfourfox_vmx=0"
-fi
-
 if test -n "$MOZ_WEBRTC"; then
    AC_MSG_RESULT("generating WebRTC Makefiles...")
 
    if test "${MOZ_WIDGET_TOOLKIT}" = "gonk"; then
       EXTRA_GYP_DEFINES="${EXTRA_GYP_DEFINES} -D build_with_gonk=1 -D include_internal_audio_device=0"
    fi
 
 dnl Any --include files must also appear in -D FORCED_INCLUDE_FILE= entries
@@ -9271,16 +9265,20 @@
    WEBRTC_CONFIG="-D build_with_mozilla=1 -D build_with_chromium=0 --include ${srcdir}/media/webrtc/webrtc_config.gypi -D FORCED_INCLUDE_FILE=${srcdir}/media/webrtc/webrtc_config.gypi"
 
    if test -n HAVE_CLOCK_MONOTONIC; then
       WEBRTC_CONFIG="${WEBRTC_CONFIG} -D have_clock_monotonic=1"
    else
       WEBRTC_CONFIG="${WEBRTC_CONFIG} -D have_clock_monotonic=0"
    fi
 
+  if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$MOZ_NATIVE_JPEG" = 1; then
+      WEBRTC_CONFIG="${WEBRTC_CONFIG} -D tenfourfox_jpeg_dir=$(printf %q ${JPEG_DIR})"
+  fi
+
    GYP_WEBRTC_OPTIONS="--format=mozmake ${WEBRTC_CONFIG} -D target_arch=${WEBRTC_TARGET_ARCH} ${EXTRA_GYP_DEFINES} --depth=${srcdir}/media/webrtc/trunk --toplevel-dir=${srcdir} -G OBJDIR=${_objdir}"
 
    $PYTHON ${srcdir}/media/webrtc/trunk/build/gyp_chromium \
      $GYP_WEBRTC_OPTIONS \
      --generator-output=${_objdir}/media/webrtc/trunk \
      ${srcdir}/media/webrtc/trunk/peerconnection.gyp
    if test "$?" != 0; then
       AC_MSG_ERROR([failed to generate WebRTC Makefiles])
diff --git a/media/webrtc/trunk/build/common.gypi b/media/webrtc/trunk/build/common.gypi
--- a/media/webrtc/trunk/build/common.gypi
+++ b/media/webrtc/trunk/build/common.gypi
@@ -1599,19 +1599,16 @@
         'defines': ['ENABLE_INPUT_SPEECH'],
       }],
       ['notifications==1', {
         'defines': ['ENABLE_NOTIFICATIONS'],
       }],
       ['enable_hidpi==1', {
         'defines': ['ENABLE_HIDPI=1'],
       }],
-      ['tenfourfox_vmx==1', {
-	'defines': ['TENFOURFOX_VMX=1'],
-      }],
       ['fastbuild!=0', {
 
         'conditions': [
           # For Windows and Mac, we don't genererate debug information.
           ['OS=="win" or OS=="mac"', {
             'msvs_settings': {
               'VCLinkerTool': {
                 'GenerateDebugInformation': 'false',
diff --git a/media/webrtc/trunk/third_party/libyuv/libyuv.gyp b/media/webrtc/trunk/third_party/libyuv/libyuv.gyp
--- a/media/webrtc/trunk/third_party/libyuv/libyuv.gyp
+++ b/media/webrtc/trunk/third_party/libyuv/libyuv.gyp
@@ -52,16 +52,56 @@
       },
       'conditions': [
         ['yuv_disable_asm==1', {
           'defines': [
             'YUV_DISABLE_ASM',
           ],
         }],
         ['build_with_mozilla==1', {
+          'variables': {
+            'tenfourfox_jpeg_dir%': '',
+          },
+          'conditions': [
+            ['tenfourfox_jpeg_dir!=""', {
+              'conditions': [
+                ['tenfourfox_jpeg_dir=="/System/Library/Frameworks/ApplicationServices.framework/Frameworks/ImageIO.framework/Resources"', {
+                  'link_settings': {
+                    'libraries': [
+                      '-L<(tenfourfox_jpeg_dir)',
+                      '-lJPEG'
+                    ]
+                  },
+                  'include_dirs': [
+                    '$(topsrcdir)/jpeg-imageio'
+                  ],
+                  'direct_dependent_settings': {
+                    'include_dirs': [
+                      '$(topsrcdir)/jpeg-imageio'
+                    ]
+                  }
+                }, {
+                  'link_settings': {
+                    'libraries': [
+                      '-L<(tenfourfox_jpeg_dir)/lib',
+                      '-ljpeg'
+                    ]
+                  },
+                  'include_dirs': [
+                    '<(tenfourfox_jpeg_dir)/include'
+                  ],
+                  'direct_dependent_settings': {
+                    'include_dirs': [
+                      '<(tenfourfox_jpeg_dir)/include'
+                    ]
+                  }
+                }]
+              ]
+            }]
+          ],
           'include_dirs': [
             '$(DEPTH)/dist/include',
           ],
           'direct_dependent_settings': {
             'include_dirs': [
               '$(DEPTH)/dist/include',
             ],
           },
diff --git a/media/webrtc/trunk/third_party/libyuv/source/mjpeg_decoder.cc b/media/webrtc/trunk/third_party/libyuv/source/mjpeg_decoder.cc
--- a/media/webrtc/trunk/third_party/libyuv/source/mjpeg_decoder.cc
+++ b/media/webrtc/trunk/third_party/libyuv/source/mjpeg_decoder.cc
@@ -15,21 +15,17 @@
 #ifndef __CLR_VER
 #include <setjmp.h>
 #define HAVE_SETJMP
 #endif
 #include <stdio.h>
 #include <stdlib.h>
 
 extern "C" {
-#ifdef TENFOURFOX_VMX
-#include "../../../../../../../jpeg-imageio/jpeglib.h"
-#else
-#include "../../../../../../../media/libjpeg/jpeglib.h"
-#endif
+#include <jpeglib.h>
 }
 
 #include <climits>
 #include <cstring>
 
 namespace libyuv {
 
 #ifdef HAVE_SETJMP
diff --git a/media/webrtc/trunk/webrtc/common_video/jpeg/data_manager.h b/media/webrtc/trunk/webrtc/common_video/jpeg/data_manager.h
--- a/media/webrtc/trunk/webrtc/common_video/jpeg/data_manager.h
+++ b/media/webrtc/trunk/webrtc/common_video/jpeg/data_manager.h
@@ -12,20 +12,20 @@
  * Jpeg source data manager
  */
 
 #ifndef WEBRTC_COMMON_VIDEO_JPEG_DATA_MANAGER
 #define WEBRTC_COMMON_VIDEO_JPEG_DATA_MANAGER
 
 #include <stdio.h>
 extern "C" {
-#ifdef TENFOURFOX_VMX
-#include "../../../../../../../jpeg-imageio/jpeglib.h"
+#if defined(USE_SYSTEM_LIBJPEG)
+#include <jpeglib.h>
 #else
-#include "../../../../../../../media/libjpeg/jpeglib.h"
+#include "jpeglib.h"
 #endif
 }
 
 namespace webrtc
 {
 
 // Source manager:
 
diff --git a/media/webrtc/trunk/webrtc/common_video/jpeg/jpeg.cc b/media/webrtc/trunk/webrtc/common_video/jpeg/jpeg.cc
--- a/media/webrtc/trunk/webrtc/common_video/jpeg/jpeg.cc
+++ b/media/webrtc/trunk/webrtc/common_video/jpeg/jpeg.cc
@@ -17,20 +17,20 @@
 
 #include "common_video/jpeg/include/jpeg.h"
 #include "common_video/jpeg/data_manager.h"
 #include "common_video/libyuv/include/webrtc_libyuv.h"
 #include "libyuv.h"
 #include "libyuv/mjpeg_decoder.h"
 
 extern "C" {
-#ifdef TENFOURFOX_VMX
-#include "../../../../../../../jpeg-imageio/jpeglib.h"
+#if defined(USE_SYSTEM_LIBJPEG)
+#include <jpeglib.h>
 #else
-#include "../../../../../../../media/libjpeg/jpeglib.h"
+#include "jpeglib.h"
 #endif
 }
 
 
 namespace webrtc
 {
 
 // Error handler
