kino/kino_wrapper.cc, kino/filehandler.cc, kino/avi.cc: bugfix (1936991)
[melted] / src / modules / kino / filehandler.cc
index 5591b24..3c8146d 100644 (file)
@@ -41,6 +41,7 @@ using std::setfill;
 #include <assert.h>
 #include <time.h>
 #include <sys/time.h>
+#include <string.h>
 
 // libdv header files
 #ifdef HAVE_LIBDV
@@ -706,6 +707,10 @@ bool AVIHandler::GetOpenDML() const
 #define QUICKTIME_DV_AVID_A "dvcp"
 #endif
 
+#ifndef QUICKTIME_DVCPRO
+#define QUICKTIME_DVCPRO "dvpp"
+#endif
+
 QtHandler::QtHandler() : fd( NULL )
 {
        extension = ".mov";
@@ -852,7 +857,7 @@ int QtHandler::Close()
 off_t QtHandler::GetFileSize()
 {
        struct stat file_status;
-       fstat( fileno( fd->stream ), &file_status );
+       stat( filename.c_str(), &file_status );
        return file_status.st_size;
 }
 
@@ -884,7 +889,8 @@ bool QtHandler::Open( const char *s )
        char * fcc = quicktime_video_compressor( fd, 0 );
        if ( strncmp( fcc, QUICKTIME_DV, 4 ) != 0 &&
             strncmp( fcc, QUICKTIME_DV_AVID, 4 ) != 0 &&
-            strncmp( fcc, QUICKTIME_DV_AVID_A, 4 ) != 0 )
+            strncmp( fcc, QUICKTIME_DV_AVID_A, 4 ) != 0 && 
+            strncmp( fcc, QUICKTIME_DVCPRO, 4 ) != 0 )
        {
                Close();
                return false;