gst_nokia_speech/gstframedaudioenc.h
author hgs
Fri, 14 May 2010 18:43:44 -0500
changeset 20 7e3786c5ed27
parent 16 8e837d1bf446
permissions -rw-r--r--
201019
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
hgs
parents:
diff changeset
     1
/* GStreamer Framed Audio Encoder
hgs
parents:
diff changeset
     2
 * Copyright 2009 Collabora Ltd,
hgs
parents:
diff changeset
     3
 * Copyright 2009 Nokia Corporation
hgs
parents:
diff changeset
     4
 *  @author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>.
hgs
parents:
diff changeset
     5
 *
hgs
parents:
diff changeset
     6
 * This library is free software; you can redistribute it and/or
hgs
parents:
diff changeset
     7
 * modify it under the terms of the GNU Library General Public
hgs
parents:
diff changeset
     8
 * License as published by the Free Software Foundation; either
hgs
parents:
diff changeset
     9
 * version 2 of the License, or (at your option) any later version.
hgs
parents:
diff changeset
    10
 *
hgs
parents:
diff changeset
    11
 * This library is distributed in the hope that it will be useful,
hgs
parents:
diff changeset
    12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents:
diff changeset
    13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
hgs
parents:
diff changeset
    14
 * Library General Public License for more details.
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
 * You should have received a copy of the GNU Library General Public
hgs
parents:
diff changeset
    17
 * License along with this library; if not, write to the
hgs
parents:
diff changeset
    18
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
hgs
parents:
diff changeset
    19
 * Boston, MA 02111-1307, USA.
hgs
parents:
diff changeset
    20
 */
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#ifndef __GST_FRAMED_AUDIO_ENC_H__
hgs
parents:
diff changeset
    23
#define __GST_FRAMED_AUDIO_ENC_H__
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include <gst/gst.h>
hgs
parents:
diff changeset
    26
#include <gst/base/gstadapter.h>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
G_BEGIN_DECLS
hgs
parents:
diff changeset
    29
hgs
parents:
diff changeset
    30
typedef struct _GstNokiaFramedAudioEnc      GstNokiaFramedAudioEnc;
hgs
parents:
diff changeset
    31
typedef struct _GstNokiaFramedAudioEncClass GstNokiaFramedAudioEncClass;
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
typedef GstNokiaFramedAudioEnc      GstFramedAudioEnc;
hgs
parents:
diff changeset
    34
typedef GstNokiaFramedAudioEncClass GstFramedAudioEncClass;
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
struct _GstNokiaFramedAudioEnc
hgs
parents:
diff changeset
    37
{
hgs
parents:
diff changeset
    38
  /* helper for this element */
hgs
parents:
diff changeset
    39
  GstElement *element;
hgs
parents:
diff changeset
    40
hgs
parents:
diff changeset
    41
  /* private stuff */
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
  /* pad with incoming data */
hgs
parents:
diff changeset
    44
  GstPad *sinkpad;
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
  GstAdapter *adapter;
hgs
parents:
diff changeset
    47
  GstClockTime next_ts;
hgs
parents:
diff changeset
    48
};
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
typedef enum _GstDtxDecision {
hgs
parents:
diff changeset
    51
  GST_DTX_DECISION_VOICE,
hgs
parents:
diff changeset
    52
  GST_DTX_DECISION_SID_UPDATE,
hgs
parents:
diff changeset
    53
  GST_DTX_DECISION_SID_NONE
hgs
parents:
diff changeset
    54
} GstDtxDecision;
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
void      gst_framed_audio_enc_init (GstFramedAudioEnc * enc, GstElement * element,
hgs
parents:
diff changeset
    57
          GstDebugCategory * cat);
hgs
parents:
diff changeset
    58
void      gst_framed_audio_enc_reset (GstFramedAudioEnc * enc);
hgs
parents:
diff changeset
    59
void      gst_framed_audio_enc_finalize (GstFramedAudioEnc * enc);
hgs
parents:
diff changeset
    60
GstPad *  gst_framed_audio_enc_request_new_pad (GstFramedAudioEnc * enc,
hgs
parents:
diff changeset
    61
          GstPadTemplate * templ, const gchar * req_name, GstPad ** pad_p);
hgs
parents:
diff changeset
    62
void      gst_framed_audio_enc_release_pad (GstFramedAudioEnc * enc, GstPad * pad,
hgs
parents:
diff changeset
    63
          GstPad ** pad_p, void (disable_cn) (GstElement *));
hgs
parents:
diff changeset
    64
gboolean  gst_framed_audio_enc_sink_event (GstPad * pad, GstEvent * event);
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
G_END_DECLS
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68
#endif /* __GST_FRAMED_AUDIO_ENC_H__ */