summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorwm4 <wm4@mplayer2.org>2012-03-16 18:57:23 +0100
committerwm4 <wm4@mplayer2.org>2012-03-16 19:14:44 +0100
commit6de8120822c2dd9c50ef23b4977421651396f1ae (patch)
tree11a977608cfc9f50cffbce4a879dd8e9b33b029c /libmpdemux
parent0eb21226cbfdd200f2aea5d3a9db2cdbff4773a5 (diff)
parenta8168102668337f3c11619bea7e744fc245adff1 (diff)
downloadmpv-6de8120822c2dd9c50ef23b4977421651396f1ae.tar.bz2
mpv-6de8120822c2dd9c50ef23b4977421651396f1ae.tar.xz
Merge remote-tracking branch 'origin/master' into my_master
Conflicts: command.c mp_core.h mplayer.c screenshot.c
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/aviheader.h2
-rw-r--r--libmpdemux/demux_mf.c13
-rw-r--r--libmpdemux/mf.c19
3 files changed, 19 insertions, 15 deletions
diff --git a/libmpdemux/aviheader.h b/libmpdemux/aviheader.h
index 6c86378a4a..8d226606de 100644
--- a/libmpdemux/aviheader.h
+++ b/libmpdemux/aviheader.h
@@ -128,8 +128,10 @@ typedef struct {
#define AVIIF_NOTIME 0x00000100L // this frame doesn't take any time
#define AVIIF_COMPUSE 0x0FFF0000L // these bits are for compressor use
+#ifndef FOURCC_RIFF
#define FOURCC_RIFF mmioFOURCC('R', 'I', 'F', 'F')
#define FOURCC_LIST mmioFOURCC('L', 'I', 'S', 'T')
+#endif
typedef struct
{
diff --git a/libmpdemux/demux_mf.c b/libmpdemux/demux_mf.c
index f47a11eed6..193b17bc18 100644
--- a/libmpdemux/demux_mf.c
+++ b/libmpdemux/demux_mf.c
@@ -23,6 +23,8 @@
#include <sys/stat.h>
#include <unistd.h>
+#include "osdep/io.h"
+
#include "talloc.h"
#include "config.h"
#include "mp_msg.h"
@@ -49,20 +51,19 @@ static void demux_seek_mf(demuxer_t *demuxer,float rel_seek_secs,float audio_del
// 1 = successfully read a packet
static int demux_mf_fill_buffer(demuxer_t *demuxer, demux_stream_t *ds){
mf_t * mf;
- struct stat fs;
FILE * f;
mf=(mf_t*)demuxer->priv;
if ( mf->curr_frame >= mf->nr_of_files ) return 0;
- stat( mf->names[mf->curr_frame],&fs );
-// printf( "[demux_mf] frame: %d (%s,%d)\n",mf->curr_frame,mf->names[mf->curr_frame],fs.st_size );
-
if ( !( f=fopen( mf->names[mf->curr_frame],"rb" ) ) ) return 0;
{
sh_video_t * sh_video = demuxer->video->sh;
- demux_packet_t * dp = new_demux_packet( fs.st_size );
- if ( !fread( dp->buffer,fs.st_size,1,f ) ) return 0;
+ fseek(f, 0, SEEK_END);
+ long file_size = ftell(f);
+ fseek(f, 0, SEEK_SET);
+ demux_packet_t * dp = new_demux_packet( file_size );
+ if ( !fread( dp->buffer,file_size,1,f ) ) return 0;
dp->pts=mf->curr_frame / sh_video->fps;
dp->pos=mf->curr_frame;
dp->flags=0;
diff --git a/libmpdemux/mf.c b/libmpdemux/mf.c
index 6b22c6147d..d232944593 100644
--- a/libmpdemux/mf.c
+++ b/libmpdemux/mf.c
@@ -25,7 +25,8 @@
#include <errno.h>
#include <limits.h>
#include <sys/types.h>
-#include <sys/stat.h>
+
+#include "osdep/io.h"
#include "config.h"
@@ -38,6 +39,7 @@
#include "mp_msg.h"
#include "stream/stream.h"
+#include "path.h"
#include "mf.h"
@@ -49,7 +51,6 @@ char * mf_type = NULL; //"jpg";
mf_t* open_mf(char * filename){
#if defined(HAVE_GLOB) || defined(__MINGW32__)
glob_t gg;
- struct stat fs;
int i;
char * fname;
mf_t * mf;
@@ -63,13 +64,13 @@ mf_t* open_mf(char * filename){
FILE *lst_f=fopen(filename + 1,"r");
if ( lst_f )
{
- fname=malloc(PATH_MAX);
- while ( fgets( fname,PATH_MAX,lst_f ) )
+ fname=malloc(MP_PATH_MAX);
+ while ( fgets( fname,MP_PATH_MAX,lst_f ) )
{
/* remove spaces from end of fname */
char *t=fname + strlen( fname ) - 1;
while ( t > fname && isspace( *t ) ) *(t--)=0;
- if ( stat( fname,&fs ) )
+ if ( !mp_path_exists( fname ) )
{
mp_msg( MSGT_STREAM,MSGL_V,"[mf] file not found: '%s'\n",fname );
}
@@ -94,7 +95,7 @@ mf_t* open_mf(char * filename){
while ( ( fname=strsep( &filename,"," ) ) )
{
- if ( stat( fname,&fs ) )
+ if ( !mp_path_exists( fname ) )
{
mp_msg( MSGT_STREAM,MSGL_V,"[mf] file not found: '%s'\n",fname );
}
@@ -130,8 +131,8 @@ mf_t* open_mf(char * filename){
for( i=0;i < gg.gl_pathc;i++ )
{
- stat( gg.gl_pathv[i],&fs );
- if( S_ISDIR( fs.st_mode ) ) continue;
+ if (mp_path_isdir(gg.gl_pathv[i]))
+ continue;
mf->names[i]=strdup( gg.gl_pathv[i] );
// mp_msg( MSGT_STREAM,MSGL_DBG2,"[mf] added file %d.: %s\n",i,mf->names[i] );
}
@@ -144,7 +145,7 @@ mf_t* open_mf(char * filename){
while ( error_count < 5 )
{
sprintf( fname,filename,count++ );
- if ( stat( fname,&fs ) )
+ if ( !mp_path_exists( fname ) )
{
error_count++;
mp_msg( MSGT_STREAM,MSGL_V,"[mf] file not found: '%s'\n",fname );