Kodi Community Forum
Testing audio engine ActiveAE - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32)
+--- Forum: Kodi Application (https://forum.kodi.tv/forumdisplay.php?fid=93)
+--- Thread: Testing audio engine ActiveAE (/showthread.php?tid=170338)



RE: Testing audio engine ActiveAE - FernetMenta - 2013-08-12

(2013-08-12, 12:40)ace20022 Wrote: Hi, two things I've noticed:
  1. after seeking backwards a/v sync is lost. Pausing it for a while and press play starts fist audio and than video, then a/v is synced again.
  2. pausing and then stopping does not stop audio immediately (i.e. audio is audible for some ms))

Debug log:http://xbmclogs.com/show.php?id=44555

Thanks.

1)
please apply PR 3095. It hopefully it cures this error which I think is responsible for the a/v desync.
ERROR: CDVDAudio::AddPacketsRenderer - timeout adding data to renderer
With this patch I can't reproduce on Win 7 with WASAPI.

2)
That's a challenge and related to the primary reason why I have started ActiveAE. Some background:
Consider we play some video with 5.1 audio PCM. Now audio changes to stereo which is quite common, i.e. commercial break. dvdplayer called Drain, FreeStream, MakeStream. SoftAE did not drain, neither the sink nor the stream, then destructed the stream and opened a new sink. This lead to loss of some seconds of audio, stuttering of video, and buffering.

ActiveAE drains properly, the new stream starts after the old without any loss of packets.

We need to distinguish between:
- FreeStream and we want to open a new one
- FreeStream after having pressed stop.

This requires an API change

Pause:
Currently our sinks don't provide any method for pausing. Pause it called on the stream. Take into account that paplayer can open more than a single stream, hence all samples already mixed can't be paused.
SoftAE did not stop immediately either, the buffer in the sink played out. SostAE's interface to paplayer is borked anyway.

I am thinking about a solution for this but it's not trivial.


RE: Testing audio engine ActiveAE - Ace - 2013-08-12

Unfortunately, PR 3095 does not help.


RE: Testing audio engine ActiveAE - sialivi - 2013-08-12

(2013-08-12, 13:37)FernetMenta Wrote: 2)
That's a challenge and related to the primary reason why I have started ActiveAE. Some background:
Consider we play some video with 5.1 audio PCM. Now audio changes to stereo which is quite common, i.e. commercial break. dvdplayer called Drain, FreeStream, MakeStream. SoftAE did not drain, neither the sink nor the stream, then destructed the stream and opened a new sink. This lead to loss of some seconds of audio, stuttering of video, and buffering.

Switching between audio tracks in a video with multiple audio tracks still cause several seconds of stuttering. Is that not handled in the same way?


RE: Testing audio engine ActiveAE - fritsch - 2013-08-12

@sialvi: Logfile or it never happened (as it is working fine for me).


RE: Testing audio engine ActiveAE - sialivi - 2013-08-12

(2013-08-12, 15:19)fritsch Wrote: @sialvi: Logfile or it never happened (as it is working fine for me).

Didn't expect anyone to respond before I had finished getting and adding a log, but here it is: http://www.xbmclogs.com/show.php?id=44574

The relevant part starts on row 571.

If you want to test with the same sample file I used, I have it linked in the ticket I created about this a couple of months ago: http://trac.xbmc.org/ticket/13322


RE: Testing audio engine ActiveAE - FernetMenta - 2013-08-12

(2013-08-12, 14:54)ace20022 Wrote: Unfortunately, PR 3095 does not help.

I have pushed some more commits to 3095. Stop playback should stop audio fster now.
Here is a log from my Win 7 machine doing ff/rw/seeks. a/v sync is ok after seeking and it does not show the add packets error. Can you spot any difference in what I have done to your actions?
http://www.xbmclogs.com/show.php?id=44584


RE: Testing audio engine ActiveAE - Ace - 2013-08-12

Stopping playback seems to work now, you was really fast, super!
Just retried the rw bug, sometimes I have to rw (jumping seems to work) multiple times to trigger it, but it always occurred in the end.


RE: Testing audio engine ActiveAE - FernetMenta - 2013-08-12

(2013-08-12, 15:13)sialivi Wrote:
(2013-08-12, 13:37)FernetMenta Wrote: 2)
That's a challenge and related to the primary reason why I have started ActiveAE. Some background:
Consider we play some video with 5.1 audio PCM. Now audio changes to stereo which is quite common, i.e. commercial break. dvdplayer called Drain, FreeStream, MakeStream. SoftAE did not drain, neither the sink nor the stream, then destructed the stream and opened a new sink. This lead to loss of some seconds of audio, stuttering of video, and buffering.

Switching between audio tracks in a video with multiple audio tracks still cause several seconds of stuttering. Is that not handled in the same way?

you are observing a problem in dvdplayer:
Code:
{
            CloseAudioStream(false);
            OpenAudioStream(st.id, st.source);
            m_messenger.Put(new CDVDMsgPlayerSeek(GetTime(), true, true, true, true, true));
          }

it completely clears down audio and even does a seek after opening the new stream. i have no idea why this is done that way.


RE: Testing audio engine ActiveAE - FernetMenta - 2013-08-12

(2013-08-12, 16:13)ace20022 Wrote: Stopping playback seems to work now, you was really fast, super!
Just retried the rw bug, sometimes I have to rw (jumping seems to work) multiple times to trigger it, but it always occurred in the end.

How much a/v desync do you estimate (in ms)? Could you post a new log with current PR applied?


RE: Testing audio engine ActiveAE - Ace - 2013-08-13

It keeps decreasing till -7600ms approximately and then changes back and forth from 0 to -7600ms (fps changes between 16 and 25).
log: http://www.xbmclogs.com/show.php?id=44792


RE: Testing audio engine ActiveAE - fritsch - 2013-08-13

Can you change your DirtyRegions Method to 3? And the timeout to 0? (It should not influence anything, cause Video is playing - but never the less. You run a ATI card - i don't trust them :-))


RE: Testing audio engine ActiveAE - Ace - 2013-08-13

Neither removing the gui block nor your settings helped.


RE: Testing audio engine ActiveAE - fritsch - 2013-08-13

Oki, that was expected. I have seen a whole lot of things going on, when using experimental DirtyRegions settings (see the wiki). So that one is ruled out.


RE: Testing audio engine ActiveAE - fritsch - 2013-08-13

Btw. do you run windowed?
Quote:CWinSystemWin32::ResizeInternal - resizing due to size change (0,0,824,972)->(420,9,1260,1019)

Same in fullscreen? (I might ask dump questions - cause normally I don't look at windows xbmc logs ;-))


RE: Testing audio engine ActiveAE - Ace - 2013-08-13

Wink While developing I'm running it windowed, but the bug also occurs on the htpc. Just re-checked it's the same with fullscreen.