[Mplayer-cvslog] CVS: main/libmpdemux demux_mov.c,1.27,1.28
Alex Beregszaszi
alex at mplayer.dev.hu
Thu Nov 22 16:43:26 CET 2001
Update of /cvsroot/mplayer/main/libmpdemux
In directory mplayer:/var/tmp.root/cvs-serv31574
Modified Files:
demux_mov.c
Log Message:
added demux_info
Index: demux_mov.c
===================================================================
RCS file: /cvsroot/mplayer/main/libmpdemux/demux_mov.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- demux_mov.c 17 Nov 2001 01:10:46 -0000 1.27
+++ demux_mov.c 22 Nov 2001 15:43:24 -0000 1.28
@@ -143,6 +143,7 @@
#define MOV_TRAK_AUDIO 2
#define MOV_TRAK_FLASH 3
#define MOV_TRAK_GENERIC 4
+#define MOV_TRAK_CODE 5
typedef struct {
off_t moov_start;
@@ -154,7 +155,11 @@
} mov_priv_t;
#warning "FIXME - mov support is only working perfectly on Little Endian systems?!"
+//#ifdef WORDS_BIGENDIAN
+//#define MOV_FOURCC(a,b,c,d) ((d)|(c<<8)|(b<<16)|(a<<24))
+//#else
#define MOV_FOURCC(a,b,c,d) ((a<<24)|(b<<16)|(c<<8)|(d))
+//#endif
int mov_check_file(demuxer_t* demuxer){
int flags=0;
@@ -227,6 +232,7 @@
//
if(trak){
switch(id){
+ case MOV_FOURCC('f','r','e','e'):
case MOV_FOURCC('u','d','t','a'):
/* here not supported :p */
break;
@@ -441,7 +447,7 @@
}
case MOV_FOURCC('c','o','d','e'):
{
-#warning Implement atom 'code' for FLASH
+#warning "Implement atom 'code' for FLASH support"
}
default:
id = bswap_32(id);
@@ -525,7 +531,7 @@
case MOV_TRAK_GENERIC:
mp_msg(MSGT_DEMUX, MSGL_INFO, "Generic track - not completly understood! (id: %d)\n",
trak->id);
-#warning Also this contains the FLASH data
+#warning "Also this contains the FLASH data"
#if 0
mp_msg(MSGT_DEMUX, MSGL_INFO, "Extracting samples to files (possibly this is an flash anim)\n");
{
@@ -692,9 +698,11 @@
switch(udta_id)
{
case MOV_FOURCC(0xa9,'a','u','t'):
+ demux_info_add(demuxer, "author", &text[2]);
mp_msg(MSGT_DEMUX, MSGL_INFO, " Author: %s\n", &text[2]);
break;
case MOV_FOURCC(0xa9,'c','p','y'):
+ demux_info_add(demuxer, "copyright", &text[2]);
mp_msg(MSGT_DEMUX, MSGL_INFO, " Copyright: %s\n", &text[2]);
break;
case MOV_FOURCC(0xa9,'i','n','f'):
@@ -702,6 +710,7 @@
break;
case MOV_FOURCC('n','a','m','e'):
case MOV_FOURCC(0xa9,'n','a','m'):
+ demux_info_add(demuxer, "name", &text[2]);
mp_msg(MSGT_DEMUX, MSGL_INFO, " Name: %s\n", &text[2]);
break;
case MOV_FOURCC(0xa9,'A','R','T'):
@@ -711,12 +720,14 @@
mp_msg(MSGT_DEMUX, MSGL_INFO, " Director: %s\n", &text[2]);
break;
case MOV_FOURCC(0xa9,'c','m','t'):
+ demux_info_add(demuxer, "comments", &text[2]);
mp_msg(MSGT_DEMUX, MSGL_INFO, " Comment: %s\n", &text[2]);
break;
case MOV_FOURCC(0xa9,'r','e','q'):
mp_msg(MSGT_DEMUX, MSGL_INFO, " Requirements: %s\n", &text[2]);
break;
case MOV_FOURCC(0xa9,'s','w','r'):
+ demux_info_add(demuxer, "encoder", &text[2]);
mp_msg(MSGT_DEMUX, MSGL_INFO, " Software: %s\n", &text[2]);
break;
case MOV_FOURCC(0xa9,'d','a','y'):
@@ -799,9 +810,15 @@
if(trak->pos>=trak->chunks_size) return 0; // EOF
stream_seek(demuxer->stream,trak->chunks[trak->pos].pos);
pts=(float)(trak->chunks[trak->pos].sample*trak->duration)/(float)trak->timescale;
- x=trak->chunks[trak->pos].size;
-// x=trak->chunks[trak->pos].size*trak->samplesize;
- if(trak->samplesize!=1) printf("WARNING! Samplesize=%d \n",trak->samplesize);
+ if(trak->samplesize!=1)
+ {
+ mp_msg(MSGT_DEMUX, MSGL_WARN, "WARNING! Samplesize(%d) != 1\n",
+ trak->samplesize);
+ x=trak->chunks[trak->pos].size*trak->samplesize;
+ }
+ else
+ x=trak->chunks[trak->pos].size;
+ printf("X = %d\n", x);
if(trak->stdata_len>=36){
// extended stsd header - works for CBR MP3:
x/=(trak->stdata[30]<<8)+trak->stdata[31]; // samples/packet
More information about the MPlayer-cvslog
mailing list