Mercurial > libavformat.hg
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 } |