[Bug 676331] New: osxvideosink: Improvements for OSX's video sink
bugzilla at gnome.org
Fri May 18 08:52:31 PDT 2012
GStreamer | gst-plugins-good | 0.10.x
Summary: osxvideosink: Improvements for OSX's video sink
OS/Version: Mac OS
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: ylatuya at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
The attached patches provides the following list of improvements for
* create and internal window when no one is provided through the
GstVideoOverlay API, which makes it work again with gst-launch.
* implement the GstNavigation interface.
* add 'force-aspect-ratio' property to respect the input PAR adding black
The creation of an internal Cocoa window, needed to make this sink usable with
gst-launch for instance, was removed some time ago because it was racy causing
random crashes. This happens because Cocoa's framework is not thread-safe and
all cocoa-related operations must always happen in the "main thread", which is
the first thread created by the application.
This issues is now fixed deferring all the operations to create, resize, draw
frame and destroy to the main thread using performSelectorOnMainThread.
For this to work, the main run loop must be running to process theses messages
and convert them into calls on the main thread. A typical GUI application will
always be running the main run loop in the main thread, as it happens with
every native Cocoa application calling [NSApp run], gtk application calling
gtk_main() (gdk event loop integrates with cocoa's one) or qt apps.
For applications that don't run the main run loop in the main thread, like
gst-launch, we assume that there is at least glib's main loop spinning in this
main thread. This allows us attaching a GSource that poll events regularly on
the main thread to make the internal Cocoa Window responsive and process the
You can find the branch with the proposed patches here:
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs