2 * GStreamer codec plugin for Tizen Emulator.
4 * Copyright (C) 2013 Samsung Electronics Co., Ltd. All rights reserved.
7 * KiTae Kim <kt920.kim@samsung.com>
8 * SeokYeon Hwang <syeon.hwang@samsung.com>
9 * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
11 * This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Library General Public
13 * License as published by the Free Software Foundation; either
14 * version 2 of the License, or (at your option) any later version.
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Library General Public License for more details.
21 * You should have received a copy of the GNU Library General Public
22 * License along with this library; if not, write to the
23 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
24 * Boston, MA 02111-1307, USA.
31 #ifndef __GST_MARU_INTERFACE_H__
32 #define __GST_MARU_INTERFACE_H__
36 #define MAX_TS_MASK 0xff
41 GstClockTime timestamp;
42 GstClockTime duration;
46 typedef struct _GstMaruDec
53 CodecContext *context;
59 gint clip_width, clip_height;
62 gint old_fps_n, old_fps_d;
65 enum PixelFormat pix_fmt;
78 /* tracking DTS/PTS */
79 GstClockTime next_out;
83 GstClockTime earliest_time;
88 /* GstSegment can be used for two purposes:
89 * 1. performing seeks (handling seek events)
90 * 2. tracking playback regions (handling newsegment events)
94 GstTSInfo ts_info[MAX_TS_MASK + 1];
97 /* reverse playback queue */
103 codec_init (CodecContext *ctx, CodecElement *codec, CodecDevice *dev);
106 codec_deinit (CodecContext *ctx, CodecDevice *dev);
109 codec_decode_video (CodecContext *ctx, uint8_t *in_buf, int in_size,
110 gint idx, gint64 in_offset, GstBuffer **out_buf,
111 int *got_picture_ptr, CodecDevice *dev);
115 codec_decode_audio (CodecContext *ctx, int16_t *samples,
116 int *frame_size_ptr, uint8_t *in_buf,
117 int in_size, CodecDevice *dev);
120 codec_encode_video (CodecContext *ctx, uint8_t*out_buf,
121 int out_size, uint8_t *in_buf,
122 int in_size, int64_t in_timestamp,
126 codec_encode_audio (CodecContext *ctx, uint8_t *out_buf,
127 int out_size, uint8_t *in_buf,
128 int in_size, CodecDevice *dev);
131 codec_picture_copy (CodecContext *ctx, uint8_t *pict,
132 uint32_t pict_size, CodecDevice *dev);
135 codec_flush_buffers (CodecContext *ctx, CodecDevice *dev);
138 codec_buffer_alloc_and_copy (GstPad *pad, guint64 offset,
139 guint size, GstCaps *caps, GstBuffer **buf);
141 #endif /* __GST_MARU_INTERFACE_H__ */