Mercurial > libavformat.hg
comparison flvdec.c @ 620:7dbdbe073bcd libavformat
try to guess the fps if they are variable
author | michael |
---|---|
date | Sun, 19 Dec 2004 01:23:22 +0000 |
parents | 256f7b271bdc |
children | b47948262721 |
comparison
equal
deleted
inserted
replaced
619:7d50b0a324ea | 620:7dbdbe073bcd |
---|---|
101 st = av_new_stream(s, is_audio); | 101 st = av_new_stream(s, is_audio); |
102 if (!st) | 102 if (!st) |
103 return AVERROR_NOMEM; | 103 return AVERROR_NOMEM; |
104 | 104 |
105 av_set_pts_info(st, 24, 1, 1000); /* 24 bit pts in ms */ | 105 av_set_pts_info(st, 24, 1, 1000); /* 24 bit pts in ms */ |
106 st->codec.frame_rate_base= 0; | 106 st->codec.frame_rate_base= 1; |
107 st->codec.frame_rate= 1000; | |
107 } | 108 } |
108 break; | 109 break; |
109 } | 110 } |
110 | 111 |
111 if(is_audio){ | 112 if(is_audio){ |
121 default: | 122 default: |
122 st->codec.codec_tag= (flags >> 4); | 123 st->codec.codec_tag= (flags >> 4); |
123 } | 124 } |
124 } | 125 } |
125 }else{ | 126 }else{ |
126 if(st->codec.frame_rate_base == 0){ | |
127 st->codec.codec_type = CODEC_TYPE_VIDEO; | 127 st->codec.codec_type = CODEC_TYPE_VIDEO; |
128 //guess the frame rate | |
129 if(pts){ | |
130 st->codec.frame_rate_base=1; | |
131 st->codec.frame_rate= (1000 + pts/2)/pts; | |
132 } | |
133 switch(flags & 0xF){ | 128 switch(flags & 0xF){ |
134 case 2: st->codec.codec_id = CODEC_ID_FLV1; break; | 129 case 2: st->codec.codec_id = CODEC_ID_FLV1; break; |
135 default: | 130 default: |
136 st->codec.codec_tag= flags & 0xF; | 131 st->codec.codec_tag= flags & 0xF; |
137 } | 132 } |
138 } | |
139 } | 133 } |
140 | 134 |
141 if (av_new_packet(pkt, size) < 0) | 135 if (av_new_packet(pkt, size) < 0) |
142 return AVERROR_IO; | 136 return AVERROR_IO; |
143 | 137 |