dvdemux

dvdemux — Uses libdv to separate DV audio from DV video (libdv.sourceforge.net)

Synopsis

                    GstDVDemux;

Description

dvdemux splits raw DV into its audio and video components. The audio will be decoded raw samples and the video will be encoded DV video.

This element can operate in both push and pull mode depending on the capabilities of the upstream peer.

Example launch line

1
gst-launch filesrc location=test.dv ! dvdemux name=demux ! queue ! audioconvert ! alsasink demux. ! queue ! dvdec ! xvimagesink
This pipeline decodes and renders the raw DV stream to an audio and a videosink.

Last reviewed on 2006-02-27 (0.10.3)

Details

GstDVDemux

typedef struct {
  GstElement     element;

  GstPad        *sinkpad;
  GstPad        *videosrcpad;
  GstPad        *audiosrcpad;

  dv_decoder_t  *decoder;

  GstAdapter    *adapter;
  gint           frame_len;

  /* video params */
  gint           framerate_numerator;
  gint           framerate_denominator;
  gint           height;
  gboolean       wide;
  /* audio params */
  gint           frequency;
  gint           channels;

  gint           framecount;
  
  gint64         frame_offset;
  gint64         audio_offset;
  gint64         video_offset;

  GstDVDemuxSeekHandler seek_handler;
  GstSegment     byte_segment;
  GstSegment     time_segment;
  gboolean       running;
  gboolean       need_segment;
  gboolean       new_media;
  int            frames_since_new_media;
  
  gint           found_header; /* ATOMIC */
  GstEvent      *seek_event;
  GstEvent *pending_segment;

  gint16        *audio_buffers[4];
} GstDVDemux;