[meego-commits] 15433: Changes to Trunk:Testing/qt-mobility

Fathi Boudra no_reply at build.meego.com
Tue Mar 29 09:57:10 UTC 2011


Hi,
I have made the following changes to qt-mobility in project Trunk:Testing. Please review and accept ASAP.

Thank You,
Fathi Boudra

[This message was auto-generated]

---

Request #15433:

  submit:   devel:qt-mtf/qt-mobility(r151) -> Trunk:Testing/qt-mobility


Message:
    * Tue Mar 29 2011 Xiaowei Ye <xiaowei.ye at intel.com> - 1.2.0~beta0+git2726
- Update Moorestown_Camera_Support.patch to support camera settings and new
  mixvideo encoders on Moorestown platform

State:   new          2011-03-29T02:57:01 boudra
Comment: None



changes files:
--------------
--- qt-mobility.changes
+++ qt-mobility.changes
@@ -0,0 +1,4 @@
+* Tue Mar 29 2011 Xiaowei Ye <xiaowei.ye at intel.com> - 1.2.0~beta0+git2726
+- Update Moorestown_Camera_Support.patch to support camera settings and new
+  mixvideo encoders on Moorestown platform
+

spec files:
-----------

other changes:
--------------

++++++ Moorestown_Camera_Support.patch
--- Moorestown_Camera_Support.patch
+++ Moorestown_Camera_Support.patch
@@ -8,19 +8,68 @@
  }
  # Input
  HEADERS += \
+--- a/plugins/multimedia/gstreamer/mediacapture/mediacapture.pri
++++ b/plugins/multimedia/gstreamer/mediacapture/mediacapture.pri
+@@ -12,7 +12,12 @@ HEADERS += $$PWD/qgstreamercaptureservice.h \
+     $$PWD/qgstreamerv4l2input.h \
+     $$PWD/qgstreamercapturemetadatacontrol.h \
+     $$PWD/qgstreamerimagecapturecontrol.h \
+-    $$PWD/qgstreamerimageencode.h
++    $$PWD/qgstreamerimageencode.h \
++    $$PWD/qgstreamerfocus.h \
++    $$PWD/qgstreamerflash.h \
++    $$PWD/qgstreamerlocks.h \
++    $$PWD/qgstreamerexposure.h \
++    $$PWD/qgstreamerimageprocessing.h
+ 
+ SOURCES += $$PWD/qgstreamercaptureservice.cpp \
+     $$PWD/qgstreamercapturesession.cpp \
+@@ -24,4 +29,9 @@ SOURCES += $$PWD/qgstreamercaptureservice.cpp \
+     $$PWD/qgstreamerv4l2input.cpp \
+     $$PWD/qgstreamercapturemetadatacontrol.cpp \
+     $$PWD/qgstreamerimagecapturecontrol.cpp \
+-    $$PWD/qgstreamerimageencode.cpp
++    $$PWD/qgstreamerimageencode.cpp \
++    $$PWD/qgstreamerfocus.cpp \
++    $$PWD/qgstreamerflash.cpp \
++    $$PWD/qgstreamerlocks.cpp \
++    $$PWD/qgstreamerexposure.cpp \
++    $$PWD/qgstreamerimageprocessing.cpp
+--- a/plugins/multimedia/gstreamer/mediacapture/qgstreamercaptureservice.cpp
++++ b/plugins/multimedia/gstreamer/mediacapture/qgstreamercaptureservice.cpp
+@@ -157,6 +157,23 @@ QMediaControl *QGstreamerCaptureService::requestControl(const char *name)
+     if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
+         return m_imageCaptureControl;
+ 
++#ifdef MOORESTOWN_SUPPORT
++    if (qstrcmp(name, QCameraExposureControl_iid) == 0)
++        return m_captureSession->cameraExposureControl();
++
++    if (qstrcmp(name, QCameraFlashControl_iid) == 0)
++        return m_captureSession->cameraFlashControl();
++
++    if (qstrcmp(name, QCameraFocusControl_iid) == 0)
++        return m_captureSession->cameraFocusControl();
++
++    if (qstrcmp(name, QCameraImageProcessingControl_iid) == 0)
++        return m_captureSession->imageProcessingControl();
++
++    if (qstrcmp(name, QCameraLocksControl_iid) == 0)
++        return m_captureSession->cameraLocksControl();
++#endif
++
+     if (!m_videoOutput) {
+         if (qstrcmp(name, QVideoRendererControl_iid) == 0) {
+             m_videoOutput = m_videoRenderer;
 --- a/plugins/multimedia/gstreamer/mediacapture/qgstreamercapturesession.cpp
 +++ b/plugins/multimedia/gstreamer/mediacapture/qgstreamercapturesession.cpp
-@@ -84,6 +84,9 @@ QGstreamerCaptureSession::QGstreamerCapt
-      m_muted(false),
-      m_videoSrc(0),
-      m_videoTee(0),
+@@ -88,9 +88,25 @@ QGstreamerCaptureSession::QGstreamerCaptureSession(QGstreamerCaptureSession::Cap
+      m_videoPreview(0),
+      m_imageCaptureBin(0),
+      m_encodeBin(0),
 +#ifdef MOORESTOWN_SUPPORT
 +     m_capsFilter(0),
 +#endif
-      m_videoPreviewQueue(0),
-      m_videoPreview(0),
-      m_imageCaptureBin(0),
-@@ -91,6 +94,19 @@ QGstreamerCaptureSession::QGstreamerCapt
       m_passImage(false),
       m_passPrerollImage(false)
  {
@@ -40,13 +89,29 @@
      m_pipeline = gst_pipeline_new("media-capture-pipeline");
      gstRef(m_pipeline);
  
-@@ -119,6 +135,13 @@ void QGstreamerCaptureSession::setCaptur
+@@ -104,6 +120,14 @@ QGstreamerCaptureSession::QGstreamerCaptureSession(QGstreamerCaptureSession::Cap
+     m_recorderControl = new QGstreamerRecorderControl(this);
+     m_mediaContainerControl = new QGstreamerMediaContainerControl(this);
+ 
++#ifdef MOORESTOWN_SUPPORT
++    m_cameraExposureControl = new QGstreamerExposure(this);
++    m_cameraFlashControl = new QGstreamerFlash(this);
++    m_cameraFocusControl = new QGstreamerFocus(this);
++    m_imageProcessingControl = new QGstreamerImageProcessing(this);
++    m_cameraLocksControl = new QGstreamerLocks(this);
++#endif
++
+     setState(StoppedState);
+ }
+ 
+@@ -119,6 +143,14 @@ void QGstreamerCaptureSession::setCaptureMode(CaptureMode mode)
      m_captureMode = mode;
  }
  
 +#ifdef MOORESTOWN_SUPPORT
 +static void DynamicLink (GstPadTemplate * templ, GstPad * newpad, gpointer target)
 +{
++    Q_UNUSED(templ);
 +    gst_pad_link (newpad, (GstPad *)target);
 +}
 +#endif
@@ -54,7 +119,7 @@
  GstElement *QGstreamerCaptureSession::buildEncodeBin()
  {
      bool ok = true;
-@@ -161,15 +184,32 @@ GstElement *QGstreamerCaptureSession::bu
+@@ -161,15 +193,32 @@ GstElement *QGstreamerCaptureSession::buildEncodeBin()
  
      if (m_captureMode & Video) {
          GstElement *videoQueue = gst_element_factory_make("queue", "video-encode-queue");
@@ -79,21 +144,21 @@
 +        {
 +            GstElement *colorspace = gst_element_factory_make("ffmpegcolorspace", "ffmpegcolorspace-encoder");
 +            GstElement *videoscale = gst_element_factory_make("videoscale","videoscale-encoder");
-+
-+            GstElement *videoEncoder = m_videoEncodeControl->createEncoder();
  
 -        ok &= videoEncoder != 0;
-+            ok &= videoEncoder != 0;
++            GstElement *videoEncoder = m_videoEncodeControl->createEncoder();
  
 -        gst_bin_add_many(GST_BIN(encodeBin), videoQueue, colorspace, videoscale, videoEncoder, NULL);
 -        ok &= gst_element_link_many(videoQueue, colorspace, videoscale, videoEncoder, muxer, NULL);
++            ok &= videoEncoder != 0;
++
 +            gst_bin_add_many(GST_BIN(encodeBin), videoQueue, colorspace, videoscale, videoEncoder, NULL);
 +            ok &= gst_element_link_many(videoQueue, colorspace, videoscale, videoEncoder, muxer, NULL);
 +        }
  
          // add ghostpads
          GstPad *pad = gst_element_get_static_pad(videoQueue, "sink");
-@@ -524,6 +564,12 @@ void QGstreamerCaptureSession::captureIm
+@@ -524,6 +573,12 @@ void QGstreamerCaptureSession::captureImage(int requestId, const QString &fileNa
      m_imageRequestId = requestId;
      m_imageFileName = fileName;
      m_passImage = true;
@@ -106,7 +171,7 @@
  }
  
  
-@@ -539,6 +585,9 @@ bool QGstreamerCaptureSession::rebuildGr
+@@ -539,6 +594,9 @@ bool QGstreamerCaptureSession::rebuildGraph(QGstreamerCaptureSession::PipelineMo
      REMOVE_ELEMENT(m_videoPreview);
      REMOVE_ELEMENT(m_videoPreviewQueue);
      REMOVE_ELEMENT(m_videoTee);
@@ -116,7 +181,7 @@
      REMOVE_ELEMENT(m_encodeBin);
      REMOVE_ELEMENT(m_imageCaptureBin);
      m_audioVolume = 0;
-@@ -548,7 +597,79 @@ bool QGstreamerCaptureSession::rebuildGr
+@@ -548,7 +606,109 @@ bool QGstreamerCaptureSession::rebuildGraph(QGstreamerCaptureSession::PipelineMo
      switch (newMode) {
          case EmptyPipeline:
              break;
@@ -130,11 +195,27 @@
 +
 +            if (ok) {
 +                //src setting
++                QtMultimediaKit::EncodingQuality quality = m_imageEncodeControl->imageSettings().quality();
++                int qualityTable[] = {
++                    11, //VeryLow
++                    8, //Low
++                    5, //Normal
++                    2, //High
++                    0 //VeryHigh
++                };
++                g_object_set(G_OBJECT(m_videoSrc), "jpeg-ratio", qualityTable[quality], NULL);
 +                g_object_set(G_OBJECT(m_videoSrc), "video_mode", 0, NULL);
 +                g_object_set(G_OBJECT(m_videoSrc), "num-buffers", 1, NULL);
 +
++                //format
++                QString codec = m_imageEncodeControl->imageSettings().codec();
++                if(codec.isEmpty())
++                {
++                    codec = "jpeg";
++                }
++
 +                //caps setting
-+                GstCaps *caps = gst_caps_new_simple("image/jpeg", NULL);
++                GstCaps *caps = gst_caps_new_simple(QString("image/" + codec).toAscii().constData(), NULL);
 +                QSize resolution = m_imageEncodeControl->imageSettings().resolution();
 +                if(resolution.isValid())
 +                {
@@ -169,7 +250,7 @@
 +                if (m_captureMode & Video || m_captureMode & Image) {
 +
 +                    m_videoSrc = buildVideoSrc();
-+                    m_videoTee = gst_element_factory_make("MixVideoEncoder", "MixVideoEncoder");
++                    m_videoTee = gst_element_factory_make("MixVideoEncoderPreview", "MixVideoEncoderPreview");
 +                    m_videoPreviewQueue = gst_element_factory_make("queue", "video-preview-queue");
 +                    m_videoPreview = m_viewfinderInterface->videoSink();
(962 more lines skipped)

++++++ qt-mobility.yaml
--- qt-mobility.yaml
+++ qt-mobility.yaml
@@ -18,7 +18,7 @@
     - GL_CLAMP_TO_EDGE_for_video_texture.patch
     - opengl-es2-shader-enable.patch
     - ix86:libva-codec-enable.patch
-    - ix86:camera_preview_workaround.patch
+    - ix86:camera_preview_workaround.patch  
     - ix86:Moorestown_Camera_Support.patch
     - arm:enable_xvoverlay_for_qml_camera.patch
     - camera_api_added_functionality.patch




More information about the MeeGo-commits mailing list