comparison movenc.c @ 743:af4e24d6310c libavformat

switch to native time bases
author michael
date Sat, 30 Apr 2005 21:43:59 +0000
parents e7f1b5842878
children 805598adf3e9
comparison
equal deleted inserted replaced
742:21c1ae78f041 743:af4e24d6310c
1179 1179
1180 for (i=0; i<MAX_STREAMS; i++) { 1180 for (i=0; i<MAX_STREAMS; i++) {
1181 if(mov->tracks[i].entry <= 0) continue; 1181 if(mov->tracks[i].entry <= 0) continue;
1182 1182
1183 if(mov->tracks[i].enc->codec_type == CODEC_TYPE_VIDEO) { 1183 if(mov->tracks[i].enc->codec_type == CODEC_TYPE_VIDEO) {
1184 mov->tracks[i].timescale = mov->tracks[i].enc->frame_rate; 1184 mov->tracks[i].timescale = mov->tracks[i].enc->time_base.den;
1185 mov->tracks[i].sampleDuration = mov->tracks[i].enc->frame_rate_base; 1185 mov->tracks[i].sampleDuration = mov->tracks[i].enc->time_base.num;
1186 } 1186 }
1187 else if(mov->tracks[i].enc->codec_type == CODEC_TYPE_AUDIO) { 1187 else if(mov->tracks[i].enc->codec_type == CODEC_TYPE_AUDIO) {
1188 /* If AMR, track timescale = 8000, AMR_WB = 16000 */ 1188 /* If AMR, track timescale = 8000, AMR_WB = 16000 */
1189 if(mov->tracks[i].enc->codec_id == CODEC_ID_AMR_NB) { 1189 if(mov->tracks[i].enc->codec_id == CODEC_ID_AMR_NB) {
1190 mov->tracks[i].sampleDuration = 160; // Bytes per chunk 1190 mov->tracks[i].sampleDuration = 160; // Bytes per chunk
1255 } 1255 }
1256 1256
1257 static void mov_write_uuidprof_tag(ByteIOContext *pb, AVFormatContext *s) 1257 static void mov_write_uuidprof_tag(ByteIOContext *pb, AVFormatContext *s)
1258 { 1258 {
1259 int AudioRate = s->streams[1]->codec.sample_rate; 1259 int AudioRate = s->streams[1]->codec.sample_rate;
1260 int FrameRate = ((s->streams[0]->codec.frame_rate) * (0x10000))/ (s->streams[0]->codec.frame_rate_base); 1260 int FrameRate = ((s->streams[0]->codec.time_base.den) * (0x10000))/ (s->streams[0]->codec.time_base.num);
1261 1261
1262 //printf("audiorate = %d\n",AudioRate); 1262 //printf("audiorate = %d\n",AudioRate);
1263 //printf("framerate = %d / %d = 0x%x\n",s->streams[0]->codec.frame_rate,s->streams[0]->codec.frame_rate_base,FrameRate); 1263 //printf("framerate = %d / %d = 0x%x\n",s->streams[0]->codec.time_base.den,s->streams[0]->codec.time_base.num,FrameRate);
1264 1264
1265 put_be32(pb, 0x94 ); /* size */ 1265 put_be32(pb, 0x94 ); /* size */
1266 put_tag(pb, "uuid"); 1266 put_tag(pb, "uuid");
1267 put_tag(pb, "PROF"); 1267 put_tag(pb, "PROF");
1268 1268