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 613346 - [dshowvideosink] Add support for updating video caps
[dshowvideosink] Add support for updating video caps
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
0.10.18
Other Windows
: Normal normal
: 0.10.20
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-03-19 17:29 UTC by Raimo Järvi
Modified: 2010-08-14 13:12 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Fix updating video caps (1.70 KB, patch)
2010-03-19 17:29 UTC, Raimo Järvi
none Details | Review
Fix updating video caps (2.15 KB, patch)
2010-03-22 10:41 UTC, Raimo Järvi
none Details | Review

Description Raimo Järvi 2010-03-19 17:29:38 UTC
Created attachment 156569 [details] [review]
Fix updating video caps

This patch fixes updating video caps when dshowvideosink is in playing state.
Comment 1 Thomas Löwe 2010-03-19 18:26:08 UTC
Thanks again for fixing this. It works most of time, but sometimes i get:

dshowvideosink dshowvideosink.cpp:1352:gst_dshowvideosink_set_caps:<VideoSink> ChangeMediaType failed: 80040210
basesrc gstbasesrc.c:2447:gst_base_src_loop:<Source> pausing after gst_pad_push() = not-negotiated
basesrc gstbasesrc.c:2507:gst_base_src_loop:<Source> error: Internal data flow error.
basesrc gstbasesrc.c:2507:gst_base_src_loop:<Source> error: streaming task paused, reason not-negotiated (-4)
Comment 2 Raimo Järvi 2010-03-19 20:14:55 UTC
Error 80040210 is VFW_E_BUFFERS_OUTSTANDING, i.e. "One or more buffers are still active". I never get this error, but maybe the old buffers need to be flushed before changing media type. Can you try adding this before the call to StartUsingOutputPin:

pin->Flush();
Comment 3 Thomas Löwe 2010-03-19 21:01:52 UTC
Unfortunately this doesn't solve the problem here. Xvimagesink and directdrawsink works fine, so i guess there's nothing wrong with my code.
Comment 4 Raimo Järvi 2010-03-22 10:41:36 UTC
Created attachment 156730 [details] [review]
Fix updating video caps

The only solution I could find to the VFW_E_BUFFERS_OUTSTANDING error is to try again if ChangeMediaType fails.

I'm not able to reproduce the error, so if this patch doesn't work, it would be nice to get some more information about how you create and set the fullscreen window.
Comment 5 Thomas Löwe 2010-03-22 16:16:52 UTC
After removing the videobox plugin from my pipeline i can't reproduce the error (without the latest patch) anymore.

Maybe that helps to locate the problem (if you like to further investigate).

Thank you very much for spending your time.
Comment 6 Andoni Morales 2010-07-25 15:58:42 UTC
This should by fixed upstream in:
http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=a51d318759b07eca60811e3d47d8e81b6d12cb8c