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 421834 - videorate breaks on dimension changes
videorate breaks on dimension changes
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal major
: 0.10.13
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-03-23 10:56 UTC by Zaheer Abbas Merali
Modified: 2007-04-12 15:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
diff to add unit test (4.15 KB, text/plain)
2007-03-23 14:43 UTC, Zaheer Abbas Merali
Details

Description Zaheer Abbas Merali 2007-03-23 10:56:22 UTC
Use case:

3 buffers come in 1 after each other from mpeg2dec, 3rd one with different dimension from first 2.

720x576 mpeg2dec's sink pad is 720x576
720x576 mpeg2dec's sink pad is 720x576
510x234 mpeg2dec's sink pad is now 510x234

Videorate stores buffers, so after receiving 2nd buffer, it sends 1st buffer.  After receiving 3rd buffer, it sends 2nd buffer.  At time of sending 2nd buffer, setcaps has already set src pad caps to 510x234 because 3rd buffer has been received on sink pad.  The flush_prev function sets src pad's caps on the buffer going out which means a buffer of 720x576 is sent with caps of 510x234.

The 3 buffers ideally should go out with the same caps as they had when they came in except the framerate (which can be different depending on the downstream element).  I am going to write a unit test that will check that this behaviour holds.
Comment 1 Zaheer Abbas Merali 2007-03-23 14:43:54 UTC
Created attachment 85175 [details]
diff to add unit test

This patch pushes 4 buffers to videorate and makes sure the 3 buffers output have the right caps.
Comment 2 Wim Taymans 2007-04-12 15:01:14 UTC
Commited the unit test after slightly changing it to handle the behaviour as implemented by Mike.

        * tests/check/elements/videorate.c: (GST_START_TEST),
        (videorate_suite):
        Added check for videorate changing caps handling. Closes #421834.