summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux_mpeg_block.c9
-rw-r--r--src/xine-engine/video_decoder.c27
2 files changed, 28 insertions, 8 deletions
diff --git a/src/demuxers/demux_mpeg_block.c b/src/demuxers/demux_mpeg_block.c
index 820e4a1fa..3affa3368 100644
--- a/src/demuxers/demux_mpeg_block.c
+++ b/src/demuxers/demux_mpeg_block.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: demux_mpeg_block.c,v 1.73 2002/01/15 13:51:10 guenter Exp $
+ * $Id: demux_mpeg_block.c,v 1.74 2002/01/25 00:35:46 f1rmb Exp $
*
* demultiplexer for mpeg 1/2 program streams
*
@@ -849,11 +849,12 @@ static void demux_mpeg_block_start (demux_plugin_t *this_gen,
buf = this->video_fifo->buffer_pool_alloc (this->video_fifo);
- if(this->input->get_optional_data(this->input, buf->mem,
- INPUT_OPTIONAL_DATA_CLUT) == INPUT_OPTIONAL_SUCCESS) {
+ if ((this->input->get_capabilities(this->input) & INPUT_CAP_CLUT) &&
+ ((this->input->get_optional_data(this->input, buf->mem, INPUT_OPTIONAL_DATA_CLUT)
+ == INPUT_OPTIONAL_SUCCESS))) {
buf->type = BUF_SPU_CLUT;
buf->content = buf->mem;
-
+
this->video_fifo->put(this->video_fifo, buf);
} else {
buf->free_buffer(buf);
diff --git a/src/xine-engine/video_decoder.c b/src/xine-engine/video_decoder.c
index d4fef6664..6c0f1db43 100644
--- a/src/xine-engine/video_decoder.c
+++ b/src/xine-engine/video_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: video_decoder.c,v 1.70 2002/01/14 00:34:22 guenter Exp $
+ * $Id: video_decoder.c,v 1.71 2002/01/25 00:35:46 f1rmb Exp $
*
*/
@@ -127,9 +127,19 @@ void *video_decoder_loop (void *this_gen) {
break;
case BUF_CONTROL_SPU_CHANNEL:
- this->spu_channel_auto = buf->decoder_info[0];
- if (this->spu_channel_user == -1)
- this->spu_channel = this->spu_channel_auto;
+ {
+ xine_ui_event_t ui_event;
+
+ this->spu_channel_auto = buf->decoder_info[0];
+ if (this->spu_channel_user == -1)
+ this->spu_channel = this->spu_channel_auto;
+
+ /* Inform UI of SPU channel changes */
+ ui_event.event.type = XINE_EVENT_UI_CHANNELS_CHANGED;
+ ui_event.data = NULL;
+ xine_send_event(this, &ui_event.event);
+
+ }
break;
case BUF_CONTROL_END:
@@ -199,6 +209,15 @@ void *video_decoder_loop (void *this_gen) {
break;
case BUF_CONTROL_AUDIO_CHANNEL:
+ {
+ xine_ui_event_t ui_event;
+ /* Inform UI of AUDIO channel changes */
+ ui_event.event.type = XINE_EVENT_UI_CHANNELS_CHANGED;
+ ui_event.data = NULL;
+ xine_send_event(this, &ui_event.event);
+ }
+ break;
+
case BUF_CONTROL_NOP:
break;