summaryrefslogtreecommitdiff
path: root/src/xine-engine
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2001-12-11 15:30:05 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2001-12-11 15:30:05 +0000
commit7c6b15eb257aa005e3d01394c09ca1f48e0f7ab7 (patch)
tree58f548c3419ac4fee61fc00c5833002c400ccf43 /src/xine-engine
parent1416e359d0bfcb59d2021d3904b50dc55bbfe466 (diff)
downloadxine-lib-7c6b15eb257aa005e3d01394c09ca1f48e0f7ab7.tar.gz
xine-lib-7c6b15eb257aa005e3d01394c09ca1f48e0f7ab7.tar.bz2
audio_decoder->reset() on discontinuities
CVS patchset: 1221 CVS date: 2001/12/11 15:30:05
Diffstat (limited to 'src/xine-engine')
-rw-r--r--src/xine-engine/audio_decoder.c21
-rw-r--r--src/xine-engine/xine_internal.h6
2 files changed, 6 insertions, 21 deletions
diff --git a/src/xine-engine/audio_decoder.c b/src/xine-engine/audio_decoder.c
index b2bc1ac89..fa6a3582b 100644
--- a/src/xine-engine/audio_decoder.c
+++ b/src/xine-engine/audio_decoder.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: audio_decoder.c,v 1.56 2001/11/20 12:41:57 miguelfreitas Exp $
+ * $Id: audio_decoder.c,v 1.57 2001/12/11 15:30:06 miguelfreitas Exp $
*
*
* functions that implement audio decoding
@@ -137,11 +137,8 @@ void *audio_decoder_loop (void *this_gen) {
case BUF_CONTROL_AVSYNC_RESET:
printf ("audio_decoder: discontinuity ahead\n");
- /* fixme ? */
if (this->cur_audio_decoder_plugin) {
- this->cur_audio_decoder_plugin->close (this->cur_audio_decoder_plugin);
- this->cur_audio_decoder_plugin = NULL;
- this->audio_type = 0;
+ this->cur_audio_decoder_plugin->reset (this->cur_audio_decoder_plugin);
}
this->metronom->expect_audio_discontinuity (this->metronom);
@@ -157,20 +154,6 @@ void *audio_decoder_loop (void *this_gen) {
default:
-#if 0
- while (this->audio_mute==2) {
- xine_usec_sleep (50000);
- }
-
- if (this->audio_mute) {
- /*
- lrb_add (this->audio_temp, buf);
- continue;
- */
- break;
- }
-#endif
-
xine_profiler_start_count (prof_audio_decode);
if ( (buf->type & 0xFF000000) == BUF_AUDIO_BASE ) {
diff --git a/src/xine-engine/xine_internal.h b/src/xine-engine/xine_internal.h
index 140db9a71..c091cbb61 100644
--- a/src/xine-engine/xine_internal.h
+++ b/src/xine-engine/xine_internal.h
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine_internal.h,v 1.62 2001/12/09 18:03:26 guenter Exp $
+ * $Id: xine_internal.h,v 1.63 2001/12/11 15:30:06 miguelfreitas Exp $
*
*/
@@ -54,7 +54,7 @@ extern "C" {
#define INPUT_PLUGIN_MAX 50
#define DEMUXER_PLUGIN_MAX 50
#define DECODER_PLUGIN_MAX 256
-#define DECODER_PLUGIN_IFACE_VERSION 3
+#define DECODER_PLUGIN_IFACE_VERSION 4
#define AUDIO_OUT_PLUGIN_MAX 50
#define VIDEO_OUT_PLUGIN_MAX 50
#define XINE_MAX_EVENT_LISTENERS 50
@@ -111,6 +111,8 @@ struct audio_decoder_s {
void (*decode_data) (audio_decoder_t *this, buf_element_t *buf);
+ void (*reset) (audio_decoder_t *this);
+
void (*close) (audio_decoder_t *this);
char* (*get_identifier) (void);