diff --git a/src/media/audio/portaudio/portaudiolayer.cpp b/src/media/audio/portaudio/portaudiolayer.cpp
index d7d77a1871095a9991acd113c93ed98f6a61d66a..7206a37a0df8780fb36dc710a98cc5762edaf550 100644
--- a/src/media/audio/portaudio/portaudiolayer.cpp
+++ b/src/media/audio/portaudio/portaudiolayer.cpp
@@ -88,6 +88,11 @@ PortAudioLayer::PortAudioLayer(const AudioPreference& pref)
     , pimpl_ {new PortAudioLayerImpl(*this, pref)}
 {}
 
+PortAudioLayer::~PortAudioLayer()
+{
+    stopStream();
+}
+
 std::vector<std::string>
 PortAudioLayer::getCaptureDeviceList() const
 {
@@ -281,6 +286,8 @@ PortAudioLayer::PortAudioLayerImpl::init(PortAudioLayer& parent)
             parent.audioFormat_.nb_channels = outputDeviceInfo->maxOutputChannels;
             parent.audioFormat_.sample_rate = outputDeviceInfo->defaultSampleRate;
             parent.hardwareFormatAvailable(parent.audioFormat_);
+            JAMI_DBG() << "PortAudioLayer initialized output using: "
+                << outputDeviceInfo->name;
         } else {
             indexOut_ = paNoDevice;
         }
@@ -291,6 +298,8 @@ PortAudioLayer::PortAudioLayerImpl::init(PortAudioLayer& parent)
             parent.audioInputFormat_.nb_channels = inputDeviceInfo->maxInputChannels;
             parent.audioInputFormat_.sample_rate = inputDeviceInfo->defaultSampleRate;
             parent.hardwareInputFormatAvailable(parent.audioInputFormat_);
+            JAMI_DBG() << "PortAudioLayer initialized input using: "
+                << inputDeviceInfo->name;
         } else {
             indexIn_ = paNoDevice;
         }
diff --git a/src/media/audio/portaudio/portaudiolayer.h b/src/media/audio/portaudio/portaudiolayer.h
index cf3342e6a9ac70f5fee92118a805afceec9f4ed5..af208c8dc0ffd2abc93270e70d218f8dd1f3b063 100644
--- a/src/media/audio/portaudio/portaudiolayer.h
+++ b/src/media/audio/portaudio/portaudiolayer.h
@@ -33,29 +33,29 @@ class PortAudioLayer : public AudioLayer {
 
 public:
     PortAudioLayer(const AudioPreference& pref);
-    virtual ~PortAudioLayer() = default;
+    ~PortAudioLayer();
 
-    virtual std::vector<std::string> getCaptureDeviceList() const;
-    virtual std::vector<std::string> getPlaybackDeviceList() const;
-    virtual int getAudioDeviceIndex(const std::string& name, DeviceType type) const;
-    virtual std::string getAudioDeviceName(int index, DeviceType type) const;
-    virtual int getIndexCapture() const;
-    virtual int getIndexPlayback() const;
-    virtual int getIndexRingtone() const;
+    std::vector<std::string> getCaptureDeviceList() const override;
+    std::vector<std::string> getPlaybackDeviceList() const override;
+    int getAudioDeviceIndex(const std::string& name, DeviceType type) const override;
+    std::string getAudioDeviceName(int index, DeviceType type) const override;
+    int getIndexCapture() const override;
+    int getIndexPlayback() const override;
+    int getIndexRingtone() const override;
 
     /**
      * Start the capture stream and prepare the playback stream.
      * The playback starts accordingly to its threshold
      */
-    virtual void startStream();
+    void startStream() override;
 
     /**
      * Stop the playback and capture streams.
      * Drops the pending frames and put the capture and playback handles to PREPARED state
      */
-    virtual void stopStream();
+    void stopStream() override;
 
-    virtual void updatePreference(AudioPreference& pref, int index, DeviceType type);
+    void updatePreference(AudioPreference& pref, int index, DeviceType type) override;
 
 private:
     NON_COPYABLE(PortAudioLayer);