gst_plugins_symbian/tsrc/gstreamertestmodule/src/GStreamerTestClassBlocks.cpp
changeset 16 8e837d1bf446
parent 2 5505e8908944
child 11 1373546e05c6
--- a/gst_plugins_symbian/tsrc/gstreamertestmodule/src/GStreamerTestClassBlocks.cpp	Wed Mar 24 17:58:42 2010 -0500
+++ b/gst_plugins_symbian/tsrc/gstreamertestmodule/src/GStreamerTestClassBlocks.cpp	Wed Mar 24 18:04:17 2010 -0500
@@ -30,6 +30,7 @@
 #include "debug.h"
 #include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 
 
 _LIT8(defaultMedia,"audio/x-raw-int");
@@ -113,6 +114,9 @@
     iFakesink = NULL;
     iFilesink = NULL;
     iEncoder = NULL;
+    iAACEncoder = NULL;
+    iQtMux = NULL;
+    iAmrMux = NULL;
     iFilter = NULL;
     iWavenc = NULL;
     iBus = NULL;
@@ -184,6 +188,14 @@
       g_error_free (err);
       break;
     }
+    case GST_MESSAGE_STATE_CHANGED:
+        {
+        GstState*  state = NULL;
+        GstState * pending = NULL;
+        gst_element_get_state(GST_ELEMENT (objects->iPipeline),state,pending,-1 );
+        //int x = 10;
+        }
+        break;
     default:
       break;
   }
@@ -264,7 +276,11 @@
         ENTRY( "SetExpectedEvents", CGStreamerTestClass::SetExpectedEvents ),
         ENTRY( "SetMainLoopRun", CGStreamerTestClass::SetMainLoopRun ),
         ENTRY( "SetCapsInPipeLine", CGStreamerTestClass::SetCapsInPipeLine ),
-		
+        ENTRY( "StopRecording", CGStreamerTestClass::StopRecording ),
+        ENTRY( "SeekElement", CGStreamerTestClass::SeekElement ),
+        ENTRY( "CheckProperties", CGStreamerTestClass::CheckProperties ),
+        ENTRY( "GstReliabilitytestPlaypause", CGStreamerTestClass::GstReliabilitytestPlaypause ),
+        ENTRY( "GstReliabilitytestRecording", CGStreamerTestClass::GstReliabilitytestRecording ),
         };
 
     const TInt count = sizeof( KFunctions ) / 
@@ -594,6 +610,8 @@
     iLog->Log(_L("<<CGStreamerTestClass::InitPipeLine"));   
     return KErrNone;
     }
+	
+
 
 TInt CGStreamerTestClass::SetMainLoopRun( CStifItemParser& /*aItem*/ )
     {
@@ -740,6 +758,48 @@
                 }
             break;
             }
+        case   ENOKIAAACENCODER:	        
+            {
+            if(iObjects->iAACEncoder)
+                {
+                error = KErrAlreadyExists;
+                }
+            else
+                {
+                iObjects->iAACEncoder = gst_element_factory_make("nokiaaacenc", "nokiaaacenc");     
+                if( iObjects->iAACEncoder == NULL )
+                    iLog->Log(_L(" iObjects->iAACEncoder == NULL"));
+                }
+            break;
+            }
+        case   ENOKIAQTMUX:            
+            {
+            if(iObjects->iQtMux)
+                {
+                error = KErrAlreadyExists;
+                }
+            else
+                {
+                iObjects->iQtMux = gst_element_factory_make("mp4mux", "mp4mux");     
+                if( iObjects->iQtMux == NULL )
+                    iLog->Log(_L(" iObjects->iQtMux == NULL"));
+                }
+            break;
+            }       
+        case   ENOKIAAMRMUX:            
+            {
+            if(iObjects->iAmrMux)
+                {
+                error = KErrAlreadyExists;
+                }
+            else
+                {
+                iObjects->iAmrMux = gst_element_factory_make("amrmux", "amrmux");     
+                if( iObjects->iAmrMux == NULL )
+                    iLog->Log(_L(" iObjects->iAmrMux == NULL"));
+                }
+            break;
+            }            
 	    case   ERESAMPLER:
             {
             if(iObjects->iResampler)
@@ -890,6 +950,42 @@
                 }
             break;
             }
+        case   ENOKIAAACENCODER:
+            {
+            if(!iObjects->iAACEncoder)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                }
+            break;
+            }            
+        case   ENOKIAQTMUX:
+            {
+            if(!iObjects->iQtMux)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                }
+            break;
+            }              
+        case   ENOKIAAMRMUX:
+            {
+            if(!iObjects->iAmrMux)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                    gboolean header;
+                    g_object_get (G_OBJECT (iObjects->iAmrMux), "header", &header, NULL); 
+
+                }
+            break;
+            }             
         case   ERESAMPLER:
             {
             if(!iObjects->iResampler)
@@ -956,6 +1052,17 @@
                     FTRACE(FPrint(_L("CGStreamerTestClass::GetElementProperties SamplesRecorded[%d]"),value));
                     iLog->Log(_L("CGStreamerTestClass::GetElementProperties SamplesRecorded[%d]"),value);
                     }
+				else if(!property.Compare(KTagLeftBalanceProperty()))
+                    {                  
+                        g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL); 
+                     }             
+          
+                else if(!property.Compare(KTagRightBalanceProperty()))
+                    {
+                    
+                        g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL); 
+
+                        }	
                 delete prop;
                 }
             break;
@@ -1119,6 +1226,42 @@
                 }
             break;
             }
+        case   ENOKIAAACENCODER:
+            {
+            if(!iObjects->iAACEncoder)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                }
+            break;
+            }            
+        case   ENOKIAQTMUX:
+            {
+            if(!iObjects->iQtMux)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                }
+            break;
+            }               
+        case   ENOKIAAMRMUX:
+            {
+            if(!iObjects->iAmrMux)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                    TInt value;
+                    aItem.GetNextInt(value);
+                    g_object_set (G_OBJECT (iObjects->iAmrMux), "header", (gboolean)value, NULL);                     
+                }
+            break;
+            }              
         case   ERESAMPLER:
             {
             if(!iObjects->iResampler)
@@ -1239,6 +1382,18 @@
                         error = KErrNotFound;
                         }
                     }
+                else if(!property.Compare(KTagNumBuffersProperty()))
+                    {
+                    TInt value;
+                    if(!aItem.GetNextInt(value))
+                        {
+                        g_object_set (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), value, NULL); 
+                        }
+                    else
+                        {
+                        error = KErrNotFound;
+                        }
+                    }
                 delete prop;
                 }
             break;
@@ -1492,6 +1647,45 @@
                 }
             break;
             }
+        case   ENOKIAAACENCODER:
+            {
+            iLog->Log(_L("<<CGStreamerTestClass::AddElementToPipeline ENOKIAAACENCODER"));
+            if(!iObjects->iAACEncoder)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                gst_bin_add_many(GST_BIN (iObjects->iPipeline),iObjects->iAACEncoder, NULL);
+                }
+            break;
+            }            
+        case   ENOKIAQTMUX:
+            {
+            
+            if(!iObjects->iQtMux)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                gst_bin_add_many(GST_BIN (iObjects->iPipeline),iObjects->iQtMux, NULL);
+                }
+            break;
+            }     
+        case   ENOKIAAMRMUX:
+            {
+            
+            if(!iObjects->iAmrMux)
+                {
+                error = KErrNotFound;
+                }
+            else
+                {
+                gst_bin_add_many(GST_BIN (iObjects->iPipeline),iObjects->iAmrMux, NULL);
+                }
+            break;
+            }             
         case   ERESAMPLER:
             {
             if(!iObjects->iResampler)
@@ -1566,6 +1760,8 @@
     return error;
     }
 
+
+
 TInt CGStreamerTestClass::SetCapsInPipeLine( CStifItemParser& aItem )
     {
     TInt error(KErrNone);
@@ -2249,6 +2445,42 @@
                     }
                 break;
                 }
+            case   ENOKIAAACENCODER:
+                {
+                if(!iObjects->iAACEncoder)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    array.Append(iObjects->iAACEncoder);
+                    }
+                break;
+                }                
+            case   ENOKIAQTMUX:
+                {
+                if(!iObjects->iQtMux)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    array.Append(iObjects->iQtMux);
+                    }
+                break;
+                }                  
+            case   ENOKIAAMRMUX:
+                {
+                if(!iObjects->iAmrMux)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    array.Append(iObjects->iAmrMux);
+                    }
+                break;
+                }                 
             case   ERESAMPLER:
                 {
                 if(!iObjects->iResampler)
@@ -2326,7 +2558,31 @@
                 }
             else
                 {
-                linkOK = gst_element_link(array[i-1],array[i]);
+                    if( array[i] == iObjects->iQtMux)
+                    {
+                        iLog->Log(_L("array[i] == iObjects->iQtMux"));
+                        GstPad* qtsinkpad  = gst_element_get_request_pad( array[i], "audio_%d");
+                        if( !qtsinkpad )
+                            {
+                                iLog->Log(_L("qtsinkpad failed"));
+                            }
+                        GstPad* aacencsrcpad  = gst_element_get_pad( array[i-1], "src");
+                        if( !aacencsrcpad )
+                            {
+                                iLog->Log(_L("aacencsrcpad failed"));
+                            }
+                        
+                        //linkOK = gst_pad_link (aacencsrcpad,qtsinkpad);
+                        if( gst_pad_link (aacencsrcpad,qtsinkpad) != GST_PAD_LINK_OK )
+                            {
+                        iLog->Log(_L("gst_pad_link (aacencsrcpad,qtsinkpad) failed"));
+                        linkOK = 0;
+                            }
+                    }
+                    else
+                    {    
+                        linkOK = gst_element_link(array[i-1],array[i]);
+                    }
                 }
             }        
         }
@@ -2337,4 +2593,420 @@
     }
 
 
+
+
+
+
+
+
+
+
+
+
+
+TInt CGStreamerTestClass::StopRecording( CStifItemParser& /*aItem*/ )
+    {   
+    FTRACE(FPrint(_L("CGStreamerTestClass::StopRecording")));
+    iLog->Log(_L(">>CGStreamerTestClass::StopRecording"));   
+    gst_element_send_event (iObjects->iPipeline, gst_event_new_eos ());
+    iLog->Log(_L("<<CGStreamerTestClass::StopRecording"));   
+    return KErrNone;
+    }
+
+TInt CGStreamerTestClass::GstReliabilitytestRecording( CStifItemParser& aItem )
+    {   
+    FTRACE(FPrint(_L("CGStreamerTestClass::GstReliabilitytestRecording")));
+    iLog->Log(_L(">>CGStreamerTestClass::GstReliabilitytestRecording"));   
+    TInt i=0;
+    aItem.GetNextInt(i);
+    while(--i)
+        {
+         gst_element_set_state (iObjects->iPipeline, GST_STATE_PLAYING );
+         sleep (60);
+        }
+    iLog->Log(_L("<<CGStreamerTestClass::GstReliabilitytestRecording"));   
+    return KErrNone;
+    }
+
+
+TInt CGStreamerTestClass::GstReliabilitytestPlaypause( CStifItemParser& aItem )
+    {   
+    FTRACE(FPrint(_L("CGStreamerTestClass::GstReliabilitytestPlaypause")));
+    iLog->Log(_L(">>CGStreamerTestClass::GstReliabilitytestPlaypause"));   
+    TInt i=0;
+    aItem.GetNextInt(i);
+    //aItem.GetNextInt(element);
+    while( --i )
+        {
+        gst_element_set_state (iObjects->iPipeline, GST_STATE_PLAYING );
+        sleep(10);
+        gst_element_set_state (iObjects->iPipeline, GST_STATE_PAUSED );
+        sleep(2);
+        }
+    iLog->Log(_L("<<CGStreamerTestClass::GstReliabilitytestPlaypause"));   
+    return KErrNone;
+    }
+
+static gint convert_devsound_rate(gint devsound_rate)
+    {
+    gint result;
+
+    switch (devsound_rate)
+        {
+        case 1:
+            result=8000;
+            break;
+        case 2:
+            result=11025;
+            break;
+        case 4:
+            result=16000;
+            break;
+        case 8:
+            result=22050;
+            break;
+        case 16:
+            result=32000;
+            break;
+        case 32:
+            result=44100;
+            break;
+        case 64:
+            result=48000;
+            break;
+        case 128:
+            result=88200;
+            break;
+        case 256:
+            result=96000;
+            break;
+        case 512:
+            result=12000;
+            break;
+        case 1024:
+            result=24000;
+            break;
+        case 2048:
+            result=64000;
+            break;
+        default:
+            result=8000;
+            break;
+
+        }
+    return result;
+
+    }
+
+TInt CGStreamerTestClass::CheckProperties( CStifItemParser& aItem )
+    {   
+    FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties")));
+    iLog->Log(_L(">>CGStreamerTestClass::CheckProperties"));   
+    TInt error = KErrNone;
+    TInt element;
+    TInt ValueExpected(0);
+    aItem.GetNextInt(element);
+        switch(element)
+            {
+            case   EFILESOURCE:
+                {
+                if(!iObjects->iSource)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   EFILESINK:
+                {
+                if(!iObjects->iSink)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   EFAKESOURCE:
+                {
+                if(!iObjects->iSource)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   EFAKESINK:
+                {
+                if(!iObjects->iSink)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   EWAVPARSE:
+                {
+                if(!iObjects->iWavparse)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   EMP3DECODER:
+                {
+                if(!iObjects->iDecoder)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   EWAVEENCODER:
+                {
+                if(!iObjects->iEncoder)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   ENOKIAAACENCODER:
+                {
+                if(!iObjects->iAACEncoder)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   ENOKIAQTMUX:
+                {
+                if(!iObjects->iQtMux)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   ENOKIAAMRMUX:
+                {
+                if(!iObjects->iAmrMux)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }                
+            case   ERESAMPLER:
+                {
+                if(!iObjects->iResampler)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   ECONVERTER:
+                {
+                if(!iObjects->iConverter)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    }
+                break;
+                }
+            case   EDEVSOUNDSRC:
+                {
+                if(!iObjects->iSource)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    TPtrC property;
+                    TInt value(0);
+                    aItem.GetNextString(property);
+                    aItem.GetNextInt(ValueExpected);
+                    HBufC8* prop = HBufC8::NewL(property.Length()+ 1);
+                    TPtr8 des = prop->Des();
+                    des.Copy(property);
+                    if(!property.Compare(KTagGainProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties GetGain[%d]"),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties GetGain[%d]"),value);
+                        }
+                    else if(!property.Compare(KTagRateProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL);
+                        value = convert_devsound_rate(value);
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties GetRate[%d]"),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties GetRate[%d]"),value);
+                        }
+                    else if(!property.Compare(KTagChannelsProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties Channels[%d]"),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties channels[%d]"),value);
+                        }
+                    else if(!property.Compare(KTagMaxGainProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties MaxGain[%d]"),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties Max Gain[%d]"),value);
+                        }
+                    else if(!property.Compare(KTagSamplesRecordedProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties SamplesRecorded[%d]"),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties SamplesRecorded[%d]"),value);
+                        }
+
+                    else if(!property.Compare(KTagLeftBalanceProperty()))
+                        {                  
+                            g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL); 
+                         }             
+              
+                    else if(!property.Compare(KTagRightBalanceProperty()))
+                        {
+                        
+                            g_object_get (G_OBJECT (iObjects->iSource),(const char *)(des.PtrZ()), &value, NULL); 
+
+                            }
+                   
+                    if(value == ValueExpected)
+                        {
+                    FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties EDEVSOUNDSRC OK")));
+                    iLog->Log(_L("CGStreamerTestClass::CheckProperties EDEVSOUNDSRC OK " ));
+                        }
+                    else
+                        {
+                    FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties EDEVSOUNDSRC Error ValueExpected [%d]"),ValueExpected));
+                    iLog->Log(_L("CGStreamerTestClass::CheckProperties EDEVSOUNDSRC ValueExpected [%d]"),ValueExpected);
+                        error = KErrGeneral;
+                        gst_element_set_state (iObjects->iPipeline,GST_STATE_NULL);
+                        }
+                    delete prop;
+                    }
+                break;
+                }            
+            case   EDEVSOUNDSINK:
+                {
+                if(!iObjects->iSink)
+                    {
+                    error = KErrNotFound;
+                    }
+                else
+                    {
+                    TPtrC property;
+                    TInt value(0);
+                    aItem.GetNextString(property);
+                    HBufC8* prop = HBufC8::NewL(property.Length()+ 1);
+                    TPtr8 des = prop->Des();
+                    des.Copy(property);
+                    if(!property.Compare(KTagVolumeProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSink),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties Volume[%d]"),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties Volume[%d]"),value);
+                        }
+                    else if(!property.Compare(KTagRateProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSink),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties rate [%d]"),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties rate[%d]"),value);
+                        }
+                    else if(!property.Compare(KTagChannelsProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSink),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties channels [%d]"),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties channels[%d]"),value);
+                        }
+                    else if(!property.Compare(KTagMaxVolumeProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSink),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties max vol[%d] "),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties max vol[%d]"),value);
+                        }
+                    else if(!property.Compare(KTagSamplesPlayedProperty()))
+                        {
+                        g_object_get (G_OBJECT (iObjects->iSink),(const char *)(des.PtrZ()), &value, NULL); 
+                        FTRACE(FPrint(_L("CGStreamerTestClass::CheckProperties samples played[%d] "),value));
+                        iLog->Log(_L("CGStreamerTestClass::CheckProperties samples played[%d]"),value);
+                        }
+                    delete prop;
+                    }
+                break;
+                }
+            default:
+                error = KErrNotFound;
+                break;
+            }
+        iLog->Log(_L(">>CGStreamerTestClass::CheckProperties Error[%d]"),error);
+        return error;
+    iLog->Log(_L("<<CGStreamerTestClass::CheckProperties"));   
+    return KErrNone;
+    }
+
+TInt CGStreamerTestClass::SeekElement( CStifItemParser& aItem )
+    {   
+    FTRACE(FPrint(_L("CGStreamerTestClass::SeekElement")));
+    iLog->Log(_L(">>CGStreamerTestClass::SeekElement"));   
+    //
+    TInt time;
+    GstFormat fmt = GST_FORMAT_TIME;
+    gint64 pos1, len1 , pos2 , len2;
+
+    aItem.GetNextInt(time);
+    if (gst_element_query_position (iObjects->iPipeline, &fmt, &pos1)
+      && gst_element_query_duration (iObjects->iPipeline, &fmt, &len1)) {
+    iLog->Log(_L("CGStreamerTestClass:: before seek query position and duration error"));
+    }
+    pos1 = (pos1 / GST_SECOND ) ;
+    len1 = (len1 / GST_SECOND ) ;
+    time = pos1 + (time);
+    if (!gst_element_seek (iObjects->iPipeline, 1.0 , GST_FORMAT_TIME, GST_SEEK_FLAG_ACCURATE,
+                             GST_SEEK_TYPE_SET, time*GST_SECOND ,
+                             GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)) {
+    iLog->Log(_L("<<CGStreamerTestClass::SeekElement Failed"));
+      }
+
+    if (gst_element_query_position (iObjects->iPipeline, &fmt, &pos2)
+      && gst_element_query_duration (iObjects->iPipeline, &fmt, &len2)) {
+    iLog->Log(_L("CGStreamerTestClass:: after seek query position and duration error"));
+    }
+    pos2 = (pos2 / GST_SECOND ) ;
+    len2 = (len2 / GST_SECOND ) ;
+    iLog->Log(_L("<<CGStreamerTestClass::SeekElement"));   
+    return KErrNone;
+    }
+
+
+
+
 //  End of File