[longomatch/livecapturemerged: 74/84] Merge branch 'livecapture' into mergelive
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch/livecapturemerged: 74/84] Merge branch 'livecapture' into mergelive
- Date: Tue, 11 May 2010 00:54:12 +0000 (UTC)
commit 66dfee03b760bdf1876128e1c566cebe86c1aa28
Merge: aec2f4e c16d2fa
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Sat May 8 12:41:42 2010 +0200
Merge branch 'livecapture' into mergelive
Conflicts:
CesarPlayer/Capturer/FakeCapturer.cs
CesarPlayer/Capturer/GccVideoMuxerType.cs
CesarPlayer/Capturer/GstCameraCapturer.cs
CesarPlayer/Capturer/ICapturer.cs
CesarPlayer/CesarPlayer.mdp
CesarPlayer/Gui/CapturerBin.cs
CesarPlayer/Makefile.am
LongoMatch/Gui/MainWindow.cs
LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.EditCategoryDialog.cs
LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs
LongoMatch/gtk-gui/LongoMatch.Gui.Dialog.ProjectsManager.cs
LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
LongoMatch/gtk-gui/gui.stetic
libcesarplayer/src/gst-camera-capturer.h
.gitignore | 11 +-
CesarPlayer/Capturer/CaptureProperties.cs | 38 +
CesarPlayer/Capturer/FakeCapturer.cs | 64 +-
CesarPlayer/Capturer/GstCameraCapturer.cs | 138 ++-
CesarPlayer/Capturer/ICapturer.cs | 16 +-
CesarPlayer/Capturer/LiveSourceTimer.cs | 87 ++
CesarPlayer/CesarPlayer.mdp | 88 +-
CesarPlayer/Common/Enum.cs | 1 +
CesarPlayer/Gui/CapturerBin.cs | 161 ++-
CesarPlayer/Makefile.am | 2 +
CesarPlayer/gtk-gui/LongoMatch.Gui.PlayerBin.cs | 10 +-
CesarPlayer/gtk-gui/objects.xml | 17 +-
LongoMatch.mds | 11 +-
LongoMatch/Gui/Component/PlayListWidget.cs | 14 +-
LongoMatch/Gui/Component/ProjectDetailsWidget.cs | 146 ++-
LongoMatch/Gui/Dialog/NewProjectDialog.cs | 7 +
LongoMatch/Gui/Dialog/ProjectSelectionDialog.cs | 2 +
LongoMatch/Gui/MainWindow.cs | 221 ++--
LongoMatch/Handlers/EventsManager.cs | 29 +-
LongoMatch/LongoMatch.mdp | 364 +++---
LongoMatch/Utils/ProjectUtils.cs | 8 +-
.../LongoMatch.Gui.Component.PlayListWidget.cs | 12 +-
...ongoMatch.Gui.Component.ProjectDetailsWidget.cs | 530 +++++---
.../LongoMatch.Gui.Component.TimeLineWidget.cs | 2 +-
.../gtk-gui/LongoMatch.Gui.Dialog.DrawingTool.cs | 15 +-
.../LongoMatch.Gui.Dialog.EditCategoryDialog.cs | 5 +-
.../LongoMatch.Gui.Dialog.EditPlayerDialog.cs | 3 +-
.../LongoMatch.Gui.Dialog.EndCaptureDialog.cs | 19 +-
.../gtk-gui/LongoMatch.Gui.Dialog.EntryDialog.cs | 1 -
...Match.Gui.Dialog.FramesCaptureProgressDialog.cs | 1 -
.../LongoMatch.Gui.Dialog.HotKeySelectorDialog.cs | 1 -
.../gtk-gui/LongoMatch.Gui.Dialog.Migrator.cs | 1 -
.../LongoMatch.Gui.Dialog.OpenProjectDialog.cs | 1 -
...LongoMatch.Gui.Dialog.PlayersSelectionDialog.cs | 1 -
...LongoMatch.Gui.Dialog.ProjectSelectionDialog.cs | 95 +-
...Match.Gui.Dialog.ProjectTemplateEditorDialog.cs | 1 -
.../LongoMatch.Gui.Dialog.ProjectsManager.cs | 7 +-
.../LongoMatch.Gui.Dialog.SnapshotsDialog.cs | 3 +-
.../gtk-gui/LongoMatch.Gui.Dialog.TaggerDialog.cs | 5 +-
.../LongoMatch.Gui.Dialog.TeamTemplateEditor.cs | 3 +-
.../LongoMatch.Gui.Dialog.TemplatesManager.cs | 23 +-
.../gtk-gui/LongoMatch.Gui.Dialog.UpdateDialog.cs | 1 -
...LongoMatch.Gui.Dialog.VideoEditionProperties.cs | 3 +-
.../LongoMatch.Gui.Dialog.Win32CalendarDialog.cs | 5 +-
LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 96 +-
LongoMatch/gtk-gui/gui.stetic | 591 +++++++---
LongoMatch/gtk-gui/objects.xml | 54 +-
libcesarplayer/liblongomatch.mdp | 35 +-
libcesarplayer/src/Makefile.am | 4 +-
libcesarplayer/src/bacon-video-widget-gst-0.10.c | 11 +-
libcesarplayer/src/gst-camera-capturer.c | 1352 ++++++++++++++------
libcesarplayer/src/gst-camera-capturer.h | 51 +-
libcesarplayer/src/gst-video-capturer.c | 735 -----------
libcesarplayer/src/gst-video-capturer.h | 81 --
54 files changed, 2945 insertions(+), 2238 deletions(-)
---
diff --cc CesarPlayer/Capturer/CaptureProperties.cs
index 0000000,8029e41..53e2b72
mode 000000,100644..100644
--- a/CesarPlayer/Capturer/CaptureProperties.cs
+++ b/CesarPlayer/Capturer/CaptureProperties.cs
@@@ -1,0 -1,37 +1,38 @@@
+ //
+ // Copyright (C) 2010 Andoni Morales Alastruey
+ //
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // This program is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with this program; if not, write to the Free Software
+ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ //
+
+ using System;
++using LongoMatch.Video.Common;
+
+ namespace LongoMatch.Video.Capturer
+ {
+
+
+ public struct CapturePropertiesStruct
+ {
+ public string VideoDevice;
+ public string AudioDevice;
+ public uint VideoBitrate;
+ public uint AudioBitrate;
- public GccVideoEncoderType VideoEncoder;
- public GccAudioEncoderType AudioEncoder;
- public GccVideoMuxerType Muxer;
++ public VideoEncoderType VideoEncoder;
++ public AudioEncoderType AudioEncoder;
++ public VideoMuxerType Muxer;
+ public uint Height;
+ public uint Width;
+ }
+ }
diff --cc CesarPlayer/Capturer/FakeCapturer.cs
index 0fb66d1,e340dde..fe81cdc
--- a/CesarPlayer/Capturer/FakeCapturer.cs
+++ b/CesarPlayer/Capturer/FakeCapturer.cs
@@@ -19,7 -19,8 +19,8 @@@
using System;
using Mono.Unix;
using GLib;
+using LongoMatch.Video.Common;
+ using Gdk;
-using LongoMatch.Video.Handlers;
namespace LongoMatch.Video.Capturer
{
@@@ -89,13 -89,12 +89,13 @@@
public uint AudioBitrate {
get {return 0;}
set {}
- }
-
- public void Stop(){
- GLib.Source.Remove(timerID);
}
+ public Pixbuf CurrentFrame {
+ get {return null;}
+ }
- public bool SetVideoEncoder(LongoMatch.Video.Capturer.GccVideoEncoderType type){
++
+ public bool SetVideoEncoder(VideoEncoderType type){
return true;
}
@@@ -103,14 -102,8 +103,8 @@@
return true;
}
- public bool SetVideoMuxer(LongoMatch.Video.Capturer.GccVideoMuxerType type){
+ public bool SetVideoMuxer(VideoMuxerType type){
return true;
}
-
- protected virtual bool OnTick(){
- if (EllapsedTime != null)
- EllapsedTime(CurrentTime);
- return true;
- }
}
}
diff --cc CesarPlayer/Capturer/GstCameraCapturer.cs
index 51c8847,bb41690..6abb483
--- a/CesarPlayer/Capturer/GstCameraCapturer.cs
+++ b/CesarPlayer/Capturer/GstCameraCapturer.cs
@@@ -293,26 -291,49 +291,49 @@@ namespace LongoMatch.Video.Capturer
public void Run() {
gst_camera_capturer_run(Handle);
}
+
+ [DllImport("libcesarplayer.dll")]
+ static extern void gst_camera_capturer_close(IntPtr raw);
+ public void Close() {
+ gst_camera_capturer_close(Handle);
+ }
+
[DllImport("libcesarplayer.dll")]
- static extern bool gst_camera_capturer_set_audio_encoder(IntPtr raw, int type);
+ static extern bool gst_camera_capturer_set_video_muxer(IntPtr raw, int type, out IntPtr error);
- public bool SetAudioEncoder(AudioEncoderType type) {
- bool raw_ret = gst_camera_capturer_set_audio_encoder(Handle, (int) type);
- public bool SetVideoMuxer(LongoMatch.Video.Capturer.GccVideoMuxerType type) {
++ public bool SetVideoMuxer(VideoMuxerType type) {
+ IntPtr error = IntPtr.Zero;
+ bool raw_ret = gst_camera_capturer_set_video_muxer(Handle, (int) type, out error);
+ if (error != IntPtr.Zero) throw new GLib.GException (error);
bool ret = raw_ret;
return ret;
}
+
[DllImport("libcesarplayer.dll")]
- static extern int gst_camera_capturer_get_current_time(IntPtr raw);
+ static extern bool gst_camera_capturer_set_video_encoder(IntPtr raw, int type, out IntPtr error);
- public int CurrentTime{
- get{
- return gst_camera_capturer_get_current_time(Handle);
- }
- public bool SetVideoEncoder(LongoMatch.Video.Capturer.GccVideoEncoderType type) {
++ public bool SetVideoEncoder(VideoEncoderType type) {
+ IntPtr error = IntPtr.Zero;
+ bool raw_ret = gst_camera_capturer_set_video_encoder(Handle, (int) type, out error);
+ if (error != IntPtr.Zero) throw new GLib.GException (error);
+ bool ret = raw_ret;
+ return ret;
}
[DllImport("libcesarplayer.dll")]
+ static extern bool gst_camera_capturer_set_audio_encoder(IntPtr raw, int type, out IntPtr error);
+
- public bool SetAudioEncoder(LongoMatch.Video.Capturer.GccAudioEncoderType type) {
++ public bool SetAudioEncoder(AudioEncoderType type) {
+ IntPtr error = IntPtr.Zero;
+ bool raw_ret = gst_camera_capturer_set_audio_encoder(Handle, (int) type, out error);
+ if (error != IntPtr.Zero) throw new GLib.GException (error);
+ bool ret = raw_ret;
+ return ret;
+ }
+
+ [DllImport("libcesarplayer.dll")]
static extern IntPtr gst_camera_capturer_get_type();
public static new GLib.GType GType {
diff --cc CesarPlayer/Capturer/ICapturer.cs
index cbfad62,024aede..be9deae
--- a/CesarPlayer/Capturer/ICapturer.cs
+++ b/CesarPlayer/Capturer/ICapturer.cs
@@@ -19,7 -19,8 +19,8 @@@
//
using System;
-using LongoMatch.Video.Handlers;
+using LongoMatch.Video.Common;
+ using Gdk;
namespace LongoMatch.Video.Capturer
{
@@@ -58,13 -60,17 +60,17 @@@
get ;
}
+ Pixbuf CurrentFrame {
+ get;
+ }
+
- bool SetVideoEncoder(LongoMatch.Video.Capturer.GccVideoEncoderType type);
+ bool SetVideoEncoder(VideoEncoderType type);
- bool SetAudioEncoder(LongoMatch.Video.Capturer.GccAudioEncoderType type);
+ bool SetAudioEncoder(AudioEncoderType type);
- bool SetVideoMuxer(LongoMatch.Video.Capturer.GccVideoMuxerType type);
+ bool SetVideoMuxer(VideoMuxerType type);
- void Pause();
+ void TogglePause();
void Start();
diff --cc CesarPlayer/Capturer/LiveSourceTimer.cs
index 0000000,7a68840..47fd043
mode 000000,100644..100644
--- a/CesarPlayer/Capturer/LiveSourceTimer.cs
+++ b/CesarPlayer/Capturer/LiveSourceTimer.cs
@@@ -1,0 -1,87 +1,87 @@@
+ //
+ // Copyright (C) 2010 Andoni Morales Alastruey
+ //
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation; either version 2 of the License, or
+ // (at your option) any later version.
+ //
+ // This program is distributed in the hope that it will be useful,
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ // GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License
+ // along with this program; if not, write to the Free Software
+ // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ //
+
+ using System;
-using LongoMatch.Video.Handlers;
++using LongoMatch.Video.Common;
+
+
+ namespace LongoMatch.Video.Capturer
+ {
+
+
+ public class LiveSourceTimer
+ {
+ public event EllpasedTimeHandler EllapsedTime;
+
+ private DateTime lastStart;
+ private TimeSpan ellapsed;
+ private bool playing;
+ private bool started;
+ private uint timerID;
+
+ public LiveSourceTimer()
+ {
+ lastStart = DateTime.Now;
+ ellapsed = new TimeSpan(0,0,0);
+ playing = false;
+ started = false;
+ }
+
+ public int CurrentTime{
+ get{
+ if (!started)
+ return 0;
+ else if (playing)
+ return (int)(ellapsed + (DateTime.Now - lastStart)).TotalMilliseconds;
+ else
+ return (int)ellapsed.TotalMilliseconds;
+ }
+ }
+
+ public void TogglePause(){
+ if (!started)
+ return;
+
+ if (playing){
+ playing = false;
+ ellapsed += DateTime.Now - lastStart;
+ }
+ else{
+ playing = true;
+ lastStart = DateTime.Now;
+ }
+ }
+
+ public void Start(){
+ timerID = GLib.Timeout.Add(100, OnTick);
+ lastStart = DateTime.Now;
+ playing = true;
+ started = true;
+ }
+
+ public void Stop(){
+ GLib.Source.Remove(timerID);
+ }
+
+ protected virtual bool OnTick(){
+ if (EllapsedTime != null)
+ EllapsedTime(CurrentTime);
+ return true;
+ }
+ }
+ }
diff --cc CesarPlayer/CesarPlayer.mdp
index e34b822,abf4407..b861b5d
--- a/CesarPlayer/CesarPlayer.mdp
+++ b/CesarPlayer/CesarPlayer.mdp
@@@ -14,44 -14,71 +14,46 @@@
</Configuration>
</Configurations>
<Contents>
- <File name="AssemblyInfo.cs" subtype="Code" buildaction="Compile" />
- <File name="gtk-gui/objects.xml" subtype="Code" buildaction="EmbedAsResource" />
- <File name="gtk-gui/gui.stetic" subtype="Code" buildaction="EmbedAsResource" />
- <File name="gtk-gui/generated.cs" subtype="Code" buildaction="Compile" />
- <File name="Player" subtype="Directory" buildaction="Compile" />
- <File name="Player/GstPlayer.cs" subtype="Code" buildaction="Compile" />
- <File name="Player/IPlayer.cs" subtype="Code" buildaction="Compile" />
- <File name="cesarplayer.key" subtype="Code" buildaction="Nothing" />
- <File name="Utils" subtype="Directory" buildaction="Compile" />
- <File name="Utils/TimeString.cs" subtype="Code" buildaction="Compile" />
- <File name="Gui" subtype="Directory" buildaction="Compile" />
- <File name="gtk-gui/LongoMatch.Gui.PlayerBin.cs" subtype="Code" buildaction="Compile" />
- <File name="gtk-gui/LongoMatch.Gui.VolumeWindow.cs" subtype="Code" buildaction="Compile" />
- <File name="Gui/VolumeWindow.cs" subtype="Code" buildaction="Compile" />
- <File name="Capturer" subtype="Directory" buildaction="Compile" />
- <File name="Capturer/ICapturer.cs" subtype="Code" buildaction="Compile" />
- <File name="Gui/CapturerBin.cs" subtype="Code" buildaction="Compile" />
- <File name="MultimediaFactory.cs" subtype="Code" buildaction="Compile" />
- <File name="Player/ObjectManager.cs" subtype="Code" buildaction="Compile" />
- <File name="Capturer/ObjectManager.cs" subtype="Code" buildaction="Compile" />
- <File name="Utils/IFramesCapturer.cs" subtype="Code" buildaction="Compile" />
- <File name="Utils/FramesCapturer.cs" subtype="Code" buildaction="Compile" />
- <File name="Utils/IMetadataReader.cs" subtype="Code" buildaction="Compile" />
- <File name="Gui/PlayerBin.cs" subtype="Code" buildaction="Compile" />
- <File name="Editor" subtype="Directory" buildaction="Compile" />
- <File name="Editor/IVideoEditor.cs" subtype="Code" buildaction="Compile" />
- <File name="Editor/GstVideoSplitter.cs" subtype="Code" buildaction="Compile" />
- <File name="Editor/VideoSegment.cs" subtype="Code" buildaction="Compile" />
- <File name="Editor/EditorState.cs" subtype="Code" buildaction="Compile" />
- <File name="Editor/IVideoSplitter.cs" subtype="Code" buildaction="Compile" />
- <File name="Utils/MediaFile.cs" subtype="Code" buildaction="Compile" />
- <File name="Utils/PreviewMediaFile.cs" subtype="Code" buildaction="Compile" />
- <File name="Capturer/FakeCapturer.cs" subtype="Code" buildaction="Compile" />
- <File name="Capturer/GstCameraCapturer.cs" subtype="Code" buildaction="Compile" />
- <File name="gtk-gui/LongoMatch.Gui.CapturerBin.cs" subtype="Code" buildaction="Compile" />
- <File name="Common" subtype="Directory" buildaction="Compile" />
- <File name="Common/Enum.cs" subtype="Code" buildaction="Compile" />
- <File name="Common/Handlers.cs" subtype="Code" buildaction="Compile" />
+ <File subtype="Code" buildaction="Compile" name="AssemblyInfo.cs" />
+ <File subtype="Code" buildaction="EmbedAsResource" name="gtk-gui/objects.xml" />
+ <File subtype="Code" buildaction="EmbedAsResource" name="gtk-gui/gui.stetic" />
+ <File subtype="Code" buildaction="Compile" name="gtk-gui/generated.cs" />
- <File subtype="Directory" buildaction="Compile" name="Handlers" />
- <File subtype="Code" buildaction="Compile" name="Handlers/ErrorHandler.cs" />
- <File subtype="Code" buildaction="Compile" name="Handlers/Handlers.cs" />
- <File subtype="Code" buildaction="Compile" name="Handlers/TickHandler.cs" />
+ <File subtype="Directory" buildaction="Compile" name="Player" />
+ <File subtype="Code" buildaction="Compile" name="Player/GstPlayer.cs" />
+ <File subtype="Code" buildaction="Compile" name="Player/IPlayer.cs" />
- <File subtype="Code" buildaction="Compile" name="Player/GstUseType.cs" />
- <File subtype="Code" buildaction="Compile" name="Handlers/StateChangedHandler.cs" />
+ <File subtype="Code" buildaction="Nothing" name="cesarplayer.key" />
+ <File subtype="Directory" buildaction="Compile" name="Utils" />
+ <File subtype="Code" buildaction="Compile" name="Utils/TimeString.cs" />
+ <File subtype="Directory" buildaction="Compile" name="Gui" />
+ <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.PlayerBin.cs" />
+ <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.VolumeWindow.cs" />
+ <File subtype="Code" buildaction="Compile" name="Gui/VolumeWindow.cs" />
+ <File subtype="Directory" buildaction="Compile" name="Capturer" />
- <File subtype="Code" buildaction="Compile" name="Capturer/ErrorHandler.cs" />
+ <File subtype="Code" buildaction="Compile" name="Capturer/ICapturer.cs" />
+ <File subtype="Code" buildaction="Compile" name="Gui/CapturerBin.cs" />
+ <File subtype="Code" buildaction="Compile" name="MultimediaFactory.cs" />
+ <File subtype="Code" buildaction="Compile" name="Player/ObjectManager.cs" />
+ <File subtype="Code" buildaction="Compile" name="Capturer/ObjectManager.cs" />
+ <File subtype="Code" buildaction="Compile" name="Utils/IFramesCapturer.cs" />
+ <File subtype="Code" buildaction="Compile" name="Utils/FramesCapturer.cs" />
+ <File subtype="Code" buildaction="Compile" name="Utils/IMetadataReader.cs" />
+ <File subtype="Code" buildaction="Compile" name="Gui/PlayerBin.cs" />
- <File subtype="Code" buildaction="Compile" name="Capturer/GccAudioEncoderType.cs" />
- <File subtype="Code" buildaction="Compile" name="Capturer/GccError.cs" />
- <File subtype="Code" buildaction="Compile" name="Capturer/GccVideoEncoderType.cs" />
- <File subtype="Code" buildaction="Compile" name="Capturer/GccVideoMuxerType.cs" />
+ <File subtype="Directory" buildaction="Compile" name="Editor" />
- <File subtype="Code" buildaction="Compile" name="Editor/ErrorHandler.cs" />
+ <File subtype="Code" buildaction="Compile" name="Editor/IVideoEditor.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/AudioQuality.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/VideoQuality.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/PercentCompletedHandler.cs" />
+ <File subtype="Code" buildaction="Compile" name="Editor/GstVideoSplitter.cs" />
+ <File subtype="Code" buildaction="Compile" name="Editor/VideoSegment.cs" />
+ <File subtype="Code" buildaction="Compile" name="Editor/EditorState.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/VideoFormat.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/VideoMuxer.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/VideoCodec.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/IMerger.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/AudioCodec.cs" />
+ <File subtype="Code" buildaction="Compile" name="Editor/IVideoSplitter.cs" />
- <File subtype="Code" buildaction="Compile" name="Editor/VideoSplitterType.cs" />
+ <File subtype="Code" buildaction="Compile" name="Utils/MediaFile.cs" />
- <File subtype="Code" buildaction="Compile" name="Player/GstAspectRatio.cs" />
- <File subtype="Code" buildaction="Compile" name="Player/GstAudioOutType.cs" />
- <File subtype="Code" buildaction="Compile" name="Player/GstDVDEvent.cs" />
- <File subtype="Code" buildaction="Compile" name="Player/GstError.cs" />
- <File subtype="Code" buildaction="Compile" name="Player/GstMetadataType.cs" />
- <File subtype="Code" buildaction="Compile" name="Player/GstVideoProperty.cs" />
+ <File subtype="Code" buildaction="Compile" name="Utils/PreviewMediaFile.cs" />
+ <File subtype="Code" buildaction="Compile" name="Capturer/FakeCapturer.cs" />
+ <File subtype="Code" buildaction="Compile" name="Capturer/GstCameraCapturer.cs" />
- <File subtype="Code" buildaction="Compile" name="Capturer/GccType.cs" />
+ <File subtype="Code" buildaction="Compile" name="gtk-gui/LongoMatch.Gui.CapturerBin.cs" />
- <File subtype="Code" buildaction="Compile" name="Capturer/CaptureProperties.cs" />
++ <File subtype="Directory" buildaction="Compile" name="Common" />
++ <File subtype="Code" buildaction="Compile" name="Common/Enum.cs" />
++ <File subtype="Code" buildaction="Compile" name="Common/Handlers.cs" />
+ <File subtype="Code" buildaction="Compile" name="Capturer/LiveSourceTimer.cs" />
++ <File subtype="Code" buildaction="Compile" name="Capturer/CaptureProperties.cs" />
</Contents>
<References>
<ProjectReference type="Gac" localcopy="True" refto="System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
diff --cc CesarPlayer/Common/Enum.cs
index e637ec5,0000000..7f0a905
mode 100644,000000..100644
--- a/CesarPlayer/Common/Enum.cs
+++ b/CesarPlayer/Common/Enum.cs
@@@ -1,153 -1,0 +1,154 @@@
+//
+// Copyright (C) 2010 Andoni Morales Alastruey
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+//
+
+using System;
+
+namespace LongoMatch.Video.Common
+{
+
+
+ public enum Error {
+ AudioPlugin,
+ NoPluginForFile,
+ VideoPlugin,
+ AudioBusy,
+ BrokenFile,
+ FileGeneric,
+ FilePermission,
+ FileEncrypted,
+ FileNotFound,
+ DvdEncrypted,
+ InvalidDevice,
+ UnknownHost,
+ NetworkUnreachable,
+ ConnectionRefused,
+ UnvalidLocation,
+ Generic,
+ CodecNotHandled,
+ AudioOnly,
+ CannotCapture,
+ ReadError,
+ PluginLoad,
+ EmptyFile,
+ }
+
+ public enum VideoEncoderType {
+ Mpeg4,
+ Xvid,
+ Theora,
+ H264,
+ Mpeg2
+ }
+
+ public enum AudioEncoderType {
+ Mp3,
+ Aac,
+ Vorbis,
+ }
+
+ public enum VideoMuxerType {
+ Avi,
++ Mp4,
+ Matroska,
+ Ogg,
+ MpegPS,
+ }
+
+ public enum CapturerType{
+ FAKE,
+ DVCAM,
+ WEBCAM,
+ }
+
+ public enum VideoFormat {
+ PORTABLE=0,
+ VGA=1,
+ TV=2,
+ HD720p=3,
+ HD1080p=4
+ }
+
+ public enum VideoQuality {
+ Low = 1000,
+ Normal = 3000,
+ Good = 5000,
+ Extra = 7000,
+ }
+
+ public enum AudioQuality
+ {
+ Low = 32000,
+ Normal = 64000,
+ Good = 128000,
+ Extra = 256000,
+ copy,
+ }
+
+ public enum PlayerUseType {
+ Video,
+ Audio,
+ Capture,
+ Metadata,
+ }
+
+ public enum VideoProperty {
+ Brightness,
+ Contrast,
+ Saturation,
+ Hue,
+ }
+
+ public enum AspectRatio {
+ Auto,
+ Square,
+ Fourbythree,
+ Anamorphic,
+ Dvb,
+ }
+
+ public enum AudioOutType {
+ Stereo,
+ Channel4,
+ Channel41,
+ Channel5,
+ Channel51,
+ Ac3passthru,
+ }
+
+ public enum MetadataType {
+ Title,
+ Artist,
+ Year,
+ Comment,
+ Album,
+ Duration,
+ TrackNumber,
+ Cover,
+ HasVideo,
+ DimensionX,
+ DimensionY,
+ VideoBitrate,
+ VideoEncoderType,
+ Fps,
+ HasAudio,
+ AudioBitrate,
+ AudioEncoderType,
+ AudioSampleRate,
+ AudioChannels,
+ }
+}
diff --cc CesarPlayer/Gui/CapturerBin.cs
index ebc4e3d,23e757c..a660c78
--- a/CesarPlayer/Gui/CapturerBin.cs
+++ b/CesarPlayer/Gui/CapturerBin.cs
@@@ -37,15 -36,34 +37,33 @@@ namespace LongoMatch.Gu
public partial class CapturerBin : Gtk.Bin
{
public event EventHandler CaptureFinished;
+ public event ErrorHandler Error;
private Pixbuf logopix;
+ private uint outputWidth;
+ private uint outputHeight;
+ private uint videoBitrate;
+ private uint audioBitrate;
- private GccVideoEncoderType videoEncoder;
- private GccAudioEncoderType audioEncoder;
- private GccVideoMuxerType videoMuxer;
++ private VideoEncoderType videoEncoder;
++ private AudioEncoderType audioEncoder;
++ private VideoMuxerType videoMuxer;
+ private string outputFile;
+ private bool capturing;
+ private const int THUMBNAIL_MAX_WIDTH = 100;
ICapturer capturer;
- bool capturing;
public CapturerBin()
{
this.Build();
-
+ outputWidth = 320;
+ outputHeight = 240;
+ videoBitrate = 1000;
+ audioBitrate = 128;
- videoEncoder = GccVideoEncoderType.H264;
- audioEncoder = GccAudioEncoderType.Aac;
- videoMuxer = GccVideoMuxerType.Mp4;
++ videoEncoder = VideoEncoderType.H264;
++ audioEncoder = AudioEncoderType.Aac;
++ videoMuxer = VideoMuxerType.Mp4;
+ outputFile = "";
Type = CapturerType.FAKE;
}
@@@ -62,11 -82,13 +82,14 @@@
capturerhbox.Add((Widget)capturer);
(capturer as Widget).Visible = true;
capturerhbox.Visible = true;
+ logodrawingarea.Visible = false;
}
else{
+ logodrawingarea.Visible = true;
capturerhbox.Visible = false;
}
+ capturing = false;
+ SetProperties();
}
}
@@@ -100,53 -143,115 +144,113 @@@
}
}
- public void ToggleCapture(){
- if (capturing)
- Pause();
- else
- Start();
+ public bool Capturing{
+ get{
+ return capturing;
+ }
}
- public void Pause(){
- recbutton.Visible = true;
- pausebutton.Visible = false;
- capturer.Pause();
- capturing = false;
+ public CapturePropertiesStruct CaptureProperties{
+ set{
+ outputWidth = value.Width;
+ outputHeight = value.Height;
+ audioBitrate = value.AudioBitrate;
+ videoBitrate = value.VideoBitrate;
+ audioEncoder = value.AudioEncoder;
+ videoEncoder = value.VideoEncoder;
+ videoMuxer = value.Muxer;
+ }
}
+ public void Start(){
++ capturing = true;
+ recbutton.Visible = false;
+ pausebutton.Visible = true;
+ stopbutton.Visible = true;
+ capturer.Start();
- capturing = true;
+ }
+
- public void Stop(){
+ public void TogglePause(){
+ capturing = !capturing;
+ capturer.TogglePause();
+ }
+
- public void Start(){
- capturer.Start();
- capturing = true;
- }
-
- public void Stop(){
- capturer.Stop();
++ public void Stop() {
+ capturing = false;
+ capturer.Stop();
+ }
+
+ public void Run(){
+ capturer.Run();
+ }
+
+ public void Close(){
+ capturer.Close();
capturing = false;
}
+ public Pixbuf CurrentMiniatureFrame {
+ get {
+ int h, w;
+ double rate;
+ Pixbuf scaled_pix;
+ Pixbuf pix = capturer.CurrentFrame;
+
+ if (pix == null)
+ return null;
+
+ w = pix.Width;
+ h = pix.Height;
+ rate = (double)w / (double)h;
+
+ if (h > w) {
+ w = (int)(THUMBNAIL_MAX_WIDTH * rate);
+ h = THUMBNAIL_MAX_WIDTH;
+ } else {
+ h = (int)(THUMBNAIL_MAX_WIDTH / rate);
+ w = THUMBNAIL_MAX_WIDTH;
+ }
+ scaled_pix = pix.ScaleSimple (w, h, Gdk.InterpType.Bilinear);
+ pix.Dispose();
+
+ return scaled_pix;
+ }
+ }
+
- public void SetVideoEncoder(GccVideoEncoderType type){
+ public void SetVideoEncoder(VideoEncoderType type){
capturer.SetVideoEncoder(type);
+ videoEncoder = type;
}
- public void SetAudioEncoder(GccAudioEncoderType type){
+ public void SetAudioEncoder(AudioEncoderType type){
capturer.SetAudioEncoder(type);
+ audioEncoder = type;
}
- public void SetVideoMuxer(GccVideoMuxerType type){
+ public void SetVideoMuxer(VideoMuxerType type){
capturer.SetVideoMuxer(type);
+ videoMuxer = type;
+ }
+
+ private void SetProperties(){
+ capturer.OutputFile = outputFile;
+ capturer.OutputHeight = outputHeight;
+ capturer.OutputWidth = outputWidth;
+ capturer.SetVideoEncoder(videoEncoder);
+ capturer.SetAudioEncoder(audioEncoder);
+ capturer.SetVideoMuxer(videoMuxer);
+ capturer.VideoBitrate = videoBitrate;
+ capturer.AudioBitrate = audioBitrate;
}
protected virtual void OnRecbuttonClicked (object sender, System.EventArgs e)
{
- Start();
- Start();
- recbutton.Visible = false;
- pausebutton.Visible = true;
- stopbutton.Visible = true;
++ Start();
}
protected virtual void OnPausebuttonClicked (object sender, System.EventArgs e)
{
- Pause();
- TogglePause();
- recbutton.Visible = true;
- pausebutton.Visible = false;
++ TogglePause();
}
protected virtual void OnStopbuttonClicked (object sender, System.EventArgs e)
diff --cc CesarPlayer/Makefile.am
index e7235e4,f90fce1..1b60e8d
--- a/CesarPlayer/Makefile.am
+++ b/CesarPlayer/Makefile.am
@@@ -62,15 -73,32 +62,17 @@@ FILES =
Utils/FramesCapturer.cs \
Utils/IMetadataReader.cs \
Utils/TimeString.cs \
+ Capturer/CaptureProperties.cs \
- Capturer/GccAudioEncoderType.cs \
- Capturer/GccError.cs \
- Capturer/GccType.cs \
- Capturer/GccVideoEncoderType.cs \
- Capturer/GccVideoMuxerType.cs \
Capturer/GstCameraCapturer.cs \
- Capturer/ErrorHandler.cs \
Capturer/FakeCapturer.cs \
Capturer/ICapturer.cs \
+ Capturer/LiveSourceTimer.cs \
Capturer/ObjectManager.cs \
- Editor/ErrorHandler.cs \
- Editor/IVideoEditor.cs \
- Editor/AudioQuality.cs \
- Editor/VideoQuality.cs \
- Editor/PercentCompletedHandler.cs \
Editor/GstVideoSplitter.cs \
+ Editor/IVideoEditor.cs \
+ Editor/IVideoSplitter.cs \
Editor/VideoSegment.cs \
Editor/EditorState.cs \
- Editor/VideoFormat.cs \
- Editor/VideoMuxer.cs \
- Editor/VideoCodec.cs \
- Editor/AudioCodec.cs \
- Editor/IVideoSplitter.cs \
- Editor/VideoSplitterType.cs \
Utils/MediaFile.cs \
Utils/PreviewMediaFile.cs
diff --cc LongoMatch/Gui/Component/ProjectDetailsWidget.cs
index beaa228,9df1ed5..6180925
--- a/LongoMatch/Gui/Component/ProjectDetailsWidget.cs
+++ b/LongoMatch/Gui/Component/ProjectDetailsWidget.cs
@@@ -29,7 -29,7 +29,8 @@@ using LongoMatch.Gui.Popup
using LongoMatch.Gui.Dialog;
using LongoMatch.TimeNodes;
using LongoMatch.Video.Utils;
-
+ using LongoMatch.Video.Capturer;
++using LongoMatch.Video.Common;
namespace LongoMatch.Gui.Component
{
@@@ -218,7 -245,50 +246,50 @@@
return visitorcombobox.ActiveText + ".tem";
}
}
-
+
+ public CapturePropertiesStruct CaptureProperties{
+ get{
+ CapturePropertiesStruct s = new CapturePropertiesStruct();
+ s.AudioBitrate = (uint)audiobitratespinbutton.Value;
+ s.VideoBitrate = (uint)videobitratespinbutton.Value;
+ s.AudioDevice = audiodevicecombobox.ActiveText;
+ s.VideoDevice = videodevicecombobox.ActiveText;
+ switch (sizecombobox.ActiveText){
+ /* FIXME: Don't harcode size values */
+ case PAL_FORMAT:
+ s.Width = 640;
+ s.Height = 480;
+ break;
+ case PAL_1_2_FORMAT:
+ s.Width = 480;
+ s.Height = 320;
+ break;
+ case PAL_3_4_FORMAT:
+ s.Width = 320;
+ s.Height = 240;
+ break;
+ }
+ switch (videoformatcombobox.ActiveText){
+ case AVI:
- s.VideoEncoder = GccVideoEncoderType.Xvid;
- s.AudioEncoder = GccAudioEncoderType.Mp3;
- s.Muxer = GccVideoMuxerType.Avi;
++ s.VideoEncoder = VideoEncoderType.Xvid;
++ s.AudioEncoder = AudioEncoderType.Mp3;
++ s.Muxer = VideoMuxerType.Avi;
+ break;
+ case MP4:
- s.VideoEncoder = GccVideoEncoderType.H264;
- s.AudioEncoder = GccAudioEncoderType.Aac;
- s.Muxer = GccVideoMuxerType.Mp4;
++ s.VideoEncoder = VideoEncoderType.H264;
++ s.AudioEncoder = AudioEncoderType.Aac;
++ s.Muxer = VideoMuxerType.Mp4;
+ break;
+ case OGG:
- s.VideoEncoder = GccVideoEncoderType.Theora;
- s.AudioEncoder = GccAudioEncoderType.Vorbis;
- s.Muxer = GccVideoMuxerType.Ogg;
++ s.VideoEncoder = VideoEncoderType.Theora;
++ s.AudioEncoder = AudioEncoderType.Vorbis;
++ s.Muxer = VideoMuxerType.Ogg;
+ break;
+ }
+ return s;
+ }
+ }
+
public void SetProject(Project project) {
this.project = project;
mFile = project.File;
diff --cc LongoMatch/Gui/MainWindow.cs
index 3586894,e2b0b72..ed49ec7
--- a/LongoMatch/Gui/MainWindow.cs
+++ b/LongoMatch/Gui/MainWindow.cs
@@@ -18,27 -18,20 +18,22 @@@
//
//
- using System;
- using Gtk;
- using Mono.Unix;
- using System.IO;
- using GLib;
- using System.Threading;
using Gdk;
+ using GLib;
+ using Gtk;
using LongoMatch.Common;
using LongoMatch.DB;
- using LongoMatch.TimeNodes;
using LongoMatch.Gui.Dialog;
- using LongoMatch.Gui.Popup;
- using LongoMatch.Video;
+ using LongoMatch.Handlers;
+ using LongoMatch.TimeNodes;
+ using LongoMatch.Utils;
using LongoMatch.Video.Capturer;
+using LongoMatch.Video.Common;
+using LongoMatch.Video.Player;
using LongoMatch.Video.Utils;
- using LongoMatch.Updates;
- using LongoMatch.Utils;
- using LongoMatch.IO;
- using LongoMatch.Handlers;
+ using Mono.Unix;
+ using System;
+ using System.IO;
using System.Reflection;
@@@ -66,6 -58,6 +60,7 @@@ namespace LongoMatch.Gu
this.Build();
/*Updater updater = new Updater();
++ A
updater.NewVersion += new LongoMatch.Handlers.NewVersionHandler(OnUpdate);
updater.Run();*/
@@@ -503,15 -541,9 +547,15 @@@
case Constants.TOGGLE_PLAY:
playerbin1.TogglePlay();
break;
- }
+ }
+ } else {
+ switch (key){
+ case Constants.TOGGLE_PLAY:
- capturerBin.ToggleCapture();
++ capturerBin.TogglePause();
+ break;
+ }
}
- return base.OnKeyPressEvent(evnt);
+ return ret;
}
protected virtual void OnTimeNodeSelected(LongoMatch.TimeNodes.MediaTimeNode tNode)
@@@ -537,13 -569,23 +581,20 @@@
{
drawingtoolbox1.Visible = DrawingToolAction.Active;
drawingtoolbox1.DrawingVisibility = DrawingToolAction.Active;
- }
-
- protected virtual void OnUnrealized(object sender, System.EventArgs e) {
- CloseAndQuit();
}
-
- protected virtual void OnDeleteEvent(object o, Gtk.DeleteEventArgs args)
+
+ protected override bool OnDeleteEvent (Gdk.Event evnt)
{
- CloseAndQuit();
+ CloseAndQuit();
+ return true;
}
- #endregion
+
- protected virtual void OnCapturerBinError (object o, LongoMatch.Video.Capturer.ErrorArgs args)
++ protected virtual void OnCapturerBinError (object o, ErrorArgs args)
+ {
+ MessagePopup.PopupMessage(this, MessageType.Info,
+ Catalog.GetString("An error occured in the video capturer and the current project will be closed:")+"\n" +args.Message);
+ CloseOpenedProject(true);
+ }
+ #endregion
}
- }
+ }
diff --cc LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
index 9cf965f,c968012..fbceab2
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@@ -436,8 -446,9 +445,9 @@@ namespace LongoMatch.Gui
this.ImportProjectAction.Activated += new System.EventHandler(this.OnImportProjectActionActivated);
this.FreeCaptureModeAction.Toggled += new System.EventHandler(this.OnViewToggled);
this.treewidget1.TimeNodeSelected += new LongoMatch.Handlers.TimeNodeSelectedHandler(this.OnTimeNodeSelected);
- this.playerbin1.Error += new LongoMatch.Video.Handlers.ErrorHandler(this.OnPlayerbin1Error);
- this.playerbin1.SegmentClosedEvent += new LongoMatch.Video.Handlers.SegmentClosedHandler(this.OnSegmentClosedEvent);
- this.capturerBin.Error += new LongoMatch.Video.Capturer.ErrorHandler(this.OnCapturerBinError);
+ this.playerbin1.Error += new LongoMatch.Video.Common.ErrorHandler(this.OnPlayerbin1Error);
+ this.playerbin1.SegmentClosedEvent += new LongoMatch.Video.Common.SegmentClosedHandler(this.OnSegmentClosedEvent);
++ this.capturerBin.Error += new LongoMatch.Video.Common.ErrorHandler(this.OnCapturerBinError);
this.timelinewidget1.TimeNodeSelected += new LongoMatch.Handlers.TimeNodeSelectedHandler(this.OnTimeNodeSelected);
}
}
diff --cc LongoMatch/gtk-gui/gui.stetic
index 5c5f7c0,6b8f711..28e8b69
--- a/LongoMatch/gtk-gui/gui.stetic
+++ b/LongoMatch/gtk-gui/gui.stetic
@@@ -2034,7 -2272,7 +2276,7 @@@
</widget>
</child>
</widget>
-- <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.CategoryProperties" design-size="284 118">
++ <widget class="Gtk.Bin" id="LongoMatch.Gui.Component.CategoryProperties" design-size="284 120">
<property name="MemberName" />
<child>
<widget class="Gtk.VBox" id="vbox3">
diff --cc LongoMatch/gtk-gui/objects.xml
index ab15f4d,20e4b9e..a9f72c3
--- a/LongoMatch/gtk-gui/objects.xml
+++ b/LongoMatch/gtk-gui/objects.xml
@@@ -174,18 -174,14 +174,6 @@@
<itemgroups />
<signals />
</object>
-- <object type="LongoMatch.Gui.Component.ProjectListWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
-- <itemgroups />
-- <signals>
-- <itemgroup label="ProjectListWidget Signals">
-- <signal name="ProjectSelectedEvent" />
-- </itemgroup>
-- </signals>
-- </object>
- <object type="LongoMatch.Gui.Component.PlayerProperties" palette-category="General" allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
<object type="LongoMatch.Gui.Component.ProjectTemplateWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
<itemgroups>
<itemgroup label="ProjectTemplateWidget Properties">
@@@ -244,6 -230,16 +222,30 @@@
</itemgroup>
</signals>
</object>
+ <object type="LongoMatch.Gui.Component.ButtonsWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
+ <itemgroups />
+ <signals>
+ <itemgroup label="ButtonsWidget Signals">
+ <signal name="NewMarkEvent" />
+ <signal name="NewMarkStartEvent" />
+ <signal name="NewMarkStopEvent" />
+ </itemgroup>
+ </signals>
+ </object>
++ <object type="LongoMatch.Gui.Component.PlayerProperties" palette-category="General" allow-children="false" base-type="Gtk.Bin">
++ <itemgroups />
++ <signals />
++ </object>
++ <object type="LongoMatch.Gui.Component.PlayListWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
++ <itemgroups />
++ <signals>
++ <itemgroup label="PlayListWidget Signals">
++ <signal name="PlayListNodeSelected" />
++ <signal name="ApplyCurrentRate" />
++ <signal name="Progress" />
++ </itemgroup>
++ </signals>
++ </object>
<object type="LongoMatch.Gui.Component.ProjectDetailsWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
<itemgroups>
<itemgroup label="ProjectDetailsWidget Properties">
@@@ -263,13 -259,17 +265,11 @@@
</itemgroup>
</signals>
</object>
- <object type="LongoMatch.Gui.Component.ButtonsWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
- <object type="LongoMatch.Gui.Component.PlayerProperties" palette-category="General" allow-children="false" base-type="Gtk.Bin">
- <itemgroups />
- <signals />
- </object>
- <object type="LongoMatch.Gui.Component.PlayListWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
++ <object type="LongoMatch.Gui.Component.ProjectListWidget" palette-category="LongoMatch" allow-children="false" base-type="Gtk.Bin">
<itemgroups />
<signals>
- <itemgroup label="ButtonsWidget Signals">
- <signal name="NewMarkEvent" />
- <signal name="NewMarkStartEvent" />
- <signal name="NewMarkStopEvent" />
- <itemgroup label="PlayListWidget Signals">
- <signal name="PlayListNodeSelected" />
- <signal name="ApplyCurrentRate" />
- <signal name="Progress" />
++ <itemgroup label="ProjectListWidget Signals">
++ <signal name="ProjectSelectedEvent" />
</itemgroup>
</signals>
</object>
diff --cc libcesarplayer/src/gst-camera-capturer.c
index 57e505d,afce3af..dec31e4
--- a/libcesarplayer/src/gst-camera-capturer.c
+++ b/libcesarplayer/src/gst-camera-capturer.c
@@@ -541,15 -940,16 +940,16 @@@ voi
gst_camera_capturer_start (GstCameraCapturer * gcc)
{
g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc));
- g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "user-start", 0, 0);
+ g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "capture-start", 0,
+ 0);
}
-
void
-gst_camera_capturer_toggle_pause (GstCameraCapturer * gcc)
+gst_camera_capturer_pause (GstCameraCapturer * gcc)
{
g_return_if_fail (GST_IS_CAMERA_CAPTURER (gcc));
- g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "user-pause", 0, 0);
+ g_signal_emit_by_name (G_OBJECT (gcc->priv->camerabin), "capture-pause", 0,
+ 0);
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]