comparison mov.c @ 1336:06a5d191774d libavformat

move sample size adjusting code after audio stsd v2 parsing to let v2 set correct channel number, fix Sony-hdv2.mov
author bcoudurier
date Thu, 28 Sep 2006 17:59:26 +0000
parents 2cbaaf63ce18
children 229734e5c3ef
comparison
equal deleted inserted replaced
1335:2cbaaf63ce18 1336:06a5d191774d
983 break; 983 break;
984 default: 984 default:
985 break; 985 break;
986 } 986 }
987 987
988 bits_per_sample = av_get_bits_per_sample(st->codec->codec_id);
989 if (bits_per_sample) {
990 st->codec->bits_per_sample = bits_per_sample;
991 sc->sample_size = (bits_per_sample >> 3) * st->codec->channels;
992 }
993
994 //Read QT version 1 fields. In version 0 theese dont exist 988 //Read QT version 1 fields. In version 0 theese dont exist
995 dprintf("version =%d mp4=%d\n",version,c->mp4); 989 dprintf("version =%d mp4=%d\n",version,c->mp4);
996 if(version==1) { 990 if(version==1) {
997 sc->sample_size_v1.den = get_be32(pb); /* samples per packet */ 991 sc->sample_size_v1.den = get_be32(pb); /* samples per packet */
998 get_be32(pb); /* bytes per packet */ 992 get_be32(pb); /* bytes per packet */
1005 get_be32(pb); /* always 0x7F000000 */ 999 get_be32(pb); /* always 0x7F000000 */
1006 get_be32(pb); /* bits per channel if sound is uncompressed */ 1000 get_be32(pb); /* bits per channel if sound is uncompressed */
1007 get_be32(pb); /* lcpm format specific flag */ 1001 get_be32(pb); /* lcpm format specific flag */
1008 get_be32(pb); /* bytes per audio packet if constant */ 1002 get_be32(pb); /* bytes per audio packet if constant */
1009 get_be32(pb); /* lpcm frames per audio packet if constant */ 1003 get_be32(pb); /* lpcm frames per audio packet if constant */
1004 }
1005
1006 bits_per_sample = av_get_bits_per_sample(st->codec->codec_id);
1007 if (bits_per_sample) {
1008 st->codec->bits_per_sample = bits_per_sample;
1009 sc->sample_size = (bits_per_sample >> 3) * st->codec->channels;
1010 } 1010 }
1011 } else { 1011 } else {
1012 /* other codec type, just skip (rtp, mp4s, tmcd ...) */ 1012 /* other codec type, just skip (rtp, mp4s, tmcd ...) */
1013 url_fskip(pb, size - (url_ftell(pb) - start_pos)); 1013 url_fskip(pb, size - (url_ftell(pb) - start_pos));
1014 } 1014 }