[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