Mercurial > mplayer.hg
comparison libmpdemux/demux_ts.c @ 19540:70a5e89ea4cd
Get rid of demux_aid_vid_mismatch mess.
author | reimar |
---|---|
date | Sat, 26 Aug 2006 19:17:04 +0000 |
parents | 45e1650f9ad5 |
children | cc316541564f |
comparison
equal
deleted
inserted
replaced
19539:64009ae411fb | 19540:70a5e89ea4cd |
---|---|
60 | 60 |
61 int ts_prog; | 61 int ts_prog; |
62 int ts_keep_broken=0; | 62 int ts_keep_broken=0; |
63 off_t ts_probe = TS_MAX_PROBE_SIZE; | 63 off_t ts_probe = TS_MAX_PROBE_SIZE; |
64 extern char *dvdsub_lang, *audio_lang; //for -alang | 64 extern char *dvdsub_lang, *audio_lang; //for -alang |
65 extern int demux_aid_vid_mismatch; | |
66 | 65 |
67 typedef enum | 66 typedef enum |
68 { | 67 { |
69 UNKNOWN = -1, | 68 UNKNOWN = -1, |
70 VIDEO_MPEG1 = 0x10000001, | 69 VIDEO_MPEG1 = 0x10000001, |
933 | 932 |
934 demuxer->video->id = params.vpid; | 933 demuxer->video->id = params.vpid; |
935 demuxer->sub->id = params.spid; | 934 demuxer->sub->id = params.spid; |
936 priv->prog = params.prog; | 935 priv->prog = params.prog; |
937 | 936 |
938 demux_aid_vid_mismatch = 1; // don't identify in new_sh_* since ids don't match | |
939 | |
940 if(params.vtype != UNKNOWN) | 937 if(params.vtype != UNKNOWN) |
941 { | 938 { |
942 ES_stream_t *es = priv->ts.pids[params.vpid]; | 939 ES_stream_t *es = priv->ts.pids[params.vpid]; |
943 sh_video = new_sh_video(demuxer, 0); | 940 sh_video = new_sh_video_vid(demuxer, 0, es->pid); |
944 if(params.vtype == VIDEO_AVC && es->extradata && es->extradata_len) | 941 if(params.vtype == VIDEO_AVC && es->extradata && es->extradata_len) |
945 { | 942 { |
946 int w = 0, h = 0; | 943 int w = 0, h = 0; |
947 sh_video->bih = (BITMAPINFOHEADER *) calloc(1, sizeof(BITMAPINFOHEADER) + es->extradata_len); | 944 sh_video->bih = (BITMAPINFOHEADER *) calloc(1, sizeof(BITMAPINFOHEADER) + es->extradata_len); |
948 sh_video->bih->biSize= sizeof(BITMAPINFOHEADER) + es->extradata_len; | 945 sh_video->bih->biSize= sizeof(BITMAPINFOHEADER) + es->extradata_len; |
964 } | 961 } |
965 | 962 |
966 if(params.atype != UNKNOWN) | 963 if(params.atype != UNKNOWN) |
967 { | 964 { |
968 ES_stream_t *es = priv->ts.pids[params.apid]; | 965 ES_stream_t *es = priv->ts.pids[params.apid]; |
969 sh_audio = new_sh_audio(demuxer, 0); | 966 sh_audio = new_sh_audio_aid(demuxer, 0, es->pid); |
970 priv->ts.streams[params.apid].id = 0; | 967 priv->ts.streams[params.apid].id = 0; |
971 priv->ts.streams[params.apid].sh = sh_audio; | 968 priv->ts.streams[params.apid].sh = sh_audio; |
972 priv->ts.streams[params.apid].type = TYPE_AUDIO; | 969 priv->ts.streams[params.apid].type = TYPE_AUDIO; |
973 priv->last_aid = 0; | 970 priv->last_aid = 0; |
974 demuxer->audio->id = 0; | 971 demuxer->audio->id = 0; |
2754 // PES CONTENT STARTS HERE | 2751 // PES CONTENT STARTS HERE |
2755 if(! probe) | 2752 if(! probe) |
2756 { | 2753 { |
2757 if((IS_AUDIO(tss->type) || IS_AUDIO(tss->subtype)) && is_start && !priv->ts.streams[pid].sh && priv->last_aid+1 < MAX_A_STREAMS) | 2754 if((IS_AUDIO(tss->type) || IS_AUDIO(tss->subtype)) && is_start && !priv->ts.streams[pid].sh && priv->last_aid+1 < MAX_A_STREAMS) |
2758 { | 2755 { |
2759 sh_audio_t *sh = new_sh_audio(demuxer, priv->last_aid+1); | 2756 sh_audio_t *sh = new_sh_audio_aid(demuxer, priv->last_aid+1, pid); |
2760 if(sh) | 2757 if(sh) |
2761 { | 2758 { |
2762 sh->format = IS_AUDIO(tss->type) ? tss->type : tss->subtype; | 2759 sh->format = IS_AUDIO(tss->type) ? tss->type : tss->subtype; |
2763 sh->ds = demuxer->audio; | 2760 sh->ds = demuxer->audio; |
2764 | 2761 |