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 555321 - avidemux does not reset its state properly on PAUSED->READY
avidemux does not reset its state properly on PAUSED->READY
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other All
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-10-06 23:43 UTC by Pavel Zeldin
Modified: 2009-12-22 10:36 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
testcase (5.02 KB, text/plain)
2008-10-06 23:44 UTC, Pavel Zeldin
Details

Description Pavel Zeldin 2008-10-06 23:43:06 UTC
Please describe the problem:
gstavidemux.c:gst_avi_demux_reset () does not set several member of GstAviDemux structure.
in particular it needs
 avi->header_state = GST_AVI_DEMUX_HEADER_TAG_LIST;

Also gst_avi_demux_parse_stream () removes existing pads an replaces
them with new ones for reasons unclear. New pads end up being unlinked.

Steps to reproduce:
1. Build test program:
gcc -o pipelineplayer `pkg-config --cflags-only-I gstreamer-0.10` pipelineplayer.c `pkg-config --libs gstreamer-0.10`
2. Run the program:
./pipelineplayer 'videotestsrc ! ffmpegcolorspace ! timeoverlay ! ffenc_mpeg4 ! avimux ! avidemux ! ffdec_mpeg4 ! ffmpegcolorspace ! ximagesink'
It outputs the pid of its program, and an X11 client window appears.
3. Send HUP signal
kill -HUP <pid>

Actual results:
The X11 client window disappears

Expected results:
The window should stay and timestamps should restart

Does this happen every time?
yes

Other information:
works for the following pipeline:
/pipelineplayer 'videotestsrc ! ffmpegcolorspace ! timeoverlay ! ffenc_mpeg4 ! ffdec_mpeg4 ! ffmpegcolorspace ! ximagesink'
Comment 1 Pavel Zeldin 2008-10-06 23:44:51 UTC
Created attachment 120072 [details]
testcase

to build:
gcc -o pipelineplayer `pkg-config --cflags-only-I gstreamer-0.10` pipelineplayer.c `pkg-config --libs gstreamer-0.10`
Comment 2 Wim Taymans 2008-10-08 14:28:13 UTC
Dynamically added pads should be removed from the element in PAUSED->READY, which is what avidemux does. The gst-launch logic however will not execute the dynamic pad linking anymore, you'll need to manually handle this dynamic pipeline or reparse the -launch syntax after going to READY.
Comment 3 Wim Taymans 2008-10-08 14:47:46 UTC
Seems to work fine in seek.c playbin2. patch below is only for push based operation.

        * gst/avi/gstavidemux.c: (gst_avi_demux_reset),
        (gst_avi_demux_parse_subindex), (gst_avi_demux_parse_index):
        Reset header state. Fixes #555321.