summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authoralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-07-17 11:22:14 +0000
committeralex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-07-17 11:22:14 +0000
commitfb49973b17e2cc639fec6f8ec683c48af54493fe (patch)
treed172d4ac9ba2e70411bab753a0d8aec9534d0767 /libvo
parentb074fcbc42d0ffb86d4e40592090c52d1a89dbbe (diff)
downloadmpv-fb49973b17e2cc639fec6f8ec683c48af54493fe.tar.bz2
mpv-fb49973b17e2cc639fec6f8ec683c48af54493fe.tar.xz
1, killed some 100l's (no error checking). 2, added subotion for output filename. 3, fallback to 'md5' in case 'md5sum' is not available - this is the case on Darwin
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12841 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_md5.c32
1 files changed, 23 insertions, 9 deletions
diff --git a/libvo/vo_md5.c b/libvo/vo_md5.c
index ab3de18181..17334c384b 100644
--- a/libvo/vo_md5.c
+++ b/libvo/vo_md5.c
@@ -35,12 +35,15 @@ LIBVO_EXTERN (md5)
extern vo_functions_t video_out_pgm;
extern char vo_pgm_filename[24];
-static FILE * md5_file;
+static FILE * md5_file = NULL;
+static char * md5_filename = NULL;
static uint32_t
config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_height, uint32_t fullscreen, char *title, uint32_t format)
{
- md5_file = fopen ("md5", "w");
+ md5_file = fopen (md5_filename?md5_filename:"md5", "w");
+ if (!md5_file)
+ return -1;
return video_out_pgm.config (width, height, d_width,d_height,fullscreen, title, format);
}
@@ -58,12 +61,16 @@ static void flip_page (void)
snprintf (buf2, 100, "md5sum %s", vo_pgm_filename);
f = popen (buf2, "r");
+ if (!f) {
+ snprintf (buf2, 100, "md5 %s", vo_pgm_filename);
+ f = popen(buf2, "r");
+ }
+ if (f) {
i = fread (buf2, 1, sizeof(buf2), f);
pclose (f);
fwrite (buf2, 1, i, md5_file);
-
+ }
remove (vo_pgm_filename);
-
}
//static uint32_t draw_slice(uint8_t * src[], uint32_t slice_num)
@@ -90,7 +97,17 @@ static void
uninit(void)
{
video_out_pgm.uninit();
- fclose(md5_file);
+ if (md5_file)
+ {
+ fflush(md5_file);
+ fclose(md5_file);
+ md5_file = NULL;
+ }
+ if (md5_filename)
+ {
+ free(md5_filename);
+ md5_filename = NULL;
+ }
}
@@ -101,10 +118,7 @@ static void check_events(void)
static uint32_t preinit(const char *arg)
{
if(arg)
- {
- printf("vo_md5: Unknown subdevice: %s\n",arg);
- return ENOSYS;
- }
+ md5_filename = strdup(arg);
return 0;
}