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 357959 - buffer_alloc is not proxied through tee
buffer_alloc is not proxied through tee
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other All
: Normal normal
: 0.10.14
Assigned To: Wim Taymans
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2006-09-27 13:02 UTC by Fredrik Persson
Modified: 2007-07-03 16:28 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14


Attachments
Python script showing that scaling works without tee (951 bytes, text/x-python)
2006-09-27 13:03 UTC, Fredrik Persson
Details
Python script showing that scaling does not work with tee (1.02 KB, text/x-python)
2006-09-27 13:04 UTC, Fredrik Persson
Details

Description Fredrik Persson 2006-09-27 13:02:24 UTC
Please describe the problem:
buffer_alloc is not proxied through tee, this prohibits the use of, for example, videoscale.

Steps to reproduce:
1. Download the two python scripts attached to this bug report
2. Copy a videofile to /tmp/myvideo.avi
3. Run "python videoscale_works_without_tee.py"
4. Re-size the video window
5. The videostream is properly resized
6. Run "python videoscale_does_not_work_with_tee.py"
7. Re-size the video window
8. The videostream is NOT properly resized


Actual results:
The videostream is not properly resized when a tee element is added to an otherwise fine-working pipeline.

Expected results:
The videostream should be properly resized regardless of the tee element's presence.

Does this happen every time?
Yes

Other information:
According to wtay in #gstreamer, this problem is caused by the fact that buffer_alloc is not proxied through tee.
Comment 1 Fredrik Persson 2006-09-27 13:03:42 UTC
Created attachment 73490 [details]
Python script showing that scaling works without tee
Comment 2 Fredrik Persson 2006-09-27 13:04:56 UTC
Created attachment 73491 [details]
Python script showing that scaling does not work with tee
Comment 3 Wim Taymans 2006-10-25 14:58:33 UTC
fixed in CVS, the first requested pad is proxied currently. Keeping this thing open for now.
Comment 4 Wim Taymans 2007-07-03 16:28:03 UTC
        * plugins/elements/gsttee.c: (gst_tee_base_init),
        (gst_tee_request_new_pad), (gst_tee_release_pad),
        (gst_tee_find_buffer_alloc), (gst_tee_buffer_alloc),
        (gst_tee_do_push), (clear_pads), (gst_tee_handle_buffer),
        (gst_tee_chain):
        Be a lot smarter when deciding what srcpad to use for proxying
        the buffer_alloc. Also handle pad added/removed when doing so.
        Fixes #357959.
        Keep track of what pads we already pushed on in case we have pads
        added/removed while pushing. Fixes #374639

        * tests/check/Makefile.am:
        * tests/check/elements/tee.c: (handoff), (GST_START_TEST),
        (tee_suite):
        Added unit test for pad resync.