Module: sems
Branch: master
Commit: d746c94c1ddb7fa1b39adcbf7b74425922934d9d
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sems/?a=commit;h=d746c94c1ddb7fa1b39adcbf7b74425922934d9d

Author: Raphael Coeffic <[email protected]>
Committer: Raphael Coeffic <[email protected]>
Date:   Wed Dec 14 16:26:22 2011 +0100

adapted to new payload provider in AmRtpStream

---

 apps/precoded_announce/PrecodedAnnounce.cpp |   26 +++-----------------------
 apps/precoded_announce/PrecodedAnnounce.h   |    9 +--------
 core/AmPrecodedFile.cpp                     |   18 +++++++-----------
 core/AmPrecodedFile.h                       |   10 +++-------
 4 files changed, 14 insertions(+), 49 deletions(-)

diff --git a/apps/precoded_announce/PrecodedAnnounce.cpp 
b/apps/precoded_announce/PrecodedAnnounce.cpp
index b29e9a2..aff125d 100644
--- a/apps/precoded_announce/PrecodedAnnounce.cpp
+++ b/apps/precoded_announce/PrecodedAnnounce.cpp
@@ -62,37 +62,17 @@ AmSession* PrecodedFactory::onInvite(const AmSipRequest& 
req, const string& app_
 PrecodedDialog::PrecodedDialog(AmPrecodedFile* file_def)
   : file_def(file_def)
 {
+  RTPStream()->setPayloadProvider(file_def);
 }
 
 PrecodedDialog::~PrecodedDialog()
 {
 }
 
-AmPayloadProviderInterface* PrecodedDialog::getPayloadProvider() {
-  return file_def;
-}
-
-AmAudioRtpFormat* PrecodedDialog::getNewRtpFormat() {
-  if (m_payloads.empty()) {
-    ERROR("can not create RTP format without payloads.\n");
-    return NULL;
-  }
-
-  current_payload = m_payloads[0]->payload_type;
-    
-  precoded_payload_t *precoded_payload = 
-    static_cast<precoded_payload_t*>(file_def->payload(current_payload));
-  if (precoded_payload == NULL) {
-    ERROR("new payload not provided\n");
-    return NULL;
-  }
-  return new AmPrecodedRtpFormat(*precoded_payload, m_payloads);
-}
-
 void PrecodedDialog::onSessionStart()
 {
-  AmPrecodedFileInstance* file = file_def->getFileInstance(current_payload, 
-                                                          m_payloads);
+  AmPrecodedFileInstance* file = 
+    file_def->getFileInstance(RTPStream()->getPayloadType());
   if (!file) {
     ERROR("no payload\n");
   }
diff --git a/apps/precoded_announce/PrecodedAnnounce.h 
b/apps/precoded_announce/PrecodedAnnounce.h
index 2b0788b..6eec2dc 100644
--- a/apps/precoded_announce/PrecodedAnnounce.h
+++ b/apps/precoded_announce/PrecodedAnnounce.h
@@ -48,22 +48,15 @@ public:
 
 class PrecodedDialog : public AmSession
 {
-    
   AmPrecodedFile* file_def;
-
   int current_payload;
 
-protected:
-  AmAudioRtpFormat* getNewRtpFormat();
-
- public:
+public:
   PrecodedDialog(AmPrecodedFile* file_def);
   ~PrecodedDialog();
   
   void onSessionStart();
   void onBye(const AmSipRequest& req);
-
-  AmPayloadProviderInterface* getPayloadProvider();
 };
 
 #endif
diff --git a/core/AmPrecodedFile.cpp b/core/AmPrecodedFile.cpp
index 9325849..5235695 100644
--- a/core/AmPrecodedFile.cpp
+++ b/core/AmPrecodedFile.cpp
@@ -58,9 +58,8 @@ void AmPrecodedFile::initPlugin() {
     AmPlugIn::instance()->addPayload(&it->second);
 }
 
-AmPrecodedRtpFormat::AmPrecodedRtpFormat(precoded_payload_t& precoded_payload,
-                                        const vector<SdpPayload *>& payloads)
-  : AmAudioRtpFormat(/*payloads*/), precoded_payload(precoded_payload)
+AmPrecodedRtpFormat::AmPrecodedRtpFormat(precoded_payload_t& precoded_payload)
+  : AmAudioRtpFormat(), precoded_payload(precoded_payload)
 {
   channels = precoded_payload.channels;
   rate = precoded_payload.sample_rate;
@@ -120,9 +119,8 @@ int precoded_file_close(FILE* fp, struct amci_file_desc_t* 
fmt_desc, int options
   return 0;
 }
 
-AmPrecodedFileInstance::AmPrecodedFileInstance(precoded_payload_t& 
precoded_payload, 
-                                              const vector<SdpPayload*>&  
payloads) 
-  : AmAudioFile(), precoded_payload(precoded_payload), payloads(payloads)
+AmPrecodedFileInstance::AmPrecodedFileInstance(precoded_payload_t& 
precoded_payload) 
+  : AmAudioFile(), precoded_payload(precoded_payload)
 {
   memset(&m_iofmt, 0, sizeof(amci_inoutfmt_t));
   m_iofmt.open = &precoded_file_open;
@@ -142,7 +140,7 @@ int AmPrecodedFileInstance::open() {
 }
 
 AmPrecodedRtpFormat* AmPrecodedFileInstance::getRtpFormat() {
-  return new AmPrecodedRtpFormat(precoded_payload, payloads);
+  return new AmPrecodedRtpFormat(precoded_payload);
 }
 
 AmPrecodedFile::AmPrecodedFile() 
@@ -242,11 +240,9 @@ void AmPrecodedFile::getPayloads(vector<SdpPayload>& 
pl_vec) const
   }
 }
 
-AmPrecodedFileInstance* AmPrecodedFile::getFileInstance(int payload_id, 
-                                                       const 
vector<SdpPayload*>&  m_payloads) {
+AmPrecodedFileInstance* AmPrecodedFile::getFileInstance(int payload_id) {
   std::map<int,precoded_payload_t>::iterator it=payloads.find(payload_id);
   if (it != payloads.end()) 
-    return new AmPrecodedFileInstance(it->second, m_payloads);
-
+    return new AmPrecodedFileInstance(it->second);
   return NULL;
 }
diff --git a/core/AmPrecodedFile.h b/core/AmPrecodedFile.h
index 29cba56..05aa6f5 100644
--- a/core/AmPrecodedFile.h
+++ b/core/AmPrecodedFile.h
@@ -68,8 +68,7 @@ class AmPrecodedRtpFormat : public AmAudioRtpFormat {
   precoded_payload_t& precoded_payload;
   
  public:
-  AmPrecodedRtpFormat(precoded_payload_t& precoded_payload,
-                     const vector<SdpPayload *>& payloads);
+  AmPrecodedRtpFormat(precoded_payload_t& precoded_payload);
   ~AmPrecodedRtpFormat();
 
  protected:
@@ -80,12 +79,10 @@ class AmPrecodedFileInstance
 : public AmAudioFile {
  
   precoded_payload_t& precoded_payload;
-  const vector<SdpPayload*>&  payloads;
   amci_inoutfmt_t m_iofmt;
 
  public:
- AmPrecodedFileInstance(precoded_payload_t& precoded_payload, 
-                       const vector<SdpPayload*>&  payloads);
+ AmPrecodedFileInstance(precoded_payload_t& precoded_payload);
  ~AmPrecodedFileInstance();
 
  AmPrecodedRtpFormat* getRtpFormat();
@@ -111,8 +108,7 @@ class AmPrecodedFile
   /** need to call after open() */
   void initPlugin();
 
-  AmPrecodedFileInstance* getFileInstance(int payload_id, 
-                            const vector<SdpPayload*>&  m_payloads);
+  AmPrecodedFileInstance* getFileInstance(int payload_id);
 
   /** from @AmPayloadProvider */
   amci_payload_t*  payload(int payload_id) const;

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to