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 646364 - backend: Use clutter-gst to draw video
backend: Use clutter-gst to draw video
Status: RESOLVED FIXED
Product: totem
Classification: Core
Component: general
unspecified
Other All
: Normal normal
: ---
Assigned To: General Totem maintainer(s)
General Totem maintainer(s)
: 590558 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2011-03-31 17:44 UTC by Bastien Nocera
Modified: 2011-04-04 16:28 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
backend: Use clutter-gst to draw video (18.74 KB, patch)
2011-03-31 17:44 UTC, Bastien Nocera
none Details | Review
backend: Use clutter-gst to draw video (34.39 KB, patch)
2011-04-01 02:42 UTC, Bastien Nocera
none Details | Review
backend: Use clutter-gst to draw video (62.36 KB, patch)
2011-04-02 20:20 UTC, Bastien Nocera
none Details | Review
backend: Use clutter-gst to draw video (68.80 KB, patch)
2011-04-03 00:44 UTC, Bastien Nocera
committed Details | Review

Description Bastien Nocera 2011-03-31 17:44:30 UTC
Very rough first pass. Problems are:
- Warnings on startup:
(lt-totem:15194): Clutter-CRITICAL **: clutter_paint_volume_set_width: assertion `width >= 0.0f' failed
(lt-totem:15194): Clutter-CRITICAL **: clutter_paint_volume_set_height: assertion `height >= 0.0f' failed
- Don't have any logo drawing (use a separate actor and change the stacking order?)
- Zooming/cropping used a hacks on GdkWindows, do we have a better way to do this?
- We also lost contrast and co., we should be able to get this back by adding a videobalance element (or should playbin2 do that for us?)
- No navigation interface (DVD menus)
- Window resizing generates warnings:
Gtk-WARNING **: Toplevel size doesn't seem to directly depend on the size of the geometry widget from gtk_window_set_geometry_hints(). The geometry widget might not be in the window, or it might not be packed into the window appropriately

Probably other things I'm forgetting.
Comment 1 Bastien Nocera 2011-03-31 17:44:34 UTC
Created attachment 184807 [details] [review]
backend: Use clutter-gst to draw video

This allows use to draw arbitrary actors on top of the video
widget, while having them resize and move with the video widget.
Comment 2 Bastien Nocera 2011-04-01 02:42:35 UTC
Created attachment 184850 [details] [review]
backend: Use clutter-gst to draw video

This allows use to draw arbitrary actors on top of the video
widget, while having them resize and move with the video widget.
Comment 3 Bastien Nocera 2011-04-01 03:01:45 UTC
- Warnings on startup:
(lt-totem:15194): Clutter-CRITICAL **: clutter_paint_volume_set_width:
assertion `width >= 0.0f' failed
(lt-totem:15194): Clutter-CRITICAL **: clutter_paint_volume_set_height:
assertion `height >= 0.0f' failed

Would be fixed with http://fpaste.org/zTsB/ or http://fpaste.org/SnAh/ (from ebassi)

We'd need to remove the calls to clutter_actor_set_size() on the video texture.

- Zooming/cropping used a hacks on GdkWindows, do we have a better way to do
this?

We'd use the simpler "expand" property of the MxAspectFrame.
See also http://bugzilla.clutter-project.org/show_bug.cgi?id=2307

- We also lost contrast and co., we should be able to get this back by adding a
videobalance element (or should playbin2 do that for us?)

Done.

- No navigation interface (DVD menus)

Implementation needed in clutter-gst: http://bugzilla.clutter-project.org/show_bug.cgi?id=2624

- Found that the pixel-aspect-ratio of the _display_ is currently ignored (I think).

The MxAspectFrame requires http://bugzilla.clutter-project.org/show_bug.cgi?id=2617
Comment 4 Bastien Nocera 2011-04-02 17:22:25 UTC
(In reply to comment #3)
> - Warnings on startup:
> (lt-totem:15194): Clutter-CRITICAL **: clutter_paint_volume_set_width:
> assertion `width >= 0.0f' failed
> (lt-totem:15194): Clutter-CRITICAL **: clutter_paint_volume_set_height:
> assertion `height >= 0.0f' failed
> 
> Would be fixed with http://fpaste.org/zTsB/ or http://fpaste.org/SnAh/ (from
> ebassi)

Fixed in clutter master and 1.6 branch.

> We'd need to remove the calls to clutter_actor_set_size() on the video texture.

We actually need the one in bvw_handle_application_message(), so get_media_size() can apply the display PAR (which clutter has no idea about).

> - Zooming/cropping used a hacks on GdkWindows, do we have a better way to do
> this?
> 
> We'd use the simpler "expand" property of the MxAspectFrame.
> See also http://bugzilla.clutter-project.org/show_bug.cgi?id=2307

Done.
Comment 5 Bastien Nocera 2011-04-02 20:20:37 UTC
Created attachment 184972 [details] [review]
backend: Use clutter-gst to draw video

This allows use to draw arbitrary actors on top of the video
widget, while having them resize and move with the video widget.

Major changes include:
* Implement simpler zoom (crop or none)
* Remove width/height parameters to bvw_new()
* Colour balance through videobalance
* Simplified interface checking, and no-locking
Comment 6 Bastien Nocera 2011-04-02 20:21:38 UTC
Handles the display PAR within the widget itself now.
Comment 7 Bastien Nocera 2011-04-03 00:44:41 UTC
Created attachment 185003 [details] [review]
backend: Use clutter-gst to draw video

This allows use to draw arbitrary actors on top of the video
widget, while having them resize and move with the video widget.

Major changes include:
* Implement simpler zoom (crop or none)
* Remove width/height parameters to bvw_new()
* Colour balance through videobalance
* Simplified interface checking, and no-locking
* Fix disabling effects when setting a cover as the logo,
  and showing a logo when disabling the effects
Comment 8 Bastien Nocera 2011-04-03 00:49:00 UTC
This is ready to commit as soon as those bugs are fixed:
http://bugzilla.clutter-project.org/show_bug.cgi?id=2617
http://bugzilla.clutter-project.org/show_bug.cgi?id=2624

Might be able to remove the own implementations for the NAV once tested.
Comment 9 Bastien Nocera 2011-04-03 23:48:29 UTC
*** Bug 590558 has been marked as a duplicate of this bug. ***
Comment 10 Bastien Nocera 2011-04-04 16:28:06 UTC
Done in 3.2.

We'll remove the MX dependency as soon as there is an aspect frame for clutter-gst itself.

Attachment 185003 [details] pushed as cb53bbd - backend: Use clutter-gst to draw video