qtmobility/plugins/multimedia/symbian/openmaxal/mediarecorder/qxarecordsession.cpp
changeset 15 1f895d8a5b2b
parent 14 6fbed849b4f4
equal deleted inserted replaced
14:6fbed849b4f4 15:1f895d8a5b2b
    87             initContainersList();
    87             initContainersList();
    88             m_containerMimeType = QString("audio/wav");
    88             m_containerMimeType = QString("audio/wav");
    89             m_audioencodersettings.setCodec("pcm");
    89             m_audioencodersettings.setCodec("pcm");
    90             m_audioencodersettings.setBitRate(0);
    90             m_audioencodersettings.setBitRate(0);
    91             m_audioencodersettings.setChannelCount(-1);
    91             m_audioencodersettings.setChannelCount(-1);
    92             m_audioencodersettings.setEncodingMode(QtMultimedia::ConstantQualityEncoding);
    92             m_audioencodersettings.setEncodingMode(QtMultimediaKit::ConstantQualityEncoding);
    93             m_audioencodersettings.setQuality(QtMultimedia::NormalQuality);
    93             m_audioencodersettings.setQuality(QtMultimediaKit::NormalQuality);
    94             m_audioencodersettings.setSampleRate(-1);
    94             m_audioencodersettings.setSampleRate(-1);
    95             QT_TRACE1("Initialized implementation");
    95             QT_TRACE1("Initialized implementation");
    96         }
    96         }
    97         else {
    97         else {
    98             delete m_impl;
    98             delete m_impl;
   453     if ((codec.compare("aac") == 0) ||
   453     if ((codec.compare("aac") == 0) ||
   454             (codec.compare("amr") == 0))
   454             (codec.compare("amr") == 0))
   455         {
   455         {
   456         options << "bitrate";
   456         options << "bitrate";
   457         }
   457         }
       
   458     else
       
   459         {
       
   460         options << "quality";
       
   461         }
   458 
   462 
   459     QT_TRACE_FUNCTION_EXIT;
   463     QT_TRACE_FUNCTION_EXIT;
   460     return options;
   464     return options;
   461 }
   465 }
   462 
   466 
   593     QString tempStr = m_containerMimeType.toLower();
   597     QString tempStr = m_containerMimeType.toLower();
   594     TPtrC16 tempPtr(reinterpret_cast<const TUint16 *>(tempStr.utf16()));
   598     TPtrC16 tempPtr(reinterpret_cast<const TUint16 *>(tempStr.utf16()));
   595     m_impl->setContainerType(tempPtr);
   599     m_impl->setContainerType(tempPtr);
   596 
   600 
   597     /* Validate and set bitrate only if encoding mode is other than quality encoding */
   601     /* Validate and set bitrate only if encoding mode is other than quality encoding */
   598     if (m_audioencodersettings.encodingMode() != QtMultimedia::ConstantQualityEncoding) {
   602     if (m_audioencodersettings.encodingMode() != QtMultimediaKit::ConstantQualityEncoding) {
   599         if (m_audioencodersettings.bitRate() == -1) {
   603         if (m_audioencodersettings.bitRate() == -1) {
   600             m_impl->setOptimalBitRate();
   604             m_impl->setOptimalBitRate();
   601         }
   605         }
   602         else if (m_audioencodersettings.bitRate() < 0 ) {
   606         else if (m_audioencodersettings.bitRate() < 0 ) {
   603             emit error(QMediaRecorder::FormatError, tr("Invalid bitrate"));
   607             emit error(QMediaRecorder::FormatError, tr("Invalid bitrate"));
   633         SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid codec\"));");
   637         SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid codec\"));");
   634         return false;
   638         return false;
   635     }
   639     }
   636 
   640 
   637     switch (m_audioencodersettings.encodingMode()) {
   641     switch (m_audioencodersettings.encodingMode()) {
   638     case QtMultimedia::ConstantQualityEncoding: {
   642     case QtMultimediaKit::ConstantQualityEncoding: {
   639             switch (m_audioencodersettings.quality()) {
   643             switch (m_audioencodersettings.quality()) {
   640             case QtMultimedia::VeryLowQuality:
   644             case QtMultimediaKit::VeryLowQuality:
   641                 m_impl->setVeryLowQuality();
   645                 m_impl->setVeryLowQuality();
   642                 break;
   646                 break;
   643             case QtMultimedia::LowQuality:
   647             case QtMultimediaKit::LowQuality:
   644                 m_impl->setLowQuality();
   648                 m_impl->setLowQuality();
   645                 break;
   649                 break;
   646             case QtMultimedia::NormalQuality:
   650             case QtMultimediaKit::NormalQuality:
   647                 m_impl->setNormalQuality();
   651                 m_impl->setNormalQuality();
   648                 break;
   652                 break;
   649             case QtMultimedia::HighQuality:
   653             case QtMultimediaKit::HighQuality:
   650                 m_impl->setHighQuality();
   654                 m_impl->setHighQuality();
   651                 break;
   655                 break;
   652             case QtMultimedia::VeryHighQuality:
   656             case QtMultimediaKit::VeryHighQuality:
   653                 m_impl->setVeryHighQuality();
   657                 m_impl->setVeryHighQuality();
   654                 break;
   658                 break;
   655             default:
   659             default:
   656                 emit error(QMediaRecorder::FormatError, tr("Invalid encoding quality setting"));
   660                 emit error(QMediaRecorder::FormatError, tr("Invalid encoding quality setting"));
   657                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid encoding quality setting\"));");
   661                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid encoding quality setting\"));");
   658                 return false;
   662                 return false;
   659             }; /* end of switch (m_audioencodersettings.quality())*/
   663             }; /* end of switch (m_audioencodersettings.quality())*/
   660         }
   664         }
   661         break;
   665         break;
   662     case QtMultimedia::ConstantBitRateEncoding: {
   666     case QtMultimediaKit::ConstantBitRateEncoding: {
   663             TInt32 status = m_impl->setCBRMode();
   667             TInt32 status = m_impl->setCBRMode();
   664             if (status == KErrNotSupported) {
   668             if (status == KErrNotSupported) {
   665                 emit error(QMediaRecorder::FormatError, tr("Invalid encoding mode setting"));
   669                 emit error(QMediaRecorder::FormatError, tr("Invalid encoding mode setting"));
   666                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid encoding mode setting\"));");
   670                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid encoding mode setting\"));");
   667                 return false;
   671                 return false;
   671                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::ResourceError, tr(\"Internal error\"));");
   675                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::ResourceError, tr(\"Internal error\"));");
   672                 return false;
   676                 return false;
   673             }
   677             }
   674         }
   678         }
   675         break;
   679         break;
   676     case QtMultimedia::AverageBitRateEncoding: {
   680     case QtMultimediaKit::AverageBitRateEncoding: {
   677             TInt32 status = m_impl->setVBRMode();
   681             TInt32 status = m_impl->setVBRMode();
   678             if (status == KErrNotSupported) {
   682             if (status == KErrNotSupported) {
   679                 emit error(QMediaRecorder::FormatError, tr("Invalid encoding mode setting"));
   683                 emit error(QMediaRecorder::FormatError, tr("Invalid encoding mode setting"));
   680                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid encoding mode setting\"));");
   684                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid encoding mode setting\"));");
   681                 return false;
   685                 return false;
   685                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::ResourceError, tr(\"Internal error\"));");
   689                 SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::ResourceError, tr(\"Internal error\"));");
   686                 return false;
   690                 return false;
   687             }
   691             }
   688         }
   692         }
   689         break;
   693         break;
   690     case QtMultimedia::TwoPassEncoding:
   694     case QtMultimediaKit::TwoPassEncoding:
   691         // fall through
   695         // fall through
   692     default: {
   696     default: {
   693             emit error(QMediaRecorder::FormatError, tr("Invalid encoding mode setting"));
   697             emit error(QMediaRecorder::FormatError, tr("Invalid encoding mode setting"));
   694             SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid encoding mode setting\"));");
   698             SIGNAL_EMIT_TRACE1("emit error(QMediaRecorder::FormatError, tr(\"Invalid encoding mode setting\"));");
   695             return false;
   699             return false;
   696         }
   700         }
   697     }; /* switch (m_audioencodersettings.encodingMode()) */
   701     }; /* switch (m_audioencodersettings.encodingMode()) */
   698 
   702 
   699     /* Validate and set bitrate only if encoding mode is other than quality encoding */
   703     /* Validate and set bitrate only if encoding mode is other than quality encoding */
   700     if (m_audioencodersettings.encodingMode() != QtMultimedia::ConstantQualityEncoding) {
   704     if (m_audioencodersettings.encodingMode() != QtMultimediaKit::ConstantQualityEncoding) {
   701         if (m_audioencodersettings.sampleRate() == -1) {
   705         if (m_audioencodersettings.sampleRate() == -1) {
   702             m_impl->setOptimalSampleRate();
   706             m_impl->setOptimalSampleRate();
   703         }
   707         }
   704         else if (m_audioencodersettings.sampleRate() <= 0) {
   708         else if (m_audioencodersettings.sampleRate() <= 0) {
   705             emit error(QMediaRecorder::FormatError, tr("Invalid sample rate"));
   709             emit error(QMediaRecorder::FormatError, tr("Invalid sample rate"));