After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 432984 - [baseaudiosrc] misleading warning message when dropping samples
[baseaudiosrc] misleading warning message when dropping samples
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.12
Other Linux
: Normal normal
: 0.10.13
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-04-24 15:04 UTC by Diego Escalante Urrelo (not reading bugmail)
Modified: 2007-04-25 08:55 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Diego Escalante Urrelo (not reading bugmail) 2007-04-24 15:04:42 UTC
Well, I was trying out these pipeline and the following messages were printed. It said "report this" so I did :).

diego@milkyway:~/hack$ gst-launch oggmux name=mux ! filesink location=a.ogg v4lsrc ! textoverlay text="dieguito-cam" valign=bottom halign=right ! videorate ! video/x-raw-yuv,framerate=20/2,width=320,height=240 ! theoraenc ! queue ! mux. alsasrc  ! audioconvert ! vorbisenc ! mux.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock
WARNING: from element /pipeline0/alsasrc0: Internal GStreamer error: clock problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstbaseaudiosrc.c(583): gst_base_audio_src_create (): /pipeline0/alsasrc0:
dropped 11025 samples
WARNING: from element /pipeline0/alsasrc0: Internal GStreamer error: clock problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstbaseaudiosrc.c(583): gst_base_audio_src_create (): /pipeline0/alsasrc0:
dropped 10143 samples
WARNING: from element /pipeline0/alsasrc0: Internal GStreamer error: clock problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstbaseaudiosrc.c(583): gst_base_audio_src_create (): /pipeline0/alsasrc0:
dropped 4851 samples
WARNING: from element /pipeline0/alsasrc0: Internal GStreamer error: clock problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstbaseaudiosrc.c(583): gst_base_audio_src_create (): /pipeline0/alsasrc0:
dropped 6615 samples
WARNING: from element /pipeline0/alsasrc0: Internal GStreamer error: clock problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstbaseaudiosrc.c(583): gst_base_audio_src_create (): /pipeline0/alsasrc0:
dropped 13230 samples
Caught interrupt -- handling interrupt.
Interrupt: Setting pipeline to PAUSED ...
Execution ended after 1775350000 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
FREEING pipeline ...
Comment 1 Diego Escalante Urrelo (not reading bugmail) 2007-04-24 15:06:03 UTC
Oh and the same happens with ossrc :

diego@milkyway:~/hack$ gst-launch oggmux name=mux ! filesink location=a.ogg v4lsrc ! textoverlay text="dieguito-cam" valign=bottom halign=right ! videorate ! video/x-raw-yuv,framerate=20/2,width=320,height=240 ! theoraenc ! queue ! mux. osssrc  ! audioconvert ! vorbisenc ! mux.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock
WARNING: from element /pipeline0/osssrc0: Internal GStreamer error: clock problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Additional debug info:
gstbaseaudiosrc.c(583): gst_base_audio_src_create (): /pipeline0/osssrc0:
dropped 8704 samples
WARNING: from element /pipeline0/osssrc0: Internal GStreamer error: clock problem.  Please file a bug at http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer.
Comment 2 Tim-Philipp Müller 2007-04-24 20:56:27 UTC
Hrm, very misleading default strings here.

I think what's happening here is that GstBaseAudioSrc posts warning messages on the bus because it has to drop samples. The reason is most likely that it can't record fast enough, ie. the pipeline uses too much CPU power.


You could try adding a queue after the audio source to see if that makes a difference, and maybe also lowering the framerate in the video stream (best to use  framerate=\(fraction\)20/2  btw).


Does this work without warnings being posted:

 $ gst-launch-0.10 alsasrc ! fakesink

?
Comment 3 Diego Escalante Urrelo (not reading bugmail) 2007-04-24 21:13:01 UTC
(In reply to comment #2)
> Hrm, very misleading default strings here.
> 
> I think what's happening here is that GstBaseAudioSrc posts warning messages on
> the bus because it has to drop samples. The reason is most likely that it can't
> record fast enough, ie. the pipeline uses too much CPU power.
> 
> 
> You could try adding a queue after the audio source to see if that makes a
> difference, and maybe also lowering the framerate in the video stream (best to
> use  framerate=\(fraction\)20/2  btw).
diego@milkyway:~$ gst-launch oggmux name=mux ! filesink location=a.ogg v4lsrc ! textoverlay text="dieguito-cam" valign=bottom halign=right ! videorate ! video/x-raw-yuv,framerate=20/2,width=320,height=240 ! tee ! xvimagesink tee0. ! theoraenc ! queue ! mux. alsasrc ! queue! audioconvert ! vorbisenc ! mux.
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstAudioSrcClock
WARNING: from element /pipeline0/xvimagesink0: Internal data flow problem.
Additional debug info:
gstbasesink.c(2091): gst_base_sink_chain_unlocked (): /pipeline0/xvimagesink0:
Received buffer without a new-segment. Assuming timestamps start from 0.
Caught interrupt -- handling interrupt.
Interrupt: Setting pipeline to PAUSED ...
Execution ended after 9439468000 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
FREEING pipeline ...

Works!

> 
> 
> Does this work without warnings being posted:
> 
>  $ gst-launch-0.10 alsasrc ! fakesink

Yes, works.

In a totally unrelated side note:
1. why does ximagesink doesn't work as a video sink in the pipeline I'm using? Only xvimagesink works.
2. why the video being "played" on the xvimagesink goes incredibly slow but the recorded video (the ogg produced) is fine?

Could it be associated to my previous problem?
Comment 4 Tim-Philipp Müller 2007-04-25 08:15:08 UTC
> In a totally unrelated side note:
> 1. why does ximagesink doesn't work as a video sink in the pipeline I'm using?
> Only xvimagesink works.

Because it only supports RGB video, not YUV video. It should work fine if you put an ffmpegcolorspace converter element in front of it (takes more cpu though).

Btw, you should probably also put a queue after the tee in the videosink part, ie.  tee ! queue ! xvimagesink



> 2. why the video being "played" on the xvimagesink goes incredibly slow but the
> recorded video (the ogg produced) is fine?
> 
> Could it be associated to my previous problem?

Yes, the videosink does QoS (Quality of Service) by default and will drop frames if it doesn't receive them in time / can't display them fast enough. You can disable that with qos=false on the videosink, but I'm not sure it will improve things in general. You might also want to use sync=false on the videosink, since you have live sources in your pipeline which already sync to the clock (so buffers will usually arrive to late at the sink and then be dropped, because your version of GStreamer doesn't take into account pipeline latency yet).


[Re-opening and closing again because if the resolution is 'fixed' it will appear in the release notes]

Comment 5 Tim-Philipp Müller 2007-04-25 08:55:33 UTC
On second thought, we better fix the message:

  2007-04-25  Tim-Philipp Müller  <tim at centricular dot net>

        * gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init),
        (gst_base_audio_src_create):
        * po/POTFILES.in:
          When posting a warning message because samples were dropped, post
          something more intelligible than he default error message for clock
          errors which is just confusing in this context (#432984).