[svn r228] Optimizations, freeing unallocated resources.
1 /* vim: set sw=2: -*- Mode: C; tab-width: 2; indent-tabs-mode: t; c-basic-offset: 2; c-indent-level: 2 -*- */
3 * Copyright (C) <2006> Rosfran Borges <rosfran.borges@indt.org.br>
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Library General Public License for more
16 #ifndef __GST_MYTHTV_SRC_H__
17 #define __GST_MYTHTV_SRC_H__
20 #include <gst/base/gstbasesrc.h>
21 #include <gst/base/gstpushsrc.h>
24 #include <gmyth/gmyth_socket.h>
25 #include <gmyth/gmyth_file_transfer.h>
26 #include <gmyth/gmyth_livetv.h>
27 #include <gmyth/gmyth_backendinfo.h>
31 #define GST_TYPE_MYTHTV_SRC \
32 (gst_mythtv_src_get_type())
33 #define GST_MYTHTV_SRC(obj) \
34 (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MYTHTV_SRC,GstMythtvSrc))
35 #define GST_MYTHTV_SRC_CLASS(klass) \
36 (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MYTHTV_SRC,GstMythtvSrcClass))
37 #define GST_IS_MYTHTV_SRC(obj) \
38 (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MYTHTV_SRC))
39 #define GST_IS_MYTHTV_SRC_CLASS(klass) \
40 (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MYTHTV_SRC))
42 typedef struct _GstMythtvSrc GstMythtvSrc;
43 typedef struct _GstMythtvSrcClass GstMythtvSrcClass;
46 GST_MYTHTV_SRC_FILE_TRANSFER,
47 GST_MYTHTV_SRC_NEXT_PROGRAM_CHAIN,
48 GST_MYTHTV_SRC_INVALID_DATA
51 struct _GstMythtvSrc {
54 /* MythFileTransfer */
55 GMythFileTransfer *file_transfer;
57 GMythLiveTV *spawn_livetv;
59 GMythBackendInfo *backend_info;
72 gint64 prev_content_size;
74 gint64 content_size_last;
80 /* added by melunko (buffer cache) */
87 gboolean unique_setup;
91 gboolean enable_timing_position;
99 /* MythTV capabilities */
100 GstCaps *mythtv_caps;
104 GStaticRecMutex *th_mutex;
106 GByteArray *bytes_queue;
108 /* enable Myth TV debug messages */
109 gboolean mythtv_msgs_dbg;
111 gboolean update_prog_chain;
114 struct _GstMythtvSrcClass {
115 GstPushSrcClass parent_class;
118 GType gst_mythtv_src_get_type (void);
122 #endif /* __GST_MYTHTV_SRC_H__ */