summaryrefslogtreecommitdiffstats
path: root/demux_avi.c
diff options
context:
space:
mode:
authorarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-04-15 03:40:37 +0000
committerarpi_esp <arpi_esp@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-04-15 03:40:37 +0000
commit2ba092874905669f0f8e8fda1b043c73e50db716 (patch)
treef6fb6813964153e16bad3a110c330a3f57ca7f5f /demux_avi.c
parent4eca33639f3d69767e15c92b35fc7387453ae126 (diff)
downloadmpv-2ba092874905669f0f8e8fda1b043c73e50db716.tar.bz2
mpv-2ba092874905669f0f8e8fda1b043c73e50db716.tar.xz
new stream selection code
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@427 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'demux_avi.c')
-rw-r--r--demux_avi.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/demux_avi.c b/demux_avi.c
index 9a847fec23..3a1b564f4c 100644
--- a/demux_avi.c
+++ b/demux_avi.c
@@ -17,8 +17,32 @@ static inline int avi_stream_id(unsigned int id){
// Select ds from ID
static inline demux_stream_t* demux_avi_select_stream(demuxer_t *demux,unsigned int id){
int stream_id=avi_stream_id(id);
- if(stream_id==demux->audio->id) return demux->audio;
- if(stream_id==demux->video->id) return demux->video;
+
+// printf("demux_avi_select_stream(%d) {a:%d/v:%d}\n",stream_id,
+// demux->audio->id,demux->video->id);
+
+ if(demux->video->id==-1)
+ if(avi_header.v_streams[stream_id])
+ demux->video->id=stream_id;
+
+ if(demux->audio->id==-1)
+ if(avi_header.a_streams[stream_id])
+ demux->audio->id=stream_id;
+
+ if(stream_id==demux->audio->id){
+ if(!demux->audio->sh){
+ demux->audio->sh=avi_header.a_streams[stream_id];
+ if(verbose) printf("Auto-selected AVI audio ID = %d\n",demux->audio->id);
+ }
+ return demux->audio;
+ }
+ if(stream_id==demux->video->id){
+ if(!demux->video->sh){
+ demux->video->sh=avi_header.v_streams[stream_id];
+ if(verbose) printf("Auto-selected AVI video ID = %d\n",demux->video->id);
+ }
+ return demux->video;
+ }
if(id!=mmioFOURCC('J','U','N','K')){
// unknown
if(verbose>=2) printf("Unknown chunk: %.4s (%X)\n",&id,id);