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 774779 - Move GstPhotography interface to -base
Move GstPhotography interface to -base
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on: 757352
Blocks: 789741
 
 
Reported: 2016-11-21 10:56 UTC by Tim-Philipp Müller
Modified: 2018-11-03 13:59 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Tim-Philipp Müller 2016-11-21 10:56:21 UTC
We should move this. It is a prerequisite to moving camerabin.

Some comments/questions after reviewing:

- GST_PHOTOGRAPHY_AUTOFOCUS_DONE: Name of custom GstMessage that will be
  posted to #GstBus when autofocusing is complete. Shouldn't we have a
  gst_photography_is_autofocus_done_message() for this, just like we have
  gst_is_video_overlay_prepare_window_handle_message() and
  gst_is_missing_plugin_message(), plus _parse_autofocus_done_message()?

- GST_PHOTOGRAPHY_SHAKE_RISK: same as for AUTOFOCUS done

- GST_PHOTOGRAPHY_PROP_*(): do we really want to require interface implementors
  to implement all of these properties? And then again implement setters as
  vfuncs? Seems a bit tedious, and also makes it more difficult for implementors
  to only support some of the functionality, doesn't it? (properties are good
  for things like automatic UI dialogs of course)

- struct GstPhotographySettings: used to set/get all options in one go. Assumes
  implementor supports all options; duplicates other mechanisms of getting and
  setting options (wrapper API for interface vfuncs and properties) with a third
  option, and the wrapper func doesn't even have fallback code for when the
  interface doesn't implement ::set_config or ::get_config.

- struct GstPhotographySettings: if we keep it it needs padding

- prepare_for_capture: why is the callback not done via a signal instead?
  (also, no destroy_notify for user_data, but callback can do that I suppose)
  How is failure communicated? Should we differentiate between still image and
  video capture?

- typedef void (*GstPhotographyCapturePrepared) (gpointer data, const GstCaps *configured_caps);
  why not GstPhotography-implementing object as first argument?

- set_autofocus: no gboolean return like all the others?
Comment 1 Nicolas Dufresne (ndufresne) 2016-11-21 14:20:36 UTC
Before moving this and freezing the API, make sure that you can support Android HAL v3. It's a rather important use case. The new generation of camera drivers on Linux will follow this.

https://source.android.com/devices/camera/camera3.html
Comment 2 GStreamer system administrator 2018-11-03 13:59:19 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/475.