Example #1
0
static void
gst_wavpack_dec_init (GstWavpackDec * dec)
{
  dec->context = NULL;
  dec->stream_reader = gst_wavpack_stream_reader_new ();

  gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);

  gst_wavpack_dec_reset (dec);
}
Example #2
0
static void
gst_wavpack_dec_init (GstWavpackDec * dec)
{
  dec->context = NULL;
  dec->stream_reader = gst_wavpack_stream_reader_new ();

  gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);
  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
      (dec), TRUE);
  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));

  gst_wavpack_dec_reset (dec);
}
Example #3
0
static gboolean
gst_wavpack_dec_stop (GstAudioDecoder * dec)
{
  GstWavpackDec *wpdec = GST_WAVPACK_DEC (dec);

  GST_DEBUG_OBJECT (dec, "stop");

  if (wpdec->context) {
    WavpackCloseFile (wpdec->context);
    wpdec->context = NULL;
  }

  gst_wavpack_dec_reset (wpdec);

  return TRUE;
}
Example #4
0
static void
gst_wavpack_dec_init (GstWavpackDec * dec, GstWavpackDecClass * gklass)
{
    dec->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink");
    gst_pad_set_chain_function (dec->sinkpad,
                                GST_DEBUG_FUNCPTR (gst_wavpack_dec_chain));
    gst_pad_set_setcaps_function (dec->sinkpad,
                                  GST_DEBUG_FUNCPTR (gst_wavpack_dec_sink_set_caps));
    gst_pad_set_event_function (dec->sinkpad,
                                GST_DEBUG_FUNCPTR (gst_wavpack_dec_sink_event));
    gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad);

    dec->srcpad = gst_pad_new_from_static_template (&src_factory, "src");
    gst_pad_use_fixed_caps (dec->srcpad);
    gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad);

    dec->context = NULL;
    dec->stream_reader = gst_wavpack_stream_reader_new ();

    gst_wavpack_dec_reset (dec);
}
Example #5
0
static GstStateChangeReturn
gst_wavpack_dec_change_state (GstElement * element, GstStateChange transition)
{
    GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
    GstWavpackDec *dec = GST_WAVPACK_DEC (element);

    switch (transition) {
    case GST_STATE_CHANGE_NULL_TO_READY:
        break;
    case GST_STATE_CHANGE_READY_TO_PAUSED:
        break;
    case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
        break;
    default:
        break;
    }

    ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);

    switch (transition) {
    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
        break;
    case GST_STATE_CHANGE_PAUSED_TO_READY:
        if (dec->context) {
            WavpackCloseFile (dec->context);
            dec->context = NULL;
        }

        gst_wavpack_dec_reset (dec);
        break;
    case GST_STATE_CHANGE_READY_TO_NULL:
        break;
    default:
        break;
    }

    return ret;
}