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 345207 - [xvimagesink] negotiation error with width of 1600
[xvimagesink] negotiation error with width of 1600
Status: RESOLVED INCOMPLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
0.10.7
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-06-17 23:37 UTC by Benzo
Modified: 2009-08-12 19:13 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Bug report (798.49 KB, text/plain)
2006-06-19 16:45 UTC, Benzo
Details

Description Benzo 2006-06-17 23:37:19 UTC
I got this message everytime I want to see and ogg file: "Internal GStreamer error: negotiation problem" and then nothing happens
Comment 1 Tim-Philipp Müller 2006-06-19 13:53:02 UTC
Is that an ogg audio file (ogg/vorbis) or an ogg video file?

What application are you using? (totem, rhythmbox, etc.)

What's your gst-plugins-base version? You can find out by typing

 $ gst-inspect-0.10 playbin | grep Version

on a command line.
Comment 2 Benzo 2006-06-19 14:46:30 UTC
It's an ogg video file, I'm using totem and the gst-plugins-base version is 0.10.7 (so I also changed the version in the bug)
Comment 3 Tim-Philipp Müller 2006-06-19 15:56:15 UTC
Could you run totem from the command line like this:

 $ export GST_DEBUG_NO_COLOR=1
 $ export GST_DEBUG=*:5
 $ totem yourfile.ogg  2> dbg.log
 ... wait for error, then quit totem ...
 $ gzip dbg.log

and then attach the dbg.log.gz file to this bug report please?


Comment 4 Benzo 2006-06-19 16:45:49 UTC
Created attachment 67642 [details]
Bug report
Comment 5 Benzo 2006-06-20 15:03:15 UTC
Was the file useful?
Comment 6 Tim-Philipp Müller 2006-06-20 17:02:46 UTC
> Was the file useful?

Yes, thank you.

Looks like the video is too wide for Xv/your driver or we don't handle this right:

  xvimagesink.c(1602):gst_xvimagesink_setcaps: intersection returned video/x-raw-yuv, format=(fourcc)I420, width=(int)1600, height=(int)226, framerate=(fraction)20/1, pixel-aspect-ratio=(fraction)1/1

  xvimagesink.c(514):gst_xvimagesink_xvimage_new: XShm image size is 244080
  xvimagesink.c(1864):gst_xvimagesink_show_frame: could not create image
  xvimagesink.c(1866):gst_xvimagesink_show_frame: error: Failed creating an XvImage in xvimagesink chain function.


There have been some changes recently - any chance you could try with a current version of gst-plugins-base (=0.10.8)?

FWIW, you can probably circumvent the problem by selecting "X Windows (No Xv)" (=ximagesink) for video output in the Multimedia System Selector (but CPU usage will be quite a bit higher then).


Something for our xvimagesink experts ...
Comment 7 Benzo 2006-06-20 17:43:39 UTC
I tried changing to "X Windows (No Xv)" and it worked and the CPU usage wasn't higher than normal, thank you very much

As soon as I try the 0.10.8 I'll let you know
Comment 8 Wim Taymans 2006-07-31 16:50:32 UTC
ping?
Comment 9 Tim-Philipp Müller 2006-07-31 17:09:31 UTC
> ping?

There is a debug log. Any other info you need?

I don't know that much about xvimagesink, so I was hoping someone else could have a look ...
Comment 10 Julien MOUTTE 2007-01-07 11:19:01 UTC
Well if the XV driver refuses to create an XVImage of that size what should happen ?

I guess somehow it should refuse to negotiate so that autovideosink uses ximagesink in that instance ?

Maybe we should have a better error message for that case..
Comment 11 Tim-Philipp Müller 2007-01-07 18:37:04 UTC
> Well if the XV driver refuses to create an XVImage of that size what should
> happen ?

As I understand it, it depends on the circumstances:

 - if we're trying to render a frame received in our chain/render function,
   all we can do is error out (and maybe investigate why we weren't able
   to advertise our caps correctly in the first place)

 - if we're creating an image because upstream has done a
   gst_pad_alloc_buffer(), then we should allocate the largest we can
   do and return that buffer with the changed caps. It is then up to
   upstream to either accept that or do something else. If upstream
   is a videoscale, it should just scale down to whatever the 
   biggest our video card/driver can do is.

Right? (Wim?)

 
> I guess somehow it should refuse to negotiate so that autovideosink uses
> ximagesink in that instance ?

If I'm not mistaken, this all takes place after autovideosink has already chosen a sink. I don't think we have a mechanism yet to provide more information to autovideosink (not should it really be necessary).


> Maybe we should have a better error message for that case..

In the absence of driver bugs we should always be able to advertise our caps correctly in the first place and never run into this problem, shouldn't we?
Comment 12 Edward Hervey 2009-03-11 08:53:25 UTC
Doesn't xvimagesink handle this correctly now through caps ? With a videoscale in front of the sink, it should scale down to whatever the videosink can support.

Benzo, can you try this again (if you still have the same machine).
Comment 13 Javier Jardón (IRC: jjardon) 2009-08-12 19:13:01 UTC
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for.
Thanks!