Mercurial > libavcodec.hg
comparison avcodec.h @ 1126:77ccf7fe3bd0 libavcodec
per context frame_rate_base, this should finally fix frame_rate related av sync issues
author | michaelni |
---|---|
date | Wed, 12 Mar 2003 15:16:19 +0000 |
parents | 8248e652d64e |
children | 7bde81d2f2c5 |
comparison
equal
deleted
inserted
replaced
1125:0980ae063f4e | 1126:77ccf7fe3bd0 |
---|---|
184 /* if 'parse_only' field is true, then avcodec_parse_frame() can be | 184 /* if 'parse_only' field is true, then avcodec_parse_frame() can be |
185 used */ | 185 used */ |
186 #define CODEC_CAP_PARSE_ONLY 0x0004 | 186 #define CODEC_CAP_PARSE_ONLY 0x0004 |
187 #define CODEC_CAP_TRUNCATED 0x0008 | 187 #define CODEC_CAP_TRUNCATED 0x0008 |
188 | 188 |
189 #define FRAME_RATE_BASE 10010 | |
190 | |
191 #define FF_COMMON_FRAME \ | 189 #define FF_COMMON_FRAME \ |
192 uint8_t *data[4];\ | 190 uint8_t *data[4];\ |
193 int linesize[4];\ | 191 int linesize[4];\ |
194 /**\ | 192 /**\ |
195 * pointer to the first allocated byte of the picture. can be used in get_buffer/release_buffer\ | 193 * pointer to the first allocated byte of the picture. can be used in get_buffer/release_buffer\ |
319 | 317 |
320 typedef struct AVFrame { | 318 typedef struct AVFrame { |
321 FF_COMMON_FRAME | 319 FF_COMMON_FRAME |
322 } AVFrame; | 320 } AVFrame; |
323 | 321 |
322 #define DEFAULT_FRAME_RATE_BASE 1001000 | |
324 | 323 |
325 /** | 324 /** |
326 * main external api structure. | 325 * main external api structure. |
327 */ | 326 */ |
328 typedef struct AVCodecContext { | 327 typedef struct AVCodecContext { |
373 void *extradata; | 372 void *extradata; |
374 int extradata_size; | 373 int extradata_size; |
375 | 374 |
376 /* video only */ | 375 /* video only */ |
377 /** | 376 /** |
378 * frames per sec multiplied by FRAME_RATE_BASE. | 377 * frames per sec multiplied by frame_rate_base. |
379 * for variable fps this is the precission, so if the timestamps | 378 * for variable fps this is the precission, so if the timestamps |
380 * can be specified in msec precssion then this is 1000*FRAME_RATE_BASE | 379 * can be specified in msec precssion then this is 1000*frame_rate_base |
381 * - encoding: MUST be set by user | 380 * - encoding: MUST be set by user |
382 * - decoding: set by lavc. 0 or the frame_rate if available | 381 * - decoding: set by lavc. 0 or the frame_rate if available |
383 */ | 382 */ |
384 int frame_rate; | 383 int frame_rate; |
384 | |
385 /** | |
386 * frame_rate_base. | |
387 * for variable fps this is 1 | |
388 * - encoding: set by user. | |
389 * - decoding: set by lavc. | |
390 */ | |
391 int frame_rate_base; | |
385 | 392 |
386 /** | 393 /** |
387 * width / height. | 394 * width / height. |
388 * - encoding: MUST be set by user. | 395 * - encoding: MUST be set by user. |
389 * - decoding: set by user, some codecs might override / change it during playback | 396 * - decoding: set by user, some codecs might override / change it during playback |
1256 | 1263 |
1257 void avcodec_register_all(void); | 1264 void avcodec_register_all(void); |
1258 | 1265 |
1259 void avcodec_flush_buffers(AVCodecContext *avctx); | 1266 void avcodec_flush_buffers(AVCodecContext *avctx); |
1260 | 1267 |
1268 /* misc usefull functions */ | |
1269 /** | |
1270 * reduce a fraction. | |
1271 * this is usefull for framerate calculations | |
1272 * @param max the maximum allowed for dst_nom & dst_den | |
1273 * @return 1 if exact, 0 otherwise | |
1274 */ | |
1275 int av_reduce(int *dst_nom, int *dst_den, int64_t nom, int64_t den, int64_t max); | |
1276 | |
1277 /** | |
1278 * rescale a 64bit integer. | |
1279 * a simple a*b/c isnt possible as it can overflow | |
1280 */ | |
1281 int64_t av_rescale(int64_t a, int b, int c); | |
1261 | 1282 |
1262 | 1283 |
1263 /** | 1284 /** |
1264 * Interface for 0.5.0 version | 1285 * Interface for 0.5.0 version |
1265 * | 1286 * |