ducatividdec: remove another leftover -strided caps remnant
[glsdk/gst-plugin-ducati.git] / src / gstducatividenc.h
1 /*
2  * GStreamer
3  * Copyright (c) 2010, Texas Instruments Incorporated
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation
8  * version 2.1 of the License.
9  *
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  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
18  */
20 #ifndef __GST_DUCATIVIDENC_H__
21 #define __GST_DUCATIVIDENC_H__
23 #include <gst/gst.h>
24 #include <gst/video/video.h>
25 #include <gst/video/gstbasevideoencoder.h>
26 #include <gst/video/gstbasevideoutils.h>
27 #include <gst/drm/gstdrmbufferpool.h>
29 #include <ti/sdo/ce/video2/videnc2.h>
32 #define GST_TYPE_DUCATIVIDENC \
33   (gst_ducati_videnc_get_type())
34 #define GST_DUCATIVIDENC(obj) \
35   (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DUCATIVIDENC,GstDucatiVidEnc))
36 #define GST_DUCATIVIDENC_CLASS(klass) \
37   (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DUCATIVIDENC,GstDucatiVidEncClass))
38 #define GST_IS_DUCATIVIDENC(obj) \
39   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DUCATIVIDENC))
40 #define GST_IS_DUCATIVIDENC_CLASS(obj) \
41   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DUCATIVIDENC))
42 #define GST_DUCATIVIDENC_GET_CLASS(obj) \
43   (G_TYPE_INSTANCE_GET_CLASS((obj), GST_TYPE_DUCATIVIDENC, GstDucatiVidEncClass))
45 typedef struct _GstDucatiVidEnc GstDucatiVidEnc;
46 typedef struct _GstDucatiVidEncClass GstDucatiVidEncClass;
48 typedef struct {
49   gint x;
50   gint y;
51   gint w;
52   gint h;
53 } GstDucatiVideoRectangle;
55 struct _GstDucatiVidEnc
56 {
57   GstBaseVideoEncoder base_encoder;
59   GstPad *sinkpad;
60   GstPad *srcpad;
62   struct omap_device *device;
63   Engine_Handle engine;
64   VIDENC2_Handle codec;
65   IVIDENC2_Params *params;
66   IVIDENC2_DynamicParams *dynParams;
67   IVIDENC2_Status *status;
68   IVIDEO2_BufDesc *inBufs;
69   XDM2_BufDesc *outBufs;
70   IVIDENC2_InArgs *inArgs;
71   IVIDENC2_OutArgs *outArgs;
73   GstDRMBufferPool *input_pool;
74   GstDRMBufferPool *output_pool;
75   gboolean configure;
77   GstDucatiVideoRectangle rect;
79   gint bitrate;
80   guint rate_preset;
81   guint intra_interval;
82 };
84 struct _GstDucatiVidEncClass
85 {
86   GstBaseVideoEncoderClass parent_class;
88   const gchar *codec_name;
89   gboolean (*allocate_params) (GstDucatiVidEnc * self, gint params_sz,
90       gint dynparams_sz, gint status_sz, gint inargs_sz, gint outargs_sz);
91   gboolean (*configure) (GstDucatiVidEnc * self);
92   gboolean (*is_sync_point) (GstDucatiVidEnc * self, int type);
93 };
95 GType gst_ducati_videnc_get_type (void);
97 #endif