Bug 90332 - disable x-fade or fade-in for gst-engine
Summary: disable x-fade or fade-in for gst-engine
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Applications
Component: general (other bugs)
Version First Reported In: 1.1
Platform: unspecified Linux
: NOR wishlist
Target Milestone: ---
Assignee: Amarok Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-09-27 17:41 UTC by Damir Perisa
Modified: 2006-06-11 12:32 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Damir Perisa 2004-09-27 17:41:12 UTC
Version:           1.1 (using KDE 3.3.0, Arch Linux)
Compiler:          gcc version 3.4.2
OS:                Linux (i686) release 2.6.8.1-mm4

i want to be able to disable crossfading and fading-in with gst-engine

why? because:

- bug 90317 is probably related to x-fading

- while gst-engine is x-fading to next song or fading-in to a clicked one, (somehow this only happens with m4a (mpeg4audio)), it is skipped and next song is loaded, but this is also fading-in and also skipped (what is very annoying)

workaround to second reason: set fade-in of gst-engine to 0ms: then only one song is skipped (very funny, because you select one song in playlist and the next one is actually played)
Comment 1 Damir Perisa 2004-09-27 17:42:09 UTC
another workaround: press PLAY-PAUSE-PLAY (3 times press on PLAY), what makes the actual song playing (but this behaviour is very funny)
Comment 2 Damir Perisa 2004-09-27 17:44:28 UTC
here the output of such a situation of skipping and finally playing one of the songs in playlist:

amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%2    0West/Z%FCriwest%20Retour/13%207_7.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 
amarok: [Gst-Engine] Fade-in finished.
amarok: [virtual void GstEngine::pause()] 
amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%2    0West/Z%FCriwest%20Retour/09%20Idiot.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 
amarok: [static void GstEngine::inputError_cb(GstElement*, GstElement*, GError*,     gchar*, void*)] 
amarok: [void GstEngine::handleInputError()] 
amarok: ERROR: An input bin has signaled an error condition, destroying.
amarok: [void GstEngine::destroyInput(InputPipeline*)] 
amarok: [Gst-Engine] Destroying input pipeline.
amarok: BEGIN [InputPipeline::~InputPipeline()] 
amarok: Destroying input bin.
amarok: END [InputPipeline::~InputPipeline()] 
amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%2    0West/Z%FCriwest%20Retour/10%20Gl%FCcklech.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 
amarok: ERROR: [GStreamer Error] Internal GStreamer error: negotiation problem.      File a bug.
amarok: [void GstEngine::destroyInput(InputPipeline*)] 
amarok: [Gst-Engine] Destroying input pipeline.
amarok: BEGIN [InputPipeline::~InputPipeline()] 
amarok: Destroying input bin.
amarok: END [InputPipeline::~InputPipeline()] 
amarok: [Gst-Engine] Fade-in finished.
Comment 3 Damir Perisa 2004-09-27 17:48:42 UTC
pressing NEXT causes this output and stop of playing:

[damir@Asteraceae Züriwest Retour]$ amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%20West/Z%FCriwest%20Retour/07%20I%20ha%20di%20g%E4rn%20gha.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 

(process:4300): GStreamer-WARNING **: element thread0 claimed state-change success,but state didn't change to PLAYING. State is PAUSED (NONE_PENDING pending), fix the element
amarok: WARNING: [Gst-Engine] Could not set input thread to PLAYING.
amarok: [void GstEngine::destroyInput(InputPipeline*)] 
amarok: [Gst-Engine] Destroying input pipeline.
amarok: BEGIN [InputPipeline::~InputPipeline()] 
amarok: Destroying input bin.
amarok: END [InputPipeline::~InputPipeline()] 
amarok: [void GstEngine::destroyInput(InputPipeline*)] 
amarok: [Gst-Engine] Destroying input pipeline.
amarok: BEGIN [InputPipeline::~InputPipeline()] 
amarok: Destroying input bin.
amarok: END [InputPipeline::~InputPipeline()]

then pressing PLAY, this happens:

amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%20West/Z%FCriwest%20Retour/07%20I%20ha%20di%20g%E4rn%20gha.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 
amarok: [Gst-Engine] Fade-in finished.
amarok: [virtual void GstEngine::pause()]

but still no musik

again pressing PLAY, this comes:

amarok: [virtual void GstEngine::pause()]

and also the song "07 I ha di gärn gha" starts playing (finally)
Comment 4 Damir Perisa 2004-09-27 17:50:48 UTC
somehow play() and pause() are sometimes ignored, while fading-in or crossfading i think (not sure) so this causes negotiation problems with gstreamer core (only a guess)
Comment 5 Damir Perisa 2004-09-27 17:53:27 UTC
from time to time while this fast skipping of songs comes, this is outputed:

(process:4300): GStreamer-WARNING **: inconsistent state information, fix threading please

this is maybe the key to problems (not at all sure)
Comment 6 Damir Perisa 2004-09-27 18:00:09 UTC
FOUND A SOLUTION TO THIS WILD SKIPPING:

[configure amarok]-[playback]-[Transition Behaviour]:
set this to "Normal" and use an Insert gap of at least 1000ms

this solves the errors from gst-engine while playing/going to next song if it is m4a

nonthematter i want to be able to disable the fading-in and xfading for gst-engine
Comment 7 Damir Perisa 2004-09-28 15:29:13 UTC
comment 6 is not always working --- sometimes i need more than 3000ms to have it working (else, it plays another track instead of the one i clicked)

the behaviour was not like this in gst-engine in amarok 1.0.2 -> i think the fading causes the troubles
Comment 8 Damir Perisa 2004-09-28 15:32:24 UTC
using alsasink, it works a little better, but sometimes amarok simply crashes with this in console:

amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%2                    0West/Z%FCriwest%20Retour/07%20I%20ha%20di%20g%E4rn%20gha.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 
amarok: [Gst-Engine] XFade-in finished.
amarok: [void GstEngine::destroyInput(InputPipeline*)] 
amarok: [Gst-Engine] Destroying input pipeline.
amarok: BEGIN [InputPipeline::~InputPipeline()] 
amarok: Destroying input bin.
amarok: END [InputPipeline::~InputPipeline()] 
amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%2                    0West/Z%FCriwest%20Retour/11%20Toucher.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 
amarok: [Gst-Engine] XFade-in finished.
amarok: [void GstEngine::destroyInput(InputPipeline*)] 
amarok: [Gst-Engine] Destroying input pipeline.
amarok: BEGIN [InputPipeline::~InputPipeline()] 
amarok: Destroying input bin.
amarok: [static void GstEngine::inputError_cb(GstElement*, GstElement*, GError*,                     gchar*, void*)] 
amarok: END [InputPipeline::~InputPipeline()] 
amarok: [void GstEngine::handleInputError()] 
amarok: ERROR: An input bin has signaled an error condition, destroying.
amarok: [void GstEngine::destroyInput(InputPipeline*)] 
amarok: [Gst-Engine] Destroying input pipeline.
amarok: BEGIN [InputPipeline::~InputPipeline()] 
amarok: Destroying input bin.
amarok: END [InputPipeline::~InputPipeline()] 
amarok: ERROR: [GStreamer Error] Internal GStreamer error: negotiation problem.                      File a bug.
amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%2                    0West/Z%FCriwest%20Retour/04%20Traffik.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 
amarok: [Gst-Engine] Fade-in finished.
amarok: [Gst-Engine] Loading url: file:/mnt/sda1/musik/Theo%27s%20Music/Z%FCri%2                    0West/Z%FCriwest%20Retour/07%20I%20ha%20di%20g%E4rn%20gha.m4a
amarok: [InputPipeline::InputPipeline()] 
amarok: [virtual bool GstEngine::play(uint)] 
amarok: [static void GstEngine::inputError_cb(GstElement*, GstElement*, GError*,                     gchar*, void*)] 
amarok: [void GstEngine::handleInputError()] 
amarok: ERROR: An input bin has signaled an error condition, destroying.
amarok: [void GstEngine::destroyInput(InputPipeline*)] 
amarok: [Gst-Engine] Destroying input pipeline.
amarok: BEGIN [InputPipeline::~InputPipeline()] 
amarok: Destroying input bin.
amarok: END [InputPipeline::~InputPipeline()] 
amarok: ERROR: [GStreamer Error] Internal GStreamer error: negotiation problem.                      File a bug.

[damir@Asteraceae Züriwest Retour]$ 
Comment 9 Mark Kretschmann 2004-09-29 19:32:57 UTC
*** Bug has been marked as fixed ***.
Comment 10 Damir Perisa 2004-10-12 14:52:21 UTC
it is solved: if i click on a song in m4a and using gst-engine, it plays immediately

thanx!

however, there is one small thing, that is still not OK: Bug 91181 : after playing the one song, the player do not advance to the next track