summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux_asf.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/demuxers/demux_asf.c b/src/demuxers/demux_asf.c
index b57e28586..3a9910059 100644
--- a/src/demuxers/demux_asf.c
+++ b/src/demuxers/demux_asf.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_asf.c,v 1.182 2006/09/15 21:52:19 tmattern Exp $
+ * $Id: demux_asf.c,v 1.183 2006/09/24 16:29:10 dgp85 Exp $
*
* demultiplexer for asf streams
*
@@ -584,8 +584,8 @@ static int demux_asf_send_headers_common (demux_asf_t *this) {
xprintf(this->stream->xine, XINE_VERBOSITY_DEBUG,
"demux_asf: video stream_id: %d, audio stream_id: %d\n",
- this->asf_header->streams[this->video_stream]->stream_number,
- this->asf_header->streams[this->audio_stream]->stream_number);
+ this->audio_stream != -1 ? this->asf_header->streams[this->video_stream]->stream_number : -1,
+ this->video_stream != -1 ? this->asf_header->streams[this->audio_stream]->stream_number : -1);
if (this->audio_stream != -1) {
_x_stream_info_set(this->stream, XINE_STREAM_INFO_HAS_AUDIO, 1);
@@ -1049,8 +1049,8 @@ static int asf_parse_packet_payload_common(demux_asf_t *this,
for (i = 0; i < this->asf_header->stream_count; i++) {
lprintf ("stream_number = %d\n", this->asf_header->streams[i]->stream_number);
if ((this->asf_header->streams[i]->stream_number == stream_id) &&
- ((stream_id == this->asf_header->streams[this->audio_stream]->stream_number) ||
- (stream_id == this->asf_header->streams[this->video_stream]->stream_number))) {
+ (( this->audio_stream != -1 && stream_id == this->asf_header->streams[this->audio_stream]->stream_number ) ||
+ ( this->video_stream != -1 && stream_id == this->asf_header->streams[this->video_stream]->stream_number ))) {
*stream = &this->streams[i];
break;
}
@@ -1098,7 +1098,7 @@ static int asf_parse_packet_payload_common(demux_asf_t *this,
buf->type = BUF_CONTROL_RESET_DECODER;
(*stream)->fifo->put((*stream)->fifo, buf);
}
- if (stream_id == this->asf_header->streams[this->video_stream]->stream_number) {
+ if (this->video_stream != -1 && stream_id == this->asf_header->streams[this->video_stream]->stream_number) {
lprintf ("bad seq: waiting for keyframe\n");
(*stream)->resync = 1;
@@ -1903,7 +1903,7 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
check_newpts (this, ts * 90, 1, 0);
}
} else if (state == 1) {
- if ((stream_id == this->asf_header->streams[this->audio_stream]->stream_number) && ts &&
+ if ((this->audio_stream != -1 && stream_id == this->asf_header->streams[this->audio_stream]->stream_number) && ts &&
(ts <= this->keyframe_ts)) {
lprintf ("demux_asf_seek: audio packet found at %lld, ts = %lld\n", start_pos, ts);
@@ -1911,7 +1911,7 @@ static int demux_asf_seek (demux_plugin_t *this_gen,
break;
}
} else if (state == 2) {
- if ((stream_id == this->asf_header->streams[this->audio_stream]->stream_number) && !frag_offset) {
+ if ((this->audio_stream != -1 && stream_id == this->asf_header->streams[this->audio_stream]->stream_number) && !frag_offset) {
this->keyframe_found = 1;
this->keyframe_ts = ts;
state = 5; /* end */