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 722742 - video-chroma: implement upsampling methods for vertical cosited chroma
video-chroma: implement upsampling methods for vertical cosited chroma
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks: 722645
 
 
Reported: 2014-01-21 23:50 UTC by Mathieu Duponchelle
Modified: 2018-11-03 11:28 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Mathieu Duponchelle 2014-01-21 23:50:51 UTC
gst-launch-1.0 uridecodebin uri=file:///home/meh/Videos/prise031.avi ! videoconvert ! video/x-raw, chroma-site=jpeg ! autovideosink

highlights the problem.

It so happens that upsample->v_resample is NULL, which leads to the SIGSEGV.

My instinct would be to add a check there for upsample->v_resample, as I suppose if it is NULL nothing should be done anyway.

Worthy of note is that with gstreamer 1.2 as shipped in fedora, the SIGSEGV is triggered by chroma-site=dv and jpeg is fine whereas with master dv is fine and jpeg SIGSEGVs.

Have a nice day !
Comment 1 Mathieu Duponchelle 2014-01-21 23:55:21 UTC
Ah damn patch attachment failed, hosted here :

http://antopics.fr/prise031.avi
Comment 2 Sebastian Dröge (slomo) 2014-01-22 09:20:24 UTC
Backtrace:

  • #0 ??
  • #1 videoconvert_convert_generic
    at videoconvert.c line 562
  • #2 gst_video_convert_transform_frame
    at gstvideoconvert.c line 524
  • #3 gst_video_filter_transform
    at gstvideofilter.c line 270
  • #4 gst_base_transform_handle_buffer
    at gstbasetransform.c line 2094
  • #5 gst_base_transform_chain
    at gstbasetransform.c line 2201
  • #6 gst_pad_chain_data_unchecked
    at gstpad.c line 3773
  • #7 gst_pad_push_data
    at gstpad.c line 4006
  • #8 gst_pad_push
    at gstpad.c line 4109
  • #9 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #10 gst_pad_chain_data_unchecked
    at gstpad.c line 3773
  • #11 gst_pad_push_data
    at gstpad.c line 4006
  • #12 gst_pad_push
    at gstpad.c line 4109
  • #13 gst_proxy_pad_chain_default
    at gstghostpad.c line 128
  • #14 gst_pad_chain_data_unchecked
    at gstpad.c line 3773

Comment 3 Sebastian Dröge (slomo) 2014-01-22 09:27:07 UTC
This crashes with a SIGFPE instead:

> gst-launch-1.0 videotestsrc ! "video/x-raw,format=I420,chroma-site=dv" ! videoconvert ! "video/x-raw,chroma-site=jpeg" ! fakesink

Wasn't able to reproduce the segfault without decodebin.
Comment 4 Sebastian Dröge (slomo) 2014-01-22 09:27:34 UTC
Ah, the SIGFPE is in videotestsrc :)

Program received signal SIGFPE, Arithmetic exception.

Thread 140737308931840 (LWP 1693)

  • #0 convert_hline_generic
    at videotestsrc.c line 1165
  • #1 videotestsrc_convert_tmpline
    at videotestsrc.c line 275
  • #2 gst_video_test_src_smpte
    at videotestsrc.c line 352
  • #3 gst_video_test_src_fill
    at gstvideotestsrc.c line 916
  • #4 gst_base_src_default_create
    at gstbasesrc.c line 1441

Comment 5 Sebastian Dröge (slomo) 2014-01-22 09:48:16 UTC
Problem for videoconvert is that none of the vertical upsamples with cositing is implemented. And also some others not. See all the NULLs in video-chroma.c in that table.

I guess that should be fixed ;)


For the videoconvert problem I did not look further.
Comment 6 Mathieu Duponchelle 2014-01-22 22:45:23 UTC
Well I think the first obvious fix is to simply do nothing in case the vertical upsample is NULL right ?
Comment 7 Sebastian Dröge (slomo) 2014-01-23 08:29:12 UTC
No, there should be an implementation for that, that does the upsampling. Should be almost the same as the existing functions for the same upsampling with non-cosite chroma... just that the chroma is now moved a bit relative to the luma.
Comment 8 Wim Taymans 2014-01-23 09:48:40 UTC
For now, this will do. Someone needs to implement the resamplers..

commit 8ac3dbc4f312daefbac48373c964c2cb6e99ff6e
Author: Wim Taymans <wtaymans@redhat.com>
Date:   Thu Jan 23 10:45:00 2014 +0100

    video-chroma: don't crash on NULL resamplers
    
    Make dummy resamplers for all cases and only execute the horizontal
    resampler instead of crashing.
    
    See https://bugzilla.gnome.org/show_bug.cgi?id=722742
Comment 9 Mathieu Duponchelle 2014-01-23 17:19:50 UTC
Yep, crashing should not be an option IMO, thanks guys :)
Comment 10 GStreamer system administrator 2018-11-03 11:28:06 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/104.