cheese 3.9.3

About Cheese

Cheese uses your webcam to take photos and videos, applies fancy
special effects and lets you share the fun with others. It was written
as part of Google's 2007 Summer of Code lead by daniel g. siegel and
mentored by Raphaël Slinckx. Under the hood, Cheese uses GStreamer to
apply fancy effects to photos and videos. With Cheese it is easy to
take photos of you, your friends, pets or whatever you want and share
them with others. After the success of the Summer of Code, the
development continued and we are still looking for people with nice
ideas and patches ;)


  - Add documentation for CheeseCamera signals
  - Remove unused Cheese.MainWindow.get_data_file_dir
  - Make the flash background white
  - Fix assertion failures when taking a photo
    Before this patch, Cheese would log the following each time the user
    takes a photo:

    (cheese:21719): GLib-GIO-CRITICAL **: g_file_info_get_size: assertion
    `G_IS_FILE_INFO (info)' failed

    (cheese:21719): GLib-GObject-CRITICAL **: g_object_unref: assertion
    `G_IS_OBJECT (object)' failed
  - Fix updating sensitivity of device selection combo
    If Cheese was started with 1 device, and then a second was added, the
    device selection stayed insensitive, making it impossible to select the
    second device.

    This fixes the problem, and also makes the combo insensitive again when
    going from >= 2 devices to <= 1 device.
  - Downscale image for effects-preview pipeline
    Having the whole effects-preview bin deal with ie 1280x800 images is not
    very useful, especially since even when fullscreen on a full-HD monitor,
    the preview images are smaller then 640xXXX. This useless high-res
    processing for 9 preview images in parallel brings my 2nd gen
    core i5 @ 3.1 GHz to its knees, resulting in a non fluid preview panel.

    Also after clicking through all effect preview pages, so that all effect
    preview textures are connected, cheese will use 1 GB of *resident* RAM
    with the example 1280x800 capture resolution.

    This patch improves this by downscaling the images from the video-source
    to 640xXXX where XXX is determined by the original resolution

    After this patch the effects preview framerate is much smoother, and the
    latency is noticably less. As a bonus the maximal resident size of
    Cheese in this example is reduced to 350 MB.
  - Do not block the main valve while recording
    Otherwise frames intended for the recording are dropped.
  - Only add videoconvert elements where necessary
    The "no effect" effect is our default value, and thus worth optimizing a
    bit. Clearly in the "no effect" effect case adding a videoconvert
    element both before and after the element is not needed.

    Note we also don't add the videoconvert elements when creating the
    initial pipeline, so this also keeps the way the pipeline looks
    initially and when "no-effect" is selected consistent.

    When starting Cheese with "no-effect" selected, this shaves off another
    130 ms of the initial pipeline creation time.
  - Drop unused preview_caps variable
  - Simplify returned GstCaps
    In cheese_camera_device_get_caps_for_format, simplify the returned caps.
    This results in much simpler caps, which as main advantage that they are
    way easier to read when trawling to debug logs.
  - Fix cheese_camera_device_get_best_format memleak
    cheese_camera_device_get_best_format() calls
    cheese_camera_device_get_format_list(), which returns a sorted copy of
    the format lists, then takes the first element of that list, and
    returns a copy of that element. While never freeing the list copy.

    This patch fixes this leak by simply making the priv->formats list
    sorted so that cheese_camera_device_get_best_format can use it directly
    without the need to make (and then later free) a copy.
  - Fix cheese_camera_device_filter_caps warning
  - Remove unused GstCameraBinFlags enum
  - Fix video-source memleak when switching cameras
  - Improve error handling in CheeseCamera
    Simplify error cleanup in cheese_camera_set_camera_source(). Do not call
    g_error_free() on a possible NULL error in
  - Fix no-video-after-switching-resolution problem
    There is a bug in wrappercamerabinsrc which causes it to lose its
    video-source setting after the pipeline has started, so on a
    stop/re-start, as when changing resolution, its video-source has become
    NULL, and there is no longer video.

    This patch works around this by moving the setting of the video-source
    property to cheese_camera_play(), so that it gets (re)set each time
    before starting the pipeline.

    I've also written a patch fixing the underlying cause, but since the
    workaround is simple, and has no adverse effects when the underlying
    issue is fixed, it seems a good idea to have this workaround in Cheese,
    see here for the gst-plugins-bad fix:
  - Remove extranous csp_post_balance element
    camerabin2 already has a videoconvert element both before and after its
    video-source-filter element, so ending the video-source-filter bin with
    a videoconvert element puts 2 videoconvert elements behind each other,
    which is not really useful.
  - Add a capsfilter to the video-source bin
    This serves 2 purposes. Firstly, it forces GStreamer to actually run the
    video source at the configured resolution, rather then say run it at
    1600x1200 @ 5 fps and downscale that to 800x600 (still at 5 fps), as
    GStreamer opts to do with my Logitech Webcam Pro 9000, when left to its
    own auto negotiate code. Secondly, by greatly reducing the amount of
    advertised caps (this cam supports lots of different resolutions at many
    different framerates per resolution), it avoids a caps intersect
    "explosion", reducing the pipeline caps negotiation.
  - Remove nautilus-sendto sharing support
    As nautilus-sendto can now only share by email, the sharing can be
    handled by a photo management application, or directy by the email
  - Avoid assert when taking avatar photos too quickly
    If the take photo button was pressed while a photo was being taken, an
    assert would be triggered by the failed call to
    cheese_camera_take_photo_pixbuf(). Avoid this by setting the take photo
    button insensitive while a photo is being taken, and setting it
    sensitive after the photo has been taken. Fixes bug 699596.
  - Post-release bump to 3.9.3
  - Added/Updated Translations
    - hu, courtesy of Balázs Úr
    - ja, courtesy of Noriko Mizumoto
    - th, courtesy of Akom Chotiphantawanon
    - zh_CN, courtesy of tuhaihe
  - Added/Updated Documentation
    - de, courtesy of Christian Kirbach

=========  (11.5K)

======== (3.56M)
  sha256sum: 94e574276a9552edc941cd0fe341ca64bbe1e55701402c4a6e922704988d2e64

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]