@ -16,6 +16,7 @@
* License along with this library ; if not , write to the Free Software
* License along with this library ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
*/
# include <unistd.h>
# include "avformat.h"
# include "avformat.h"
extern AVInputFormat pgm_iformat ;
extern AVInputFormat pgm_iformat ;
@ -55,6 +56,8 @@ typedef struct {
char path [ 1024 ] ;
char path [ 1024 ] ;
} VideoData ;
} VideoData ;
int emulate_frame_rate ;
static inline int pnm_space ( int c )
static inline int pnm_space ( int c )
{
{
return ( c = = ' ' | | c = = ' \n ' | | c = = ' \r ' | | c = = ' \t ' ) ;
return ( c = = ' ' | | c = = ' \n ' | | c = = ' \r ' | | c = = ' \t ' ) ;
@ -190,6 +193,23 @@ static int img_read_packet(AVFormatContext *s1, AVPacket *pkt)
char filename [ 1024 ] ;
char filename [ 1024 ] ;
int ret ;
int ret ;
ByteIOContext f1 , * f ;
ByteIOContext f1 , * f ;
static INT64 first_frame ;
if ( emulate_frame_rate ) {
if ( ! first_frame ) {
first_frame = av_gettime ( ) ;
} else {
INT64 pts ;
INT64 nowus ;
nowus = av_gettime ( ) - first_frame ;
pts = ( ( INT64 ) s - > img_number * FRAME_RATE_BASE * 1000000 ) / ( s1 - > streams [ 0 ] - > codec . frame_rate ) ;
if ( pts > nowus )
usleep ( pts - nowus ) ;
}
}
/*
/*
This if - statement destroys pipes - I do not see why it is necessary
This if - statement destroys pipes - I do not see why it is necessary