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