4 * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
6 * Contact: JongHyuk Choi <jhchoi.choi@samsung.com>
8 * This library is free software; you can redistribute it and/or modify it under
9 * the terms of the GNU Lesser General Public License as published by the
10 * Free Software Foundation; either version 2.1 of the License, or (at your option)
13 * This library is distributed in the hope that it will be useful, but WITHOUT ANY
14 * WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
16 * License for more details.
18 * You should have received a copy of the GNU Lesser General Public License
19 * along with this library; if not, write to the Free Software Foundation, Inc., 51
20 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 #ifndef __GST_DRM_SRC_H__
26 #define __GST_DRM_SRC_H__
28 #include <sys/types.h>
30 #include <gst/base/gstbasesrc.h>
31 #include "drm-service.h"
40 #define S_ISREG(mode) ((mode)&_S_IFREG)
43 #define S_ISDIR(mode) ((mode)&_S_IFDIR)
46 #define S_ISSOCK(x) (0)
52 #define ENABLE_PROFILING_INFO
53 #ifdef ENABLE_PROFILING_INFO
54 #define PROFILE_FUNC_BEGIN\
56 newname=__FUNCTION__; \
57 gst_ta_accum_item_begin(newname,FALSE,__FILE__,__LINE__);
59 #define PROFILE_FUNC_END \
60 gst_ta_accum_item_end(newname,FALSE,__FILE__,__LINE__);
62 #define PROFILE_BLOCK_BEGIN(name) gst_ta_accum_item_begin(name,FALSE,__FILE__,__LINE__);
63 #define PROFILE_BLOCK_END(name) gst_ta_accum_item_end(name,FALSE,__FILE__,__LINE__);
64 #define PROFILE_INIT gst_ta_init();
65 #define PROFILE_SHOW_RESULT gst_ta_accum_show_result(0);//MMTA_SHOW_FILE);
66 #define PROFILE_CLEAR_DATA gst_ta_release();
68 #define PROFILE_FUNC_BEGIN
69 #define PROFILE_FUNC_END
70 #define PROFILE_BLOCK_BEGIN(name)
71 #define PROFILE_BLOCK_END(name)
73 #define PROFILE_SHOW_RESULT
74 #define PROFILE_CLEAR_DATA
78 #define GST_TYPE_DRM_SRC (gst_drm_src_get_type())
79 #define GST_DRM_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DRM_SRC,GstDrmSrc))
80 #define GST_DRM_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DRM_SRC,GstDrmSrcClass))
81 #define GST_IS_DRM_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DRM_SRC))
82 #define GST_IS_DRM_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DRM_SRC))
84 typedef struct _GstDrmSrc GstDrmSrc;
85 typedef struct _GstDrmSrcClass GstDrmSrcClass;
93 guint64 read_position;
96 gboolean drm_file; // flag indicating drm file
97 DRM_FILE_HANDLE hfile; // drm file handler
99 gboolean is_playready;
100 gboolean event_posted;
103 struct _GstDrmSrcClass
105 GstBaseSrcClass parent_class;
108 GType gst_drm_src_get_type (void);
112 #endif /* __GST_DRM_SRC_H__ */