Merge tizen patch based on 1.12.2 31/158531/5
authorEunhae Choi <eunhae1.choi@samsung.com>
Wed, 1 Nov 2017 13:14:06 +0000 (22:14 +0900)
committerEunhae Choi <eunhae1.choi@samsung.com>
Wed, 8 Nov 2017 08:19:46 +0000 (17:19 +0900)
except waylandsink,
tizen will use previous waylandsink which is included gst-plugins-tizen.

Change-Id: I9c47a204c953ecaec4f1ae6396126228d666d0bb

36 files changed:
1  2 
.gbs.conf
Makefile.am
configure.ac
ext/bz2/gstbz2enc.c
ext/directfb/dfbvideosink.c
ext/kate/gstkatedec.c
ext/musepack/gstmusepackdec.c
ext/openal/gstopenalsink.c
ext/rsvg/gstrsvgdec.c
ext/smoothstreaming/gstmssdemux.c
gst-libs/gst/Makefile.am
gst-libs/gst/adaptivedemux/gstadaptivedemux.c
gst-libs/gst/adaptivedemux/gstadaptivedemux.h
gst/autoconvert/gstautoconvert.c
gst/bayer/gstbayer2rgb.c
gst/id3tag/id3tag.c
gst/mxf/mxfalaw.c
gst/mxf/mxfdemux.c
gst/mxf/mxfdv-dif.c
gst/mxf/mxfjpeg2000.c
gst/mxf/mxfup.c
gst/mxf/mxfvc3.c
gst/sdp/gstsdpdemux.c
gst/videofilters/gstscenechange.c
gst/videofilters/gstvideodiff.c
gst/videoparsers/gsth264parse.c
gst/videosignal/gstsimplevideomark.c
gst/videosignal/gstvideoanalyse.c
packaging/common.tar.gz
packaging/gst-plugins-bad.spec
sys/applemedia/vtenc.c
sys/bluez/gstavdtpsrc.c
sys/dshowdecwrapper/gstdshowvideodec.cpp
sys/dvb/dvbbasebin.c
sys/uvch264/gstuvch264_src.c
tests/examples/camerabin2/gst-camerabin2-test.c

diff --cc .gbs.conf
index 0000000000000000000000000000000000000000,7302e56dbb82bcf4de5e9ec8d76e72589a4e99cb..3033b86177b6a384a7425698133f9fbba53ead6b
mode 000000,100644..100644
--- /dev/null
+++ b/.gbs.conf
@@@ -1,0 -1,3 +1,3 @@@
 -upstream_branch = upstream/1.6
+ [general]
++upstream_branch = upstream/1.12
+ upstream_tag = ${upstreamversion}
diff --cc Makefile.am
Simple merge
diff --cc configure.ac
index 30e26b873d56761d3f2e268a73e09b4f4693b736,25b2f589ea157dee0c9843c50b18a992bd21e5ed..3cf76f9f74a00a1b4722bfbdd6fdb5b9074107bd
@@@ -688,23 -670,13 +688,23 @@@ case $host i
    ;;
    *)
      if test "x$NEED_GL" != "xno"; then
 -      AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
 +      AG_GST_PKG_CHECK_MODULES(GL, gl)
 +      if test "x$HAVE_GL" != "xyes"; then
 +        AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
 +      fi
      fi
      if test "x$NEED_GLES2" != "xno"; then
 -      AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
 +      AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
 +      if test "x$HAVE_GLES2" != "xyes"; then
 +        AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
 +      fi
-       AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
++      AC_CHECK_HEADER([GLES3/gl3.h GLES3/gl3ext.h], [HAVE_GLES3_H=yes])
      fi
      if test "x$NEED_EGL" != "xno"; then
 -      AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
 +      AG_GST_PKG_CHECK_MODULES(EGL, egl)
 +      if test "x$HAVE_EGL" != "xyes"; then
 +        AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
 +      fi
      fi
  
      old_LIBS=$LIBS
@@@ -1915,155 -1739,18 +1915,167 @@@ AC_SUBST(LIBUDEV_LIBS
  AC_SUBST(LIBUSB_CFLAGS)
  AC_SUBST(LIBUSB_LIBS)
  
+ dnl check for tv profile
+ AC_ARG_ENABLE(tv, AC_HELP_STRING([--enable-tv], [enable tv profile]),
+         [
+           case "${enableval}" in
+            yes) TV_PROFILE=yes ;;
+            no)  TV_PROFILE=no ;;
+            *)   AC_MSG_ERROR(bad value ${enableval} for --enable-tv) ;;
+           esac
+         ],
+         [TV_PROFILE=no])
+ AM_CONDITIONAL([TV_PROFILE], [test "x$TV_PROFILE" = "xyes"])
 +dnl *** NVENC ***
 +translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
 +AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
 +  AC_ARG_WITH([cuda-prefix],
 +          AS_HELP_STRING([--with-cuda-prefix],
 +          [Use the provided prefix for detecting the cuda installation]),
 +          [AS_IF([test "x$with_cuda_prefix" != "x"],
 +                 [CUDA_PREFIX="$with_cuda_prefix"])],
 +          [CUDA_PREFIX=""])
 +
 +  HAVE_CUDA="yes"
 +  if test "x$CUDA_PREFIX" != "x"; then
 +    dnl only override if not already set
 +    if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
 +      dnl this is an educated guess, user can always override these
 +      CUDA_CFLAGS="-I$CUDA_PREFIX/include"
 +      CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
 +    fi
 +  else
 +    PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
 +      PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
 +        PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
 +          PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
 +            AC_MSG_WARN([Could not find cuda headers/libraries])])])])])
 +  fi
 +
 +  HAVE_CUDA_H=no
 +  HAVE_CUDART_H=no
 +  save_CPPFLAGS="$CPPFLAGS"
 +  CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
 +  AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
 +      AC_MSG_WARN([Could not find cuda.h]))
 +  AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
 +      AC_MSG_WARN([Could not find cuda_runtime_api.h]))
 +  CPPFLAGS=$save_CPPFLAGS
 +
 +  dnl libcuda and libcudart libraries
 +  save_LIBS="$LIBS"
 +  LIBS="$CUDA_LIBS $save_LIBS"
 +  HAVE_CUDART_LIB="no"
 +  AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
 +      AC_MSG_WARN([Could not find cudart library])])
 +  HAVE_CUDA_LIB="no"
 +  AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
 +      AC_MSG_WARN([Could not find cuda library])])
 +  LIBS="$save_LIBS"
 +
 +  dnl nvEncodeAPI.h header
 +  HAVE_NVENCODEAPI_H=no
 +  AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
 +  save_CPPFLAGS="$CPPFLAGS"
 +  CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
 +  AC_CHECK_HEADER([nvEncodeAPI.h], [
 +      AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
 +          #if NVENCAPI_MAJOR_VERSION < 5
 +          #error "Need nvEncodeAPI.h >= 5.0"
 +          #endif
 +          ]])], [
 +          HAVE_NVENCODEAPI_H=yes
 +          ], [
 +          AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
 +          ])
 +      ],
 +      AC_MSG_WARN([Could not find nvEncodeAPI.h]))
 +  AC_SUBST(NVENCODE_CFLAGS)
 +  CPPFLAGS="$save_CPPFLAGS"
 +
 +  dnl libnvnidia-encode library
 +  HAVE_NVENCODE_LIB=no
 +  AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
 +  saved_LIBS="$LIBS"
 +  LIBS="$NVENCODE_LIBS $saved_LIBS"
 +  AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
 +      AC_MSG_WARN([Could not find library nvidia-encode]))
 +  NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
 +  AC_SUBST(NVENCODE_LIBS)
 +  LIBS="$saved_LIBS"
 +
 +  USE_NVENC_GST_GL=no
 +  if test "x$HAVE_CUDA_H" = "xyes" \
 +      -a "x$HAVE_CUDART_H" = "xyes" \
 +      -a "x$HAVE_CUDA_LIB" = "xyes" \
 +      -a "x$HAVE_CUDART_LIB" = "xyes" \
 +      -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
 +      -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
 +    HAVE_NVENC="yes"
 +    if test x"$USE_OPENGL" = x"yes"; then
 +      dnl cuda-gl interop header
 +      save_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
 +      AC_CHECK_HEADER([cuda_gl_interop.h], [
 +        USE_NVENC_GST_GL="yes"
 +        AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
 +        ])
 +      CPPFLAGS="$save_CPPFLAGS"
 +    fi
 +  else
 +    HAVE_NVENC="no"
 +  fi
 +])
 +AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
 +
 +dnl check for tinyalsa
 +translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
 +AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
 +  AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
 +])
 +
 +dnl check for intel mediasdk
 +translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
 +AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
 +  AC_ARG_WITH([msdk-prefix],
 +          AS_HELP_STRING([--with-msdk-prefix],
 +          [Use the provided prefix for detecting the Intel MediaSDK]),
 +          [AS_IF([test "x$with_msdk_prefix" != "x"],
 +                 [MSDK_PREFIX="$with_msdk_prefix"])],
 +          [AS_IF([test "x$MFX_HOME" != "x"],
 +                 [MSDK_PREFIX="$MFX_HOME"],
 +                 [MSDK_PREFIX="/opt/intel/media"])])
 +  MSDK_CFLAGS="-I$MSDK_PREFIX/include"
 +  MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
 +  AC_SUBST(MSDK_CFLAGS)
 +  AC_SUBST(MSDK_LIBS)
 +
 +  save_CPPFLAGS="$CPPFLAGS"
 +  CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
 +  AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
 +  CPPFLAGS="$save_CPPFLAGS"
 +
 +  save_LIBS="$LIBS"
 +  LIBS="$MSDK_LIBS $LIBS"
 +  AC_LANG_PUSH([C++])
 +  AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
 +  AC_LANG_POP([C++])
 +  LIBS="$save_LIBS"
 +
 +  PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
 +
 +  if test "x$HAVE_MFXDEFS_H" = "xyes" \
 +      -a "x$HAVE_MFX_LIB" = "xyes" \
 +      -a "x$HAVE_LIBVA_DRM" = "xyes"; then
 +    HAVE_MSDK="yes"
 +  else
 +    HAVE_MSDK="no"
 +  fi
 +])
 +AM_CONDITIONAL(USE_MSDK_LIBVA,
 +    test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
 +
  dnl *** ext plug-ins ***
  dnl keep this list sorted alphabetically !
  
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 7c16fd3fc88339a7640d7058a15c0cc8bca233e8,aa13d7367dd9dfa8b69f53eb7da2a4a0b672c1ad..453cc8edca1c5158f3c89f5c8551cc2ddc2056df
@@@ -373,10 -354,12 +373,11 @@@ _create_pad (GstMssDemux * mssdemux, Gs
    }
  
    if (tmpl != NULL) {
 -    srcpad =
 -        GST_PAD_CAST (gst_ghost_pad_new_no_target_from_template (name, tmpl));
 +    srcpad = GST_PAD_CAST (gst_pad_new_from_template (tmpl, name));
-     g_free (name);
      gst_object_unref (tmpl);
    }
+   g_free (name);
    if (!srcpad) {
      GST_WARNING_OBJECT (mssdemux, "Ignoring unknown type stream");
      return NULL;
index 338f70821208827647648e56062023e19236b234,99c57512a8402471f6ff5eb0aac08ace82a52f8f..ec9cd415a39191971c1a5cc8c7d80aa8f8f2697e
@@@ -10,27 -10,35 +10,41 @@@ if USE_WAYLAN
  WAYLAND_DIR=wayland
  endif
  
 +if USE_OPENCV
 +OPENCV_DIR=opencv
 +endif
 +
+ if TV_PROFILE
+ SUBDIRS = codecparsers mpegts $(WAYLAND_DIR)
+ else
  SUBDIRS = uridownloader adaptivedemux interfaces basecamerabinsrc codecparsers \
 -       insertbin mpegts base video $(GL_DIR) $(WAYLAND_DIR)
 +       insertbin mpegts base video audio player allocators $(GL_DIR) $(WAYLAND_DIR) \
 +       $(OPENCV_DIR)
+ endif
  
  noinst_HEADERS = gst-i18n-plugin.h gettext.h glib-compat-private.h
+ if TV_PROFILE
+ DIST_SUBDIRS = codecparsers mpegts wayland
+ else
  DIST_SUBDIRS = uridownloader adaptivedemux interfaces gl basecamerabinsrc \
 -      codecparsers insertbin mpegts wayland base video
 +      codecparsers insertbin mpegts wayland opencv base video audio player allocators
+ endif
  
  #dependencies
 -video: base
 +video, audio: base
 +gl: allocators
  
  adaptivedemux: uridownloader
  
+ if TV_PROFILE
+ INDEPENDENT_SUBDIRS = \
+       codecparsers mpegts $(WAYLAND_DIR)
+ else
  INDEPENDENT_SUBDIRS = \
        interfaces basecamerabinsrc codecparsers insertbin uridownloader \
 -      mpegts base $(GL_DIR) $(WAYLAND_DIR)
 +      mpegts base player allocators $(GL_DIR) $(WAYLAND_DIR) $(OPENCV_DIR)
+ endif
  
  .PHONY: independent-subdirs $(INDEPENDENT_SUBDIRS)
  
index cc1171634e41b26360ef4c0dfc905acac36230eb,0054291ad4904baf147c0195682b6cc1bc516c87..e09ebab095b0c515bfa80bcd8e9881e85f19de7f
@@@ -160,8 -95,14 +160,13 @@@ GST_DEBUG_CATEGORY (adaptivedemux_debug
  enum
  {
    PROP_0,
 -  PROP_LOOKBACK_FRAGMENTS,
    PROP_CONNECTION_SPEED,
    PROP_BITRATE_LIMIT,
+ #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION
+   PROP_MAX_BANDWIDTH,
+   PROP_MAX_WIDTH,
+   PROP_MAX_HEIGHT,
+ #endif
    PROP_LAST
  };
  
index 830171467f553336e97190ec5cf47661e0b969d7,ea17ff8caded200286faea9ea4ebb0b73c8d2beb..d72990aeee1dd2b9c56e6143680779bf8ae892b9
@@@ -71,7 -71,14 +71,10 @@@ G_BEGIN_DECL
   * Since: 1.6
   */
  #define GST_ADAPTIVE_DEMUX_STATISTICS_MESSAGE_NAME "adaptive-streaming-statistics"
+ #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION
+ #define GST_ADAPTIVE_DEMUX_VARIANT_MESSAGE_NAME "adaptive-streaming-variant"
+ #endif
  
 -#define GST_MANIFEST_GET_LOCK(d) (&(GST_ADAPTIVE_DEMUX_CAST(d)->manifest_lock))
 -#define GST_MANIFEST_LOCK(d) (g_mutex_lock (GST_MANIFEST_GET_LOCK (d)))
 -#define GST_MANIFEST_UNLOCK(d) (g_mutex_unlock (GST_MANIFEST_GET_LOCK (d)))
 -
  #define GST_ELEMENT_ERROR_FROM_ERROR(el, msg, err) G_STMT_START { \
    gchar *__dbg = g_strdup_printf ("%s: %s", msg, err->message);         \
    GST_WARNING_OBJECT (el, "error: %s", __dbg);                          \
    g_clear_error (&err); \
  } G_STMT_END
  
 -#define DEFAULT_ADAPTIVE_RETRY -1
 -#define DEFAULT_ADAPTIVE_TIMEOUT -1
 -#define PLAYLIST_ADAPTIVE_RETRY 3
 -#define PLAYLIST_ADAPTIVE_TIMEOUT 2
 +#define GST_ADAPTIVE_DEMUX_FLOW_END_OF_FRAGMENT GST_FLOW_CUSTOM_SUCCESS_1
+ #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION
+ #define DEFAULT_ADAPTIVE_VARIANT -1
+ #endif
  
  typedef struct _GstAdaptiveDemuxStreamFragment GstAdaptiveDemuxStreamFragment;
  typedef struct _GstAdaptiveDemuxStream GstAdaptiveDemuxStream;
@@@ -224,12 -234,15 +230,17 @@@ struct _GstAdaptiveDemu
    gboolean have_group_id;
    guint group_id;
  
 +  /* Realtime clock */
 +  GstClock *realtime_clock;
 +  gint64 clock_offset; /* offset between realtime_clock and UTC (in usec) */
 +
    /* < private > */
    GstAdaptiveDemuxPrivate *priv;
 -  guint dash_error_count;
 -  gchar *dash_newest_segment;
+ #ifdef TIZEN_FEATURE_ADAPTIVE_MODIFICATION
+   gint max_bandwidth;
+   gint max_width;
+   gint max_height;
+ #endif
  };
  
  /**
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index 5d084f24f89ccc29c4d7154b1ccb814f37314291,a3497ebb7286e30711da6e49f11538e9b6db3653..0047bcb91bf6ceb106c0864631648ccb8c3c5e71
@@@ -363,7 -361,7 +364,7 @@@ mxf_jpeg2000_init (void
    mxf_jpeg2000_essence_element_writer.pad_template =
        gst_pad_template_new ("jpeg2000_video_sink_%u", GST_PAD_SINK,
        GST_PAD_REQUEST,
-       gst_caps_from_string ("image/x-jpc, width = "
 -      tmp = gst_caps_from_string ("image/x-jpc, fields = 1, width = "
++      tmp = gst_caps_from_string ("image/x-jpc, width = "
            GST_VIDEO_SIZE_RANGE ", height = " GST_VIDEO_SIZE_RANGE
            ", framerate = " GST_VIDEO_FPS_RANGE
            ", colorspace = (string) { \"sRGB\", \"sYUV\" }"));
diff --cc gst/mxf/mxfup.c
Simple merge
Simple merge
Simple merge
Simple merge
index 1181ad3c3087461f5fb5d3369e49c91901f5f40f,2a5c77e8d76cea036ab1b088ff212cff8a1be64c..81302015a94bcd908227821de5ddc3d5c9059b11
@@@ -62,18 -73,22 +62,21 @@@ static voi
  gst_video_diff_class_init (GstVideoDiffClass * klass)
  {
    GstVideoFilterClass *video_filter_class = GST_VIDEO_FILTER_CLASS (klass);
+   GstCaps *tmp = NULL;
  
 -  /* Setting up pads and setting metadata should be moved to
 -     base_class_init if you intend to subclass this class. */
    gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
        gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
-           gst_caps_from_string (VIDEO_SRC_CAPS)));
+           tmp = gst_caps_from_string (VIDEO_SRC_CAPS)));
+   gst_caps_unref (tmp);
    gst_element_class_add_pad_template (GST_ELEMENT_CLASS (klass),
        gst_pad_template_new ("sink", GST_PAD_SINK, GST_PAD_ALWAYS,
-           gst_caps_from_string (VIDEO_SINK_CAPS)));
+           tmp = gst_caps_from_string (VIDEO_SINK_CAPS)));
+   gst_caps_unref (tmp);
  
    gst_element_class_set_static_metadata (GST_ELEMENT_CLASS (klass),
 -      "FIXME Long name", "Generic", "FIXME Description",
 -      "FIXME <fixme@example.com>");
 +      "Video Diff", "Video/Filter",
 +      "Visualize differences between adjacent video frames",
 +      "David Schleef <ds@schleef.org>");
  
    video_filter_class->transform_frame =
        GST_DEBUG_FUNCPTR (gst_video_diff_transform_frame);
Simple merge
Simple merge
Simple merge
index 0000000000000000000000000000000000000000,82b0d1c9ba23b241a5c34106493be926b81b0db7..c3aef17378bd117ed3b03f9e0124e6cf765f306b
mode 000000,100644..100644
Binary files differ
index 0000000000000000000000000000000000000000,d1ab2456332fbf2084077e4e2d286562645cfc48..b328f4c74083e3ebf1c5e8b4c9ef76edcee385f7
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,312 +1,248 @@@
 -Version:        1.6.1
 -Release:        15
+ %bcond_with wayland
+ #%bcond_with x
+ %define gst_branch 1.0
+ Name:           gst-plugins-bad
 -#BuildRequires:  SDL-devel
++Version:        1.12.2
++Release:        0
+ Summary:        GStreamer Streaming-Media Framework Plug-Ins
+ License:        LGPL-2.0+
+ Group:          Multimedia/Framework
+ Url:            http://gstreamer.freedesktop.org/
+ Source:         http://gstreamer.freedesktop.org/src/gst-plugins-bad/%{name}-%{version}.tar.xz
+ Source100:      common.tar.gz
+ BuildRequires:  gettext-tools
 -BuildRequires:  pkgconfig(gstreamer-1.0)
 -BuildRequires:  pkgconfig(gstreamer-plugins-base-1.0)
+ BuildRequires:  autoconf
+ BuildRequires:  gcc-c++
+ BuildRequires:  pkgconfig(glib-2.0) >= 2.31.14
 -#BuildRequires:  pkgconfig(cairo)
++BuildRequires:  pkgconfig(gstreamer-1.0) >= 1.12.0
++BuildRequires:  pkgconfig(gstreamer-plugins-base-1.0) >= 1.12.0
+ BuildRequires:  pkgconfig(orc-0.4) >= 0.4.11
+ BuildRequires:  python
+ BuildRequires:  xsltproc
 -BuildRequires:  pkgconfig(libdrm)
 -BuildRequires:  pkgconfig(libtbm)
 -BuildRequires:        pkgconfig(mm-common)
 -#BuildRequires:  mesa-libGLESv2
 -#BuildRequires:  mesa-libEGL
+ BuildRequires:  pkgconfig(libusb-1.0)
+ BuildRequires:  pkgconfig(gio-2.0) >= 2.25.0
+ BuildRequires:  pkgconfig(libcrypto)
+ BuildRequires:  pkgconfig(libcurl) >= 7.21.0
+ BuildRequires:  pkgconfig(libexif) >= 0.6.16
+ BuildRequires:  pkgconfig(openssl) >= 0.9.5
+ BuildRequires:  pkgconfig(sndfile) >= 1.0.16
 -#BuildRequires:  opengl-es-devel
++BuildRequires:  pkgconfig(openal)
+ %if %{with wayland}
 -BuildRequires:  pkgconfig(wayland-tbm-client)
 -BuildRequires:  pkgconfig(openal)
 -BuildRequires:  pkgconfig(tizen-extension-client)
+ BuildRequires:  pkgconfig(gles20)
+ BuildRequires:  pkgconfig(wayland-egl) >= 9.0
+ BuildRequires:  pkgconfig(wayland-client) >= 1.0.0
+ BuildRequires:  pkgconfig(wayland-cursor) >= 1.0.0
 -Requires:       gstreamer >= 1.0.2
 -#Enhances:       gstreamer
+ BuildRequires:  pkgconfig(libxml-2.0)
+ %endif
+ %if %{with x}
+ BuildRequires:  pkgconfig(x11)
+ %endif
 -%{_libdir}/gstreamer-%{gst_branch}/libgstcamerabin2.so
++Requires:       gstreamer >= 1.12.0
+ %description
+ GStreamer is a streaming media framework based on graphs of filters
+ that operate on media data. Applications using this library can do
+ anything media-related,from real-time sound processing to playing
+ videos. Its plug-in-based architecture means that new data types or
+ processing capabilities can be added simply by installing new plug-ins.
+ %package devel
+ Summary:        GStreamer Streaming-Media Framework Plug-Ins
+ Requires: %{name} = %{version}-%{release}
+ Requires: gst-plugins-base-devel
+ %description devel
+ GStreamer is a streaming media framework based on graphs of filters
+ that operate on media data. Applications using this library can do
+ anything media-related,from real-time sound processing to playing
+ videos. Its plug-in-based architecture means that new data types or
+ processing capabilities can be added simply by installing new plug-ins.
+ %prep
+ %setup -q -n %{name}-%{version}
+ %setup -q -T -D -a 100
+ %build
+ export V=1
+ NOCONFIGURE=1 ./autogen.sh
+ export CFLAGS+=" -Wall -g -fPIC\
+   -DTIZEN_FEATURE_WLSINK_ENHANCEMENT\
+   -DTIZEN_FEATURE_AVOID_PAD_SWITCHING\
+   -DTIZEN_FEATURE_ADAPTIVE_MODIFICATION\
+   -DTIZEN_FEATURE_TSDEMUX_MODIFICATION\
+   -DTIZEN_FEATURE_OALSINK_MODIFICATION\
+   -DTIZEN_FEATURE_UPSTREAM"
+ %configure\
+       --disable-static\
+       --disable-examples\
+       --enable-experimental\
+ %if "%{TIZEN_PRODUCT_TV}" == "1"
+       --enable-tv\
+       --disable-autoconvert\
+       --disable-camerabin2\
+       --disable-dash\
+       --disable-hls\
+       --disable-id3tag\
+       --disable-jpegformat\
+       --disable-mpegdemux\
+       --disable-smoothstreaming\
+       --disable-coloreffects\
+       --disable-rtp\
+       --disable-gl\
+ %endif
+       --disable-accurip\
+       --disable-adpcmdec\
+       --disable-audiofxbad\
+       --disable-decklink\
+       --disable-dvb\
+       --disable-fieldanalysis\
+       --disable-gdp\
+       --disable-ivtc\
+       --disable-liveadder\
+       --disable-rawparse\
+       --disable-videofilters\
+       --disable-yadif\
+       --disable-curl\
+       --disable-dtls\
+       --disable-fbdev\
+       --disable-uvch264\
+       --disable-vcd\
+       --disable-y4m\
+       --disable-adpcmenc\
+       --disable-aiff\
+       --disable-asfmux\
+       --disable-audiomixer\
+       --disable-compositor\
+       --disable-audiovisualizers\
+       --disable-bayer\
+       --disable-cdxaparse\
+       --disable-dataurisrc\
+       --disable-dccp\
+       --disable-dvbsuboverlay\
+       --disable-dvdspu\
+       --disable-faceoverlay\
+       --disable-festival\
+       --disable-freeverb\
+       --disable-frei0r\
+       --disable-gaudieffects\
+       --disable-geometrictransform\
+       --disable-hdvparse\
+       --disable-inter\
+       --disable-interlace\
+       --disable-ivfparse\
+       --disable-jp2kdecimator\
+       --disable-librfb\
+       --disable-mve\
+       --disable-mxf\
+       --disable-nuvdemux\
+       --disable-onvif\
+       --disable-pcapparse\
+       --disable-pnm\
+       --disable-removesilence\
+       --disable-sdi\
+       --disable-segmentclip\
+       --disable-siren\
+       --disable-smooth\
+       --disable-speed\
+       --disable-subenc\
+       --disable-stereo\
+       --disable-tta\
+       --disable-videomeasure\
+       --disable-videosignal\
+       --disable-vmnc\
+       --disable-opengl\
+       --enable-egl=yes\
+       --enable-wayland=yes\
+       --enable-gles2=yes\
+       --disable-glx\
+       --enable-openal=yes\
+       --disable-sndfile\
+       --disable-gtk-doc\
+       --disable-warnings-as-errors\
+       --disable-mpegpsmux
+ %__make %{?_smp_mflags} V=1
+ %install
+ %make_install
+ %find_lang %{name}-%{gst_branch}
+ mv %{name}-%{gst_branch}.lang %{name}.lang
+ %lang_package
+ %clean
+ rm -rf $RPM_BUILD_ROOT
+ %post -p /sbin/ldconfig
+ %postun -p /sbin/ldconfig
+ %files
+ %manifest %{name}.manifest
+ %defattr(-, root, root)
+ %license COPYING.LIB
+ %if "%{TIZEN_PRODUCT_TV}" != "1"
+ %{_libdir}/gstreamer-%{gst_branch}/libgstautoconvert.so
 -%{_libdir}/gstreamer-%{gst_branch}/libgstrtpbad.so
 -%{_libdir}/gstreamer-%{gst_branch}/libgstfragmented.so
++%{_libdir}/gstreamer-%{gst_branch}/libgstcamerabin.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstcoloreffects.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstid3tag.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstjpegformat.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstmpegpsdemux.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstsmoothstreaming.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstdashdemux.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstopengl.so
 -%{_libdir}/libgstadaptivedemux-1.0.so.0
 -%{_libdir}/libgstadaptivedemux-1.0.so.0.601.0
 -%{_libdir}/libgstgl-1.0.so.0
 -%{_libdir}/libgstgl-1.0.so.0.601.0
+ %{_libdir}/libgstinsertbin-%{gst_branch}.so.0*
+ %{_libdir}/libgstphotography-%{gst_branch}.so.0*
+ %{_libdir}/libgstbasecamerabinsrc-%{gst_branch}.so.0*
+ %{_libdir}/libgstbadbase-%{gst_branch}.so.0*
+ %{_libdir}/libgstbadvideo-%{gst_branch}.so.0*
+ %{_libdir}/libgsturidownloader-%{gst_branch}.so.0*
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstadpcmdec.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstadpcmenc.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstasfmux.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstaudiovisualizers.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstbayer.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstcurl.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstdataurisrc.so
++%{_libdir}/libgstadaptivedemux-%{gst_branch}.so.0*
++%{_libdir}/libgstgl-%{gst_branch}.so.0*
+ %endif
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstdvb.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstdvbsuboverlay.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstfestival.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstgaudieffects.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstgdp.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstgeometrictransform.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstinter.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstinterlace.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstliveadder.so
 -
+ %{_libdir}/gstreamer-%{gst_branch}/libgstdebugutilsbad.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstpcapparse.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstpnm.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstrawparse.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstremovesilence.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstmpegtsdemux.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstmpegtsmux.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstsegmentclip.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstsdpelem.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstsmooth.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstspeed.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstshm.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgsty4mdec.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstdvdspu.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstfieldanalysis.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstfrei0r.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstsiren.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstsubenc.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstmpegpsmux.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstdecklink.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstaccurip.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstaiff.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstaudiofxbad.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstfbdevsink.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstfreeverb.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstivtc.so
+ %{_libdir}/gstreamer-%{gst_branch}/libgstvideoparsersbad.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstmxf.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstrfbsrc.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstvideofiltersbad.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstyadif.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstuvch264.so
 -
 -
 -%if %{with wayland}
 -%{_libdir}/libgstwayland-%{gst_branch}.so.0*
 -%{_libdir}/gstreamer-%{gst_branch}/libgstwaylandsink.so
 -%endif
+ %{_libdir}/gstreamer-%{gst_branch}/libgstmidi.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstcompositor.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstdtls.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstrtponvif.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstvcdsrc.so
 -#%{_libdir}/gstreamer-%{gst_branch}/libgstwaylandsink.so
 -#%{_libdir}/libgstwayland-1.0.so.0
 -#%{_libdir}/libgstwayland-1.0.so.0.601.0
 -#/usr/share/gstreamer-%{gst_branch}/presets/GstFreeverb.prs
 -
+ %{_libdir}/gstreamer-%{gst_branch}/libgstopenal.so
++%{_libdir}/gstreamer-%{gst_branch}/libgsthls.so
++%{_libdir}/gstreamer-%{gst_branch}/libgstnetsim.so
++%{_libdir}/gstreamer-%{gst_branch}/libgsttimecode.so
++%{_libdir}/gstreamer-%{gst_branch}/libgstvideoframe_audiolevel.so
++%{_libdir}/gstreamer-%{gst_branch}/libgstaudiomixmatrix.so
++%{_libdir}/gstreamer-%{gst_branch}/libgstaudiobuffersplit.so
+ %{_libdir}/libgstcodecparsers-%{gst_branch}.so.0*
+ %{_libdir}/libgstmpegts-%{gst_branch}.so.0*
 -%if %{with wayland}
 -%{_libdir}/pkgconfig/gstreamer-wayland-%{gst_branch}.pc
 -%{_includedir}/gstreamer-%{gst_branch}/gst/wayland/wayland.h
 -%endif
 -
++%{_libdir}/libgstbadallocators-%{gst_branch}.so.0*
++%{_libdir}/libgstbadaudio-%{gst_branch}.so.0*
++%{_libdir}/libgstplayer-%{gst_branch}.so.0*
+ %files devel
+ %manifest %{name}.manifest
+ %defattr(-, root, root)
+ %{_includedir}/gstreamer-%{gst_branch}
+ %if "%{TIZEN_PRODUCT_TV}" != "1"
+ %{_libdir}/gstreamer-%{gst_branch}/include/gst/gl/gstglconfig.h
+ %endif
+ %{_libdir}/*.so
+ %{_libdir}/pkgconfig/gstreamer-codecparsers-%{gst_branch}.pc
+ %{_libdir}/pkgconfig/gstreamer-plugins-bad-%{gst_branch}.pc
+ %{_libdir}/pkgconfig/gstreamer-insertbin-%{gst_branch}.pc
+ %{_libdir}/pkgconfig/gstreamer-mpegts-%{gst_branch}.pc
+ %{_libdir}/pkgconfig/gstreamer-gl-1.0.pc
++%{_libdir}/pkgconfig/gstreamer-bad-allocators-1.0.pc
++%{_libdir}/pkgconfig/gstreamer-bad-audio-1.0.pc
++%{_libdir}/pkgconfig/gstreamer-bad-base-1.0.pc
++%{_libdir}/pkgconfig/gstreamer-bad-video-1.0.pc
++%{_libdir}/pkgconfig/gstreamer-player-1.0.pc
Simple merge
Simple merge
index af1c58efa61fc7d769fefcee5b28ca51dba67154,58cfa8782ad2b500b931521e92ac820aed4d9c17..f618a7ec748d63a4d903683e1ae50d260cb8c2f0
@@@ -1,11 -1,11 +1,11 @@@
  /*
-  * dvbbasebin.c - 
+  * dvbbasebin.c -
   * Copyright (C) 2007 Alessandro Decina
   * Copyright (C) 2014 Samsung Electronics. All rights reserved.
-  * 
+  *
   * Authors:
   *   Alessandro Decina <alessandro@nnva.org>
 - *   Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
 + *   Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
   *
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Library General Public
@@@ -751,9 -750,9 +751,10 @@@ dvb_base_bin_request_new_pad (GstElemen
  
    pad_name = gst_pad_get_name (pad);
    ghost = gst_ghost_pad_new (pad_name, pad);
 +  gst_object_unref (pad);
    g_free (pad_name);
    gst_element_add_pad (element, ghost);
+   gst_object_unref(pad);
  
    return ghost;
  }
Simple merge