summaryrefslogtreecommitdiff
path: root/src/demuxers/demux_cda.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/demuxers/demux_cda.c')
-rw-r--r--src/demuxers/demux_cda.c300
1 files changed, 0 insertions, 300 deletions
diff --git a/src/demuxers/demux_cda.c b/src/demuxers/demux_cda.c
deleted file mode 100644
index d49bb56c0..000000000
--- a/src/demuxers/demux_cda.c
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
- * Copyright (C) 2000-2002 the xine project
- *
- * This file is part of xine, a free video player.
- *
- * xine is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * xine is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- *
- * $Id: demux_cda.c,v 1.41 2003/01/23 16:12:02 miguelfreitas Exp $
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "xine_internal.h"
-#include "xineutils.h"
-#include "compat.h"
-#include "demux.h"
-
-typedef struct {
-
- demux_plugin_t demux_plugin;
-
- xine_stream_t *stream;
-
- config_values_t *config;
-
- fifo_buffer_t *video_fifo;
- fifo_buffer_t *audio_fifo;
-
- input_plugin_t *input;
-
- off_t start;
-
- int status;
- int blocksize;
-
- char last_mrl[1024];
-} demux_cda_t ;
-
-typedef struct {
-
- demux_class_t demux_class;
-
- /* class-wide, global variables here */
-
- xine_t *xine;
- config_values_t *config;
-} demux_cda_class_t;
-
-/*
- *
- */
-static int demux_cda_next (demux_cda_t *this) {
- buf_element_t *buf;
- int pos, len;
-
- buf = this->input->read_block(this->input, this->video_fifo, this->blocksize);
-
- pos = this->input->get_current_pos(this->input);
- len = this->input->get_length(this->input);
-
- buf->pts = 0;
- buf->extra_info->input_pos = pos;
- buf->extra_info->input_time = (int)((int64_t)buf->extra_info->input_pos
- * 1000 / this->blocksize);
- buf->type = BUF_CONTROL_NOP; /* Fake */
-
- this->video_fifo->put(this->video_fifo, buf);
-
- return ((pos < len));
-}
-
-/*
- *
- */
-static int demux_cda_send_chunk (demux_plugin_t *this_gen) {
- demux_cda_t *this = (demux_cda_t *) this_gen;
-
- if (!demux_cda_next(this))
- this->status = DEMUX_FINISHED;
-
- return this->status;
-}
-
-/*
- *
- */
-static int demux_cda_seek (demux_plugin_t *this_gen,
- off_t start_pos, int start_time) {
- demux_cda_t *this = (demux_cda_t *) this_gen;
-
- this->start = start_pos;
-
- this->blocksize = this->input->get_blocksize(this->input);
-
- /*
- * now start demuxing
- */
- this->input->seek(this->input, this->start, SEEK_SET);
-
- this->status = DEMUX_OK;
-
- return this->status;
-}
-
-/*
- *
- */
-static void demux_cda_send_headers(demux_plugin_t *this_gen) {
-
- demux_cda_t *this = (demux_cda_t *) this_gen;
-
- this->video_fifo = this->stream->video_fifo;
- this->audio_fifo = this->stream->audio_fifo;
-
- this->status = DEMUX_OK;
-
- xine_demux_control_start(this->stream);
-
- /* hardwired stream information */
- this->stream->stream_info[XINE_STREAM_INFO_HAS_VIDEO] = 0;
- this->stream->stream_info[XINE_STREAM_INFO_HAS_AUDIO] = 1;
- this->stream->stream_info[XINE_STREAM_INFO_AUDIO_CHANNELS] = 2;
- this->stream->stream_info[XINE_STREAM_INFO_AUDIO_SAMPLERATE] = 44100;
- this->stream->stream_info[XINE_STREAM_INFO_AUDIO_BITS] = 16;
-}
-
-/*
- *
- */
-static void demux_cda_dispose (demux_plugin_t *this) {
- free (this);
-}
-
-/*
- *
- */
-static int demux_cda_get_status (demux_plugin_t *this_gen) {
- demux_cda_t *this = (demux_cda_t *) this_gen;
-
- return this->status;
-}
-
-/*
- *
- */
-static int demux_cda_get_stream_length (demux_plugin_t *this_gen) {
-
- return 0;
-}
-
-static uint32_t demux_cda_get_capabilities(demux_plugin_t *this_gen) {
- return DEMUX_CAP_NOCAP;
-}
-
-static int demux_cda_get_optional_data(demux_plugin_t *this_gen,
- void *data, int data_type) {
- return DEMUX_OPTIONAL_UNSUPPORTED;
-}
-
-static demux_plugin_t *open_plugin (demux_class_t *class_gen, xine_stream_t *stream,
- input_plugin_t *input_gen) {
-
- input_plugin_t *input = (input_plugin_t *) input_gen;
- demux_cda_t *this;
-
- if (! (input->get_capabilities(input) & INPUT_CAP_SEEKABLE)) {
- printf(_("demux_cda.c: input not seekable, can not handle!\n"));
- return NULL;
- }
-
- this = xine_xmalloc (sizeof (demux_cda_t));
- this->stream = stream;
- this->input = input;
-
- this->demux_plugin.send_headers = demux_cda_send_headers;
- this->demux_plugin.send_chunk = demux_cda_send_chunk;
- this->demux_plugin.seek = demux_cda_seek;
- this->demux_plugin.dispose = demux_cda_dispose;
- this->demux_plugin.get_status = demux_cda_get_status;
- this->demux_plugin.get_stream_length = demux_cda_get_stream_length;
- this->demux_plugin.get_video_frame = NULL;
- this->demux_plugin.got_video_frame_cb= NULL;
- this->demux_plugin.get_capabilities = demux_cda_get_capabilities;
- this->demux_plugin.get_optional_data = demux_cda_get_optional_data;
- this->demux_plugin.demux_class = class_gen;
-
- this->status = DEMUX_FINISHED;
-
- switch (stream->content_detection_method) {
-
- case METHOD_BY_CONTENT:
-
- /* for CD audio, there is no content to validate */
- free (this);
- return NULL;
-
- break;
-
- case METHOD_BY_EXTENSION: {
- char *media;
- char *MRL = input->get_mrl(input);
-
- media = strstr(MRL, ":/");
- if (media) {
- if(strncasecmp(MRL, "cda", 3) != 0) {
- free (this);
- return NULL;
- }
- } else {
- free (this);
- return NULL;
- }
- }
- break;
-
- case METHOD_EXPLICIT:
- break;
-
- default:
- free (this);
- return NULL;
- }
-
- strncpy (this->last_mrl, input->get_mrl (input), 1024);
-
- return &this->demux_plugin;
-}
-
-static char *get_description (demux_class_t *this_gen) {
- return "CD audio demux plugin";
-}
-
-static char *get_identifier (demux_class_t *this_gen) {
- return "CDA";
-}
-
-static char *get_extensions (demux_class_t *this_gen) {
- return NULL;
-}
-
-static char *get_mimetypes (demux_class_t *this_gen) {
- return NULL;
-}
-
-static void class_dispose (demux_class_t *this_gen) {
-
- demux_cda_class_t *this = (demux_cda_class_t *) this_gen;
-
- free (this);
-}
-
-void *demux_cda_init_plugin (xine_t *xine, void *data) {
-
- demux_cda_class_t *this;
-
- this = xine_xmalloc (sizeof (demux_cda_class_t));
- this->config = xine->config;
- this->xine = xine;
-
- this->demux_class.open_plugin = open_plugin;
- this->demux_class.get_description = get_description;
- this->demux_class.get_identifier = get_identifier;
- this->demux_class.get_mimetypes = get_mimetypes;
- this->demux_class.get_extensions = get_extensions;
- this->demux_class.dispose = class_dispose;
-
- return this;
-}
-
-/*
- * exported plugin catalog entry
- */
-
-#if 0
-plugin_info_t xine_plugin_info[] = {
- /* type, API, "name", version, special_info, init_function */
- { PLUGIN_DEMUX, 20, "cda", XINE_VERSION_CODE, NULL, demux_cda_init_plugin },
- { PLUGIN_NONE, 0, "", 0, NULL, NULL }
-};
-#endif