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 162626 - [videoscale] cannot handle lists of fractions
[videoscale] cannot handle lists of fractions
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins
git master
Other Linux
: Normal normal
: 0.8.8
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2004-12-31 16:14 UTC by Paul Jack
Modified: 2005-01-29 13:24 UTC
See Also:
GNOME target: ---
GNOME version: 2.7/2.8



Description Paul Jack 2004-12-31 16:14:25 UTC
gst-launch crashes with a floating point exception if a fractional property is
specified on the command line.  This makes it impossible to set
pixel-aspect-ratios which can hinder testing.  Sample output below.

$ gst-launch-0.8 filesrc location=capture001.dv ! dvdec ! videoscale !
'video/x-raw-rgb,width=64,height=48,pixel-aspect-ratio=(fraction)16/15' ! fakesink
RUNNING pipeline ...

(process:9867): GStreamer-CRITICAL **: file gstvalue.c: line 2437
(gst_value_get_fraction_numerator): assertion `GST_VALUE_HOLDS_FRACTION (value)'
failed

(process:9867): GStreamer-CRITICAL **: file gstvalue.c: line 2453
(gst_value_get_fraction_denominator): assertion `GST_VALUE_HOLDS_FRACTION
(value)' failed
Floating point exception
Comment 1 David Schleef 2004-12-31 21:51:14 UTC
stack trace?
Comment 2 Stephane Loeuillet 2005-01-02 12:55:00 UTC
i reproduced it with a dv file i have and latest CVS :

0xb78b73fa in gst_videoscale_link (pad=0x8271ef8, caps=0x8277e80) at
gstvideoscale.c:271
271     gstvideoscale.c: Aucun fichier ou répertoire de ce type.
        in gstvideoscale.c
(gdb) bt
  • #0 gst_videoscale_link
    at gstvideoscale.c line 271
  • #1 gst_pad_link_call_link_functions
    at gstpad.c line 1282
  • #2 gst_pad_link_negotiate
    at gstpad.c line 1334
  • #3 gst_pad_link_try
    at gstpad.c line 1364
  • #4 gst_pad_renegotiate
    at gstpad.c line 1452
  • #5 gst_element_negotiate_pads
    at gstelement.c line 2853
  • #6 gst_element_change_state
    at gstelement.c line 2956
  • #7 gst_element_set_state_func
    at gstelement.c line 2796
  • #8 gst_element_set_state
    at gstelement.c line 2739
  • #9 set_kid_state_func
    at gstbin.c line 799
  • #10 gst_bin_foreach
    at gstbin.c line 763
  • #11 gst_bin_change_state
    at gstbin.c line 854
  • #12 gst_pipeline_change_state
    at gstpipeline.c line 174
  • #13 gst_element_set_state_func
    at gstelement.c line 2796
  • #14 gst_bin_set_state
    at gstbin.c line 893
  • #15 gst_element_set_state
    at gstelement.c line 2739
  • #16 main
    at gst-launch.c line 531

if you want more info, let me know
Comment 3 Ronald Bultje 2005-01-02 13:04:32 UTC
I suppose serialization (string-to-fraction) conversion is simply missing? Feel
free to add.
Comment 4 Tim-Philipp Müller 2005-01-25 12:30:47 UTC
The problem seems to be rather that the otherpar GstValue in
gstvideoscale.c:268-269 holds a GstValueList of PAR fractions instead of a
single fraction value.


INFO  (0x8050938 - 307404:19:00.742419000)        GST_CAPS(  697)
gstpad.c(1533):gst_pad_try_set_caps:<videoscale0:sink> caps video/x-raw-rgb,
depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)65280,
green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)64,
height=(int)48, framerate=(double)1, pixel-aspect-ratio=(fraction)16/15

DEBUG (0x8050938 - 307404:19:00.743314000)        GST_PADS(  697)
gstpad.c(1160):gst_pad_link_intersect: ... srccaps video/x-raw-yuv,
format=(fourcc)YUY2, width=(int)720, height=(int){ 480, 576 },
pixel-aspect-ratio=(fraction){ 16/15, 64/45, 80/89, 320/267 },
framerate=(double)[ 1, 60 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24,
endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680,
blue_mask=(int)-16777216, width=(int)720, height=(int){ 480, 576 },
pixel-aspect-ratio=(fraction){ 16/15, 64/45, 80/89, 320/267 },
framerate=(double)[ 1, 60 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24,
endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280,
blue_mask=(int)255, width=(int)720, height=(int){ 480, 576 },
pixel-aspect-ratio=(fraction){ 16/15, 64/45, 80/89, 320/267 },
framerate=(double)[ 1, 60 ]

DEBUG (0x8050938 - 307404:19:00.811059000)        GST_PADS(  697)
gstpad.c(1161):gst_pad_link_intersect: ... sinkcaps video/x-raw-rgb,
depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)65280,
green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)64,
height=(int)48, framerate=(double)1, pixel-aspect-ratio=(fraction)16/15

GStreamer-CRITICAL **: file gstvalue.c: line 2566 
(gst_value_get_fraction_numerator): assertion `GST_VALUE_HOLDS_FRACTION (value)'
failed

Not sure what the right approach to fixing this is.

Bug should also be reassigned to gst-plugins, shouldn't it?

Cheers
 -Tim
Comment 5 Ronald Bultje 2005-01-25 13:34:21 UTC
Yes, nicely pointed out.
Comment 6 Ronald Bultje 2005-01-29 13:24:15 UTC
Fixed by adding list support to videoscale.