FFe: Update to 3.5.92

Bug #1045539 reported by Robert Ancell on 2012-09-03
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
cheese (Ubuntu)
Wishlist
Unassigned

Bug Description

Justification for Feature Freeze Exception
=============
* The new version does switch to gstreamer1.0 from gstreamer0.10. The gstreamer1.0 transition is delayed for main until 13.04, but cheese is in universe. Robert & I have tested that the new version works.
* Although this is a soname bump, nothing in the Ubuntu repositories depends on the cheese libraries so except for new processing, there isn't a library transition.
* We already have Cheese 3.5.5 in Quantal. It would be better to have the stable release, Cheese 3.6, than a development snapshot.

Changelog
=========

version 3.5.92
  - Post-release version bump to 3.5.92
  - Added/Updated Translations
    - be, courtesy of Yuri Matsuk
    - cs, courtesy of Marek Černocký
    - da, courtesy of Kenneth Nielsen
    - en_GB, courtesy of Bruce Cowan
    - fa, courtesy of Arash Mousavi
    - fi, courtesy of Jiri Grönroos
    - fr, courtesy of Pierre Henry
    - gl, courtesy of Leandro Regueiro
    - hi, courtesy of rajesh
    - hu, courtesy of Gabor Kelemen
    - ko, courtesy of Seong-ho Cho
    - lv, courtesy of Rūdolfs Mazurs
    - or, courtesy of Manoj Kumar Giri
    - pt_BR, courtesy of Fábio Nogueira
    - ru, courtesy of Yuri Myasoedov
    - tr, courtesy of Muhammet Kara
  - Added/Updated Documentation
    - fr, courtesy of Bruno Brouard
    - gl, courtesy of Fran Dieguez
    - hu, courtesy of Gabor Kelemen
    - pt_BR, courtesy of Gabriel Speckhahn

version 3.5.91
  - Post-release version bump to 3.5.91
  - Fix another missing stdlib.h include
    For EXIT_FAILURE.
  - Bump libtool versioning after GStreamer 1.0 port
  - Move variable declarations before code in C source
    This allows compilation to succeed with
    ‘-Werror=declaration-after-statement’ passed to GCC.
  - Fix comment about preset locations
    Update for new location in GStreamer 1.0.

    https://bugzilla.gnome.org/show_bug.cgi?id=680422
  - Update pkg-config dependencies for GStreamer 1.0
    https://bugzilla.gnome.org/show_bug.cgi?id=680422
  - Fix dependencies for Cheese introspection
    Update for GStreamer 1.0.

    https://bugzilla.gnome.org/show_bug.cgi?id=680422
  - Add stdlib.h include for EXIT_SUCCESS
  - Depend on the new clutter-gst version
  - Update to the new pad template name
  - Rename ffmpegcolorspace to videoconvert
    The element was renamed in GStreamer 1.0.
  - Update raw caps to new format
    There is no video/x-raw-yuv or -rgb, they are both now video/x-raw with
    a format field.
  - Update to GStreamer 1.0 API
  - Rename camerabin2 to camerabin
    camerabin2 was renamed to camerabin in GStreamer 1.0.
  - Depend on gstreamer-1.0
  - Do not set filter-caps property on camerabin2
    The "filter-caps" property doesn't exist on camerabin2.
  - Re-add GstCaps variable in CheeseCamera
    caps variable was removed during rebase, but it is still used.
  - Fix CheeseCamera recording time reporting
    Camerabin2 maintains its pipeline clock continuously running, this makes
    the time reporting for video recording actually report the time since
    camerabin2 was initialized.

    This patch fixes it by querying the video filesink for the correct
    recording time.
  - Check for camerabin2 instead of camerabin
  - Encode WebM/VP8 instead of OGG/Theora
    Create WebM profile and use it with camereabin2. Also use presets for
    vp8enc.
  - Stop-capture is asynchronous in camerabin2
    Wait for video-done message to signal that capture is over.
  - Image-done message is posted by camerabin2
    Camerabin2 is the element to post the image-done message, not the camera
    source.
  - Remove unused variables warnings in CheeseCamera
  - Split setting of CheeseCamera caps from playing
    Add new cheese_camera_set_new_caps() method, split from
    cheese_camera_play().
  - Set ClutterTextureVideoSink sync=false
    Without this the sink will issue a warning:

  ** (cheese:21655): WARNING **: Internal data flow problem.:
    gstbasesink.c(3626): gst_base_sink_chain_unlocked ():
  /GstCameraBin2:camerabin2/GstViewfinderBin:vf-bin/ClutterGstVideoSink:cluttergstvideosink0:
    Received buffer without a new-segment. Assuming timestamps start from 0.

    I'm not sure what the implications of this setting are. It might be
    caused by the clock/time rewriting magic from camerabin2.
  - Do not switch mode when stopping video recording
  - Set the video resolution
    Use the viewfinder-caps property of camerabin2, rather than the
    set-video-resolution-fps signal of camerabin.
  - Fix pixbuf-only capture
    camerabin2 sends the preview-image bus message through the
    gstwrappercamerabinsrc.

    In camerabin2 if the location is NULL, it is interpreted as a "don't
    write in a file just post the buffer as a bus message".
  - Enable post-preview property when needed
    When taking a photo to pixbuf, sets post-preview to enable camerabin2 to
    send the preview message.
  - Remove camerabin workaround
    No longer needed with camerabin2.
  - Convert image-done to a bus message, from a signal
    Quote from camerabin2's PORTING guide:

    In camerabin, image-done is a signal, in camerabin2, it is a bus message

    Signed-off-by: Raluca Elena Podiuc <email address hidden>
  - Use definitions of MODE_IMAGE/VIDEO from camerabin
   #ifndef GST_USE_UNSTABLE_API
   #warning "camerabin enums are unstable API and may change in future."
   #warning "You can define GST_USE_UNSTABLE_API to avoid this warning."
   #endif
  - Handle photo/video moved to monitored directories
    Camerabin2 creates a temporary file, writes data to it and in the end it
    moves it to the destination path.

    Without G_FILE_MONITOR_SEND_MOVED to g_file_monitor_directory, moves
    would be sent as DELETE + CREATE.

    Unfortunately, we would also get CREATE events when the temporary file
    was created. We cannot listen for CREATE events as temporary files would
    be CREATEd and then CHANGEd and the thumb-view creation code would work
    with bad data.

    By using G_FILE_MONITOR_SEND_MOVED we get a single event when the file
    is moved. As the file monitor ignores files with unknown extensions (as
    is the case for the temporary files created by camerabin2) we could only
    just append the new file. But because the user might also move a
    picture/video manually from the Pictures/Webcam or Videos/Webcam
    directories, removing the old file from the thumb-view keeps it
    up-to-date with the state of the file system.

    If camerabin2 switches away from the create-temp+move approach, to the
    camerabin one (create the destination file directly), we're prepared
    to handle that code with G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT.
  - Rename filename and capture-start/stop
    Quote from camerabin2's PORTING guide:

[...] is now called 'location' instead of 'filename'

    The signals were renamed from capture-start/stop to start/stop-capture
    as this is the usual naming on actions.
  - Video filter on camera_source applies to all modes
    If the effect is applied on camera_source, the effect will be available
    in viewfinder and image/video capture modes.
  - Minimal functionality based on camerabin2
    These are the minimal changes needed to integrate camerabin2.

    Support for:
      - viewfinder (Cheese's main window)
      - effect previews

    Porting details:
      - obviously, the name has changed to camerabin2
      - Camerabin2 requires something special from it's "camera-source".

    We use the "wrappercamerabinsrc" module provided by camerabin2 which
    creates a "camera-source" suitable for camerabin2 based on a regular
    video source.
  - Depend on GTK+ 3.4.4 for GtkIconView changes
  - Request correct number of thumbview columns
    Rather then assuming 5000 will be enough, just set the number of columns
    to the number of thumbnails in the view. Fixes bug 634958 and bug 678446.

    Signed-off-by: Hans de Goede <email address hidden>
  - Add missing stdlib.h includes
    For the EXIT_* macro definitions.

    https://bugzilla.gnome.org/show_bug.cgi?id=682491
  - Remove unneeded XOverlay includes
    https://bugzilla.gnome.org/show_bug.cgi?id=682490
  - Ensure width is a multiple of 8, and height of 2
    We ask GStreamer to use an YUV format in the pipeline, by setting the
    camerabin's "filter-caps" to "video/x-raw-yuv", and GStreamer demands of
    YUV format frames that their width is a multiple of 8, and their height
    a multiple of 2.

    Previous to this patch my bttv tvcard lists the following resolutions in
    Cheese:
    924x576 (*)
    920x576
    640x480
    462x288 (*)
    460x288 (*)
    320x240
    231x144 (*)
    230x144 (*)
    160x120

    Where all the ones marked with an asterisk do not work.

    After this patch the list is:
    920x576
    640x480
    456x288
    320x240
    224x144
    160x120

    And all work.

    Signed-off-by: Hans de Goede <email address hidden>
  - Fix cheese_camera_device_update_format_table loop
    Some devices report a very small min_width / height down to reporting
    0x0 as minimum resolution, which causes an infinite loop in
    cheese_camera_device_update_format_table().

    This patch limits the minimum resultion to 160x120, both to fix the
    infinite loop issue, and to remove ridiculous resolutions such as 2x2,
    5x3, 11x7, 22x15 etc. which are seen in the resolution drop down on some
    devices.

    For more details on the infinite loop issue, see:
    https://bugzilla.redhat.com/show_bug.cgi?id=850505

    Signed-off-by: Hans de Goede <email address hidden>
  - Post-release version bump to 3.5.90
  - Added/Updated Translations
    - as, courtesy of Nilamdyuti Goswami
    - de, courtesy of Tobias Endrigkeit
    - gl, courtesy of Leandro Regueiro
    - gu, courtesy of "Last-Translator: \n"
    - he, courtesy of Yaron Shahrabani
    - id, courtesy of Dirgita
    - it, courtesy of Francesco Valente
    - kn, courtesy of Shankar Prasad
    - lt, courtesy of Aurimas Černius
    - mr, courtesy of Sandeep Shedmake
    - nb, courtesy of Kjartan Maraas
    - pl, courtesy of Piotr Drąg
    - pt, courtesy of Duarte Loreto
    - sr, courtesy of Мирослав Николић
    - sr@latin, courtesy of Miroslav Nikolić
    - ta, courtesy of Dr.T.Vasudevan
    - vi, courtesy of Nguyễn Thái Ngọc Duy
    - zh_HK, courtesy of Chao-Hsiung Liao
    - zh_TW, courtesy of Chao-Hsiung Liao
  - Added/Updated Documentation
    - de, courtesy of Mario Blättermann

Robert Ancell (robert-ancell) wrote :

When I run it I get:

** (cheese:11233): WARNING **: cheese-main.vala:251: Error: One or more needed GStreamer elements are missing: One or more needed GStreamer elements are missing: camerabin.

and no video.

It's a big change from 3.5.5 and needs more testing...

Changed in cheese (Ubuntu):
status: New → Triaged
importance: Undecided → Wishlist
description: updated
Jeremy Bicha (jbicha) wrote :

I also took a look at this. After adding a dependency on gstreamer1.0-plugins-bad, my webcam still didn't turn on so no picture and no video. I got these errors on the command line:

(cheese:29911): GStreamer-CRITICAL **: gst_element_request_pad: assertion `templ != NULL' failed
(cheese:29911): GStreamer-WARNING **: Name 'video-encodebin' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'videobin-filesink' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'image-encodebin' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'imagebin-filesink' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'viewfinderbin-queue' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'video-encodebin' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'videobin-filesink' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'image-encodebin' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'imagebin-filesink' is not unique in bin 'camerabin', not adding
(cheese:29911): GStreamer-WARNING **: Name 'viewfinderbin-queue' is not unique in bin 'camerabin', not adding

Jeremy Bicha (jbicha) wrote :

Hey, Robert, could you try this again? I think today's gstreamer1.0 (0.11.94-1) update fixed the problem we were having.

I'd like to request a FFe for this but I want to make sure it works on your computer at least first. I did push one change to the desktop branch a week ago so you may want to bzr pull and rebuild first.

Robert Ancell (robert-ancell) wrote :

Confirmed it now builds and runs for me.

summary: - Update to 3.5.91
+ Update to 3.5.92
description: updated
Jeremy Bicha (jbicha) on 2012-09-18
summary: - Update to 3.5.92
+ FFe: Update to 3.5.92
Jeremy Bicha (jbicha) on 2012-09-18
description: updated
Jeremy Bicha (jbicha) on 2012-09-21
Changed in cheese (Ubuntu):
status: Triaged → New
Iain Lane (laney) wrote :

Yeah, seems fine. I don't see that the reasons for sticking with 0.10 on the desktop apply to cheese, so approved.

Changed in cheese (Ubuntu):
status: New → Triaged
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package cheese - 3.5.92-0ubuntu1

---------------
cheese (3.5.92-0ubuntu1) quantal; urgency=low

  [ Robert Ancell ]
  * New upstream bugfix release (LP: #1045539)
  * debian/control:
    - libcheese3 -> libcheese7
    - libcheese-gtk21 -> libcheese-gtk-23
    - Bump build-depends on libgtk-3-dev, libgstreamer1.0-dev,
      libgstreamer-plugins-base1.0-dev, libclutter-gst-2.0-dev
    - Depend and build-depend on gstreamer1.0-plugins-bad. This is needed until
      gstreamer1.0-plugins-good is patched to included the camerabin plugins.
 -- Jeremy Bicha <email address hidden> Fri, 21 Sep 2012 10:21:01 -0400

Changed in cheese (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers