comparison ffmenc.c @ 3440:f9cf53254a61 libavformat

remove ugly ffm_nopts hack, use AVFormatContext->timestamp
author bcoudurier
date Mon, 09 Jun 2008 00:24:29 +0000
parents 40995a9455e3
children 2d52ccde8f86
comparison
equal deleted inserted replaced
3439:0dfc37ba9453 3440:f9cf53254a61
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */ 20 */
21 21
22 #include "avformat.h" 22 #include "avformat.h"
23 #include "ffm.h" 23 #include "ffm.h"
24
25 /* disable pts hack for testing */
26 int ffm_nopts = 0;
27 24
28 static void flush_packet(AVFormatContext *s) 25 static void flush_packet(AVFormatContext *s)
29 { 26 {
30 FFMContext *ffm = s->priv_data; 27 FFMContext *ffm = s->priv_data;
31 int fill_size, h; 28 int fill_size, h;
171 default: 168 default:
172 return -1; 169 return -1;
173 } 170 }
174 } 171 }
175 172
176 /* hack to have real time */
177 if (ffm_nopts)
178 ffm->start_time = 0;
179 else
180 ffm->start_time = av_gettime();
181
182 /* flush until end of block reached */ 173 /* flush until end of block reached */
183 while ((url_ftell(pb) % ffm->packet_size) != 0) 174 while ((url_ftell(pb) % ffm->packet_size) != 0)
184 put_byte(pb, 0); 175 put_byte(pb, 0);
185 176
186 put_flush_packet(pb); 177 put_flush_packet(pb);
201 FFMContext *ffm = s->priv_data; 192 FFMContext *ffm = s->priv_data;
202 AVStream *st = s->streams[pkt->stream_index]; 193 AVStream *st = s->streams[pkt->stream_index];
203 int64_t pts; 194 int64_t pts;
204 uint8_t header[FRAME_HEADER_SIZE]; 195 uint8_t header[FRAME_HEADER_SIZE];
205 196
206 pts = ffm->start_time + pkt->pts; 197 pts = s->timestamp + pkt->pts;
207 /* packet size & key_frame */ 198 /* packet size & key_frame */
208 header[0] = pkt->stream_index; 199 header[0] = pkt->stream_index;
209 header[1] = 0; 200 header[1] = 0;
210 if (pkt->flags & PKT_FLAG_KEY) 201 if (pkt->flags & PKT_FLAG_KEY)
211 header[1] |= FLAG_KEY_FRAME; 202 header[1] |= FLAG_KEY_FRAME;