Fix broken evLoadAudioFile.
authorib <ib@b3059339-0415-0410-9bf9-f77b7e298cf2>
Thu, 12 Apr 2018 09:12:55 +0000 (09:12 +0000)
committerib <ib@b3059339-0415-0410-9bf9-f77b7e298cf2>
Thu, 12 Apr 2018 09:12:55 +0000 (09:12 +0000)
It did not work so far. A separately loaded audio track did not play.

guiInfo.AudioFilename must not be cleared by uiUnsetMedia(FALSE),
because media is unset (i.e. prepared) this way whenever a new file
will be loaded for playback which happens *after* loading a separate
audio track.

So explicitly clear guiInfo.AudioFilename only by a full unset
(uiUnsetMedia(TRUE)) and regularly unset it after a playback has
ended (at GUI_END_PLAY).

git-svn-id: svn://git.mplayerhq.hu/mplayer/trunk@38064 b3059339-0415-0410-9bf9-f77b7e298cf2

gui/interface.c
gui/ui/actions.c

index ef7ccc6..a50a0a1 100644 (file)
@@ -1041,6 +1041,8 @@ int gui(int what, void *data)
 
         guiInfo.sh_video = NULL;
 
+        nfree(guiInfo.AudioFilename);
+
         if (guiInfo.LastVolume >= 0.0f) {
             if (guiInfo.Volume == guiInfo.ReplayGainVolume)
                 uiEvent(ivSetVolume, guiInfo.LastVolume);
index 22e72d2..0c87466 100644 (file)
@@ -764,7 +764,8 @@ void uiUnsetFile(void)
 /**
  * @brief Unset media information.
  *
- * @param totals whether to additionally unset number of chapters and angles (#True)
+ * @param totals whether to additionally unset number of chapters, angles and
+ *               audio filename (#True)
  *               or just track, chapter and angle (#False)
  */
 void uiUnsetMedia(int totals)
@@ -782,6 +783,8 @@ void uiUnsetMedia(int totals)
 
         if (guiInfo.StreamType != STREAMTYPE_BINCUE)
             guiInfo.Angles = 0;
+
+        nfree(guiInfo.AudioFilename);
     } else {
         guiInfo.Track   = 0;
         guiInfo.Chapter = 0;
@@ -790,7 +793,6 @@ void uiUnsetMedia(int totals)
 
     nfree(guiInfo.CodecName);
     nfree(guiInfo.Title);
-    nfree(guiInfo.AudioFilename);
     nfree(guiInfo.SubtitleFilename);
     nfree(guiInfo.ImageFilename);
 }