[Bug 613487] [ogg] films recorded with cheese won't play if they have audio

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Apr 14 00:54:24 PDT 2011


https://bugzilla.gnome.org/show_bug.cgi?id=613487
  GStreamer | gst-plugins-base | git

--- Comment #16 from Gary Ching-Pang Lin <glin at novell.com> 2011-04-14 07:54:20 UTC ---
The video recording bits lie within cheese-camera.c:
http://git.gnome.org/browse/cheese/tree/libcheese/cheese-camera.c?h=gnome-2-32

Cheese creates 4 bins: video_display_bin, camera_source_bin, photo_save_bin,
and video_save_bin. video_display_bin and camera_source_bin are for the webcam
input/output and basically won't be changed in the most of time.

photo_save_bin and video_save_bin are for picture taking and video recording.
Cheese links photo_save_bin by default. When the user presses the video
recording button, cheese_camera_start_video_recording() will be invoked, and it
changes the filename in video_file_sink and calls cheese_camera_change_sink()
to switch photo_save_bin to video_save_bin. When the user presses "Stop
Recording", cheese_camera_change_sink() will be called again and switches
video_save_bin back to photo_save_bin.

static void
cheese_camera_change_sink (CheeseCamera *camera, GstElement *src,
                           GstElement *new_sink, GstElement *old_sink)
{
  CheeseCameraPrivate *priv       = CHEESE_CAMERA_GET_PRIVATE (camera);
  gboolean             is_playing = priv->pipeline_is_playing;

  cheese_camera_stop (camera);

  gst_element_unlink (src, old_sink);
  gst_object_ref (old_sink);
  gst_bin_remove (GST_BIN (priv->pipeline), old_sink);

  gst_bin_add (GST_BIN (priv->pipeline), new_sink);
  gst_element_link (src, new_sink);

  if (is_playing)
    cheese_camera_play (camera);
}

cheese_camera_change_sink() just changes the state of the pipeline and switch
the sinks. Wonder if the change of video_file_sink affects video_save_bin.

-- 
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 mailing list