[MPlayer-cvslog] CVS: main/libmpdemux demux_mkv.c, 1.27, 1.28 demux_ogg.c, 1.61, 1.62 demux_ts.c, 1.22, 1.23 demuxer.c, 1.175, 1.176 open.c, 1.99, 1.100
Moritz Bunkus CVS
syncmail at mplayerhq.hu
Thu Nov 25 23:24:02 CET 2004
- Previous message: [MPlayer-cvslog] CVS: main configure,1.941,1.942
- Next message: [MPlayer-cvslog] CVS: main mencoder.c, 1.257, 1.258 mp_msg.h, 1.31, 1.32 mplayer.c, 1.813, 1.814 vobsub.c, 1.38, 1.39
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
CVS change done by Moritz Bunkus CVS
Update of /cvsroot/mplayer/main/libmpdemux
In directory mail:/var2/tmp/cvs-serv21559/libmpdemux
Modified Files:
demux_mkv.c demux_ogg.c demux_ts.c demuxer.c open.c
Log Message:
Output more information about vids, aids, sids, alangs and slangs with -identify. Patch by kiriuja <mplayer-patches at en-directo.net>
Index: demux_mkv.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_mkv.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- demux_mkv.c 30 Oct 2004 08:47:04 -0000 1.27
+++ demux_mkv.c 25 Nov 2004 22:24:00 -0000 1.28
@@ -228,6 +228,7 @@
extern char *dvdsub_lang;
extern char *audio_lang;
extern int dvdsub_id;
+extern int demux_aid_vid_mismatch;
static mkv_track_t *
@@ -1484,14 +1485,26 @@
{
case MATROSKA_TRACK_VIDEO:
type = "video";
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", vid);
sprintf (str, "-vid %u", vid++);
break;
case MATROSKA_TRACK_AUDIO:
type = "audio";
+ if (identify)
+ {
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", aid);
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AID_%d_LANG=%s\n", aid, mkv_d->tracks[i]->language);
+ }
sprintf (str, "-aid %u, -alang %.5s",aid++,mkv_d->tracks[i]->language);
break;
case MATROSKA_TRACK_SUBTITLE:
type = "subtitles";
+ if (identify)
+ {
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", sid);
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SID_%d_LANG=%s\n", sid, mkv_d->tracks[i]->language);
+ }
sprintf (str, "-sid %u, -slang %.5s",sid++,mkv_d->tracks[i]->language);
break;
}
@@ -2097,6 +2110,8 @@
mp_msg (MSGT_DEMUX, MSGL_V, "[mkv] + a segment...\n");
+ demux_aid_vid_mismatch = 1; // don't identify in new_sh_* since ids don't match
+
mkv_d = (mkv_demuxer_t *) malloc (sizeof (mkv_demuxer_t));
memset (mkv_d, 0, sizeof(mkv_demuxer_t));
demuxer->priv = mkv_d;
Index: demux_ogg.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_ogg.c,v
retrieving revision 1.61
retrieving revision 1.62
diff -u -r1.61 -r1.62
--- demux_ogg.c 5 Nov 2004 21:40:34 -0000 1.61
+++ demux_ogg.c 25 Nov 2004 22:24:00 -0000 1.62
@@ -116,6 +116,7 @@
int theora;
int flac;
int text;
+ int id;
} ogg_stream_t;
typedef struct ogg_demuxer {
@@ -150,6 +151,7 @@
extern char *dvdsub_lang, *audio_lang;
extern int dvdsub_id;
+extern int demux_aid_vid_mismatch;
//-------- subtitle support - should be moved to decoder layer, and queue
// - subtitles up in demuxer buffer...
@@ -448,6 +450,13 @@
else if (!strncasecmp(*cmt, "LANGUAGE=", 9))
{
val = *cmt + 9;
+ if (identify)
+ {
+ if (ogg_d->subs[id].text)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SID_%d_LANG=%s\n", ogg_d->subs[id].id, val);
+ else if (id != d->video->id)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AID_%d_LANG=%s\n", ogg_d->subs[id].id, val);
+ }
// copy this language name into the array
index = demux_ogg_sub_reverse_id(d, id);
if (index >= 0) {
@@ -797,11 +806,16 @@
sh_a = NULL;
sh_v = NULL;
+ demux_aid_vid_mismatch = 1; // don't identify in new_sh_* since ids don't match
+
// Check for Vorbis
if(pack.bytes >= 7 && ! strncmp(&pack.packet[1],"vorbis", 6) ) {
sh_a = new_sh_audio(demuxer,ogg_d->num_sub);
sh_a->format = 0xFFFE;
ogg_d->subs[ogg_d->num_sub].vorbis = 1;
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+ ogg_d->subs[ogg_d->num_sub].id = n_audio;
n_audio++;
mp_msg(MSGT_DEMUX,MSGL_V,"Ogg : stream %d is vorbis\n",ogg_d->num_sub);
@@ -839,6 +853,9 @@
sh_v->bih->biWidth*sh_v->bih->biHeight);
ogg_d->subs[ogg_d->num_sub].samplerate = sh_v->fps;
ogg_d->subs[ogg_d->num_sub].theora = 1;
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
+ ogg_d->subs[ogg_d->num_sub].id = n_video;
n_video++;
mp_msg(MSGT_DEMUX,MSGL_V,
"Ogg : stream %d is theora v%i.%i.%i %i:%i, %.3f FPS,"
@@ -856,6 +873,9 @@
} else if (pack.bytes >= 4 && !strncmp (&pack.packet[0], "fLaC", 4)) {
sh_a = new_sh_audio(demuxer,ogg_d->num_sub);
sh_a->format = mmioFOURCC('f', 'L', 'a', 'C');
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+ ogg_d->subs[ogg_d->num_sub].id = n_audio;
n_audio++;
ogg_d->subs[ogg_d->num_sub].flac = 1;
sh_a->wf = NULL;
@@ -883,6 +903,9 @@
sh_v->bih->biSizeImage=(sh_v->bih->biBitCount>>3)*sh_v->bih->biWidth*sh_v->bih->biHeight;
ogg_d->subs[ogg_d->num_sub].samplerate = sh_v->fps;
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
+ ogg_d->subs[ogg_d->num_sub].id = n_video;
n_video++;
mp_msg(MSGT_DEMUX,MSGL_V,"Ogg stream %d is video (old hdr)\n",ogg_d->num_sub);
if(verbose>0) print_video_header(sh_v->bih);
@@ -904,6 +927,9 @@
memcpy(sh_a->wf+sizeof(WAVEFORMATEX),pack.packet+142,extra_size);
ogg_d->subs[ogg_d->num_sub].samplerate = sh_a->samplerate; // * sh_a->channels;
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+ ogg_d->subs[ogg_d->num_sub].id = n_audio;
n_audio++;
mp_msg(MSGT_DEMUX,MSGL_V,"Ogg stream %d is audio (old hdr)\n",ogg_d->num_sub);
if(verbose>0) print_wave_header(sh_a->wf);
@@ -932,6 +958,9 @@
sh_v->bih->biSizeImage=(sh_v->bih->biBitCount>>3)*sh_v->bih->biWidth*sh_v->bih->biHeight;
ogg_d->subs[ogg_d->num_sub].samplerate= sh_v->fps;
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
+ ogg_d->subs[ogg_d->num_sub].id = n_video;
n_video++;
mp_msg(MSGT_DEMUX,MSGL_V,"Ogg stream %d is video (new hdr)\n",ogg_d->num_sub);
if(verbose>0) print_video_header(sh_v->bih);
@@ -955,6 +984,9 @@
memcpy(sh_a->wf+sizeof(WAVEFORMATEX),st+1,extra_size);
ogg_d->subs[ogg_d->num_sub].samplerate = sh_a->samplerate; // * sh_a->channels;
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+ ogg_d->subs[ogg_d->num_sub].id = n_audio;
n_audio++;
mp_msg(MSGT_DEMUX,MSGL_V,"Ogg stream %d is audio (new hdr)\n",ogg_d->num_sub);
if(verbose>0) print_wave_header(sh_a->wf);
@@ -964,6 +996,9 @@
mp_msg(MSGT_DEMUX, MSGL_V, "Ogg stream %d is text\n", ogg_d->num_sub);
ogg_d->subs[ogg_d->num_sub].samplerate= get_uint64(&st->time_unit)/10;
ogg_d->subs[ogg_d->num_sub].text = 1;
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", ogg_d->n_text);
+ ogg_d->subs[ogg_d->num_sub].id = ogg_d->n_text;
if (demuxer->sub->id == ogg_d->n_text)
text_id = ogg_d->num_sub;
ogg_d->n_text++;
Index: demux_ts.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_ts.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- demux_ts.c 24 Nov 2004 18:55:03 -0000 1.22
+++ demux_ts.c 25 Nov 2004 22:24:00 -0000 1.23
@@ -54,6 +54,7 @@
int ts_keep_broken=0;
off_t ts_probe = TS_MAX_PROBE_SIZE;
extern char *dvdsub_lang, *audio_lang; //for -alang
+extern int demux_aid_vid_mismatch;
typedef enum
{
@@ -510,12 +511,20 @@
if(is_video)
{
+ if (identify)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", es.pid);
chosen_pid = (req_vpid == es.pid);
if((! chosen_pid) && (req_vpid > 0))
continue;
}
else if(is_audio)
{
+ if (identify)
+ {
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", es.pid);
+ if (es.lang[0] > 0)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AID_%d_LANG=%s\n", es.pid, es.lang);
+ }
if(req_apid > 0)
{
chosen_pid = (req_apid == es.pid);
@@ -533,6 +542,12 @@
}
else if(is_sub)
{
+ if (identify)
+ {
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", es.pid);
+ if (es.lang[0] > 0)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SID_%d_LANG=%s\n", es.pid, es.lang);
+ }
chosen_pid = (req_spid == es.pid);
if((! chosen_pid) && (req_spid > 0))
continue;
@@ -788,6 +803,7 @@
demuxer->sub->id = params.spid;
priv->prog = params.prog;
+ demux_aid_vid_mismatch = 1; // don't identify in new_sh_* since ids don't match
if(params.vtype != UNKNOWN)
{
Index: demuxer.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demuxer.c,v
retrieving revision 1.175
retrieving revision 1.176
diff -u -r1.175 -r1.176
--- demuxer.c 24 Nov 2004 18:55:03 -0000 1.175
+++ demuxer.c 25 Nov 2004 22:24:00 -0000 1.176
@@ -21,6 +21,10 @@
#include "../libao2/afmt.h"
#include "../libvo/fastmemcpy.h"
+// Should be set to 1 by demux module if ids it passes to new_sh_audio and
+// new_sh_video don't match aids and vids it accepts from the command line
+int demux_aid_vid_mismatch = 0;
+
void free_demuxer_stream(demux_stream_t *ds){
ds_free_packs(ds);
free(ds);
@@ -89,6 +93,8 @@
sh->samplesize=2;
sh->sample_format=AFMT_S16_NE;
sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/
+ if (identify && !demux_aid_vid_mismatch)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", id);
}
return demuxer->a_streams[id];
}
@@ -112,6 +118,8 @@
mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_FoundVideoStream,id);
demuxer->v_streams[id]=malloc(sizeof(sh_video_t));
memset(demuxer->v_streams[id],0,sizeof(sh_video_t));
+ if (identify && !demux_aid_vid_mismatch)
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", id);
}
return demuxer->v_streams[id];
}
@@ -1404,6 +1412,8 @@
demuxer_t *vd,*ad = NULL,*sd = NULL;
int afmt =DEMUXER_TYPE_UNKNOWN,sfmt = DEMUXER_TYPE_UNKNOWN ;
+ demux_aid_vid_mismatch = 0;
+
if(audio_stream) {
as = open_stream(audio_stream,0,&afmt);
if(!as) {
Index: open.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/open.c,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- open.c 22 Aug 2004 18:47:48 -0000 1.99
+++ open.c 25 Nov 2004 22:24:00 -0000 1.100
@@ -378,6 +378,12 @@
tmp,
d->audio_streams[d->nr_of_channels].id
);
+ if (identify)
+ {
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", d->audio_streams[d->nr_of_channels].id);
+ if (language && tmp[0])
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AID_%d_LANG=%s\n", d->audio_streams[d->nr_of_channels].id, tmp);
+ }
d->nr_of_channels++;
}
@@ -414,6 +420,12 @@
d->nr_of_subtitles,
tmp
);
+ if (identify)
+ {
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", d->nr_of_subtitles);
+ if (language && tmp[0])
+ mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SID_%d_LANG=%s\n", d->nr_of_subtitles, tmp);
+ }
d->nr_of_subtitles++;
}
mp_msg(MSGT_OPEN,MSGL_V,"[open] number of subtitles on disk: %d\n",d->nr_of_subtitles );
- Previous message: [MPlayer-cvslog] CVS: main configure,1.941,1.942
- Next message: [MPlayer-cvslog] CVS: main mencoder.c, 1.257, 1.258 mp_msg.h, 1.31, 1.32 mplayer.c, 1.813, 1.814 vobsub.c, 1.38, 1.39
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the MPlayer-cvslog
mailing list