[vlc-commits] Use str_format_meta for snapshots
Rafaël Carré
git at videolan.org
Thu Jan 16 22:01:12 CET 2014
vlc | branch: master | Rafaël Carré <funman at videolan.org> | Thu Jan 16 22:00:52 2014 +0100| [17818d7bce710b281bc9d012aaf84a18b59924e2] | committer: Rafaël Carré
Use str_format_meta for snapshots
Fixes: #9938
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=17818d7bce710b281bc9d012aaf84a18b59924e2
---
src/video_output/snapshot.c | 16 ++++++++++------
src/video_output/snapshot.h | 2 +-
src/video_output/vout_intf.c | 2 +-
3 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/video_output/snapshot.c b/src/video_output/snapshot.c
index 0519101..c8096ef 100644
--- a/src/video_output/snapshot.c
+++ b/src/video_output/snapshot.c
@@ -26,6 +26,7 @@
# include "config.h"
#endif
+#include <assert.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/time.h>
@@ -36,8 +37,10 @@
#include <vlc_fs.h>
#include <vlc_strings.h>
#include <vlc_block.h>
+#include <vlc_vout.h>
#include "snapshot.h"
+#include "vout_internal.h"
/* */
void vout_snapshot_Init(vout_snapshot_t *snap)
@@ -137,12 +140,13 @@ char *vout_snapshot_GetDirectory(void)
/* */
int vout_snapshot_SaveImage(char **name, int *sequential,
const block_t *image,
- vlc_object_t *object,
+ vout_thread_t *p_vout,
const vout_snapshot_save_cfg_t *cfg)
{
/* */
char *filename;
DIR *pathdir = vlc_opendir(cfg->path);
+ input_thread_t *input = (input_thread_t*)p_vout->p->input;
if (pathdir != NULL) {
/* The use specified a directory path */
closedir(pathdir);
@@ -150,7 +154,7 @@ int vout_snapshot_SaveImage(char **name, int *sequential,
/* */
char *prefix = NULL;
if (cfg->prefix_fmt)
- prefix = str_format_time(cfg->prefix_fmt);
+ prefix = str_format(input, cfg->prefix_fmt);
if (prefix)
filename_sanitize(prefix);
else {
@@ -194,7 +198,7 @@ int vout_snapshot_SaveImage(char **name, int *sequential,
free(prefix);
} else {
/* The user specified a full path name (including file name) */
- filename = str_format_time(cfg->path);
+ filename = str_format(input, cfg->path);
path_sanitize(filename);
}
@@ -204,12 +208,12 @@ int vout_snapshot_SaveImage(char **name, int *sequential,
/* Save the snapshot */
FILE *file = vlc_fopen(filename, "wb");
if (!file) {
- msg_Err(object, "Failed to open '%s'", filename);
+ msg_Err(p_vout, "Failed to open '%s'", filename);
free(filename);
goto error;
}
if (fwrite(image->p_buffer, image->i_buffer, 1, file) != 1) {
- msg_Err(object, "Failed to write to '%s'", filename);
+ msg_Err(p_vout, "Failed to write to '%s'", filename);
fclose(file);
free(filename);
goto error;
@@ -225,7 +229,7 @@ int vout_snapshot_SaveImage(char **name, int *sequential,
return VLC_SUCCESS;
error:
- msg_Err(object, "could not save snapshot");
+ msg_Err(p_vout, "could not save snapshot");
return VLC_EGENERIC;
}
diff --git a/src/video_output/snapshot.h b/src/video_output/snapshot.h
index ccdef2a..b81e3e7 100644
--- a/src/video_output/snapshot.h
+++ b/src/video_output/snapshot.h
@@ -77,7 +77,7 @@ typedef struct {
*/
int vout_snapshot_SaveImage(char **name, int *sequential,
const block_t *image,
- vlc_object_t *object,
+ vout_thread_t *p_vout,
const vout_snapshot_save_cfg_t *cfg);
#endif
diff --git a/src/video_output/vout_intf.c b/src/video_output/vout_intf.c
index 8ecd01f..20e262a 100644
--- a/src/video_output/vout_intf.c
+++ b/src/video_output/vout_intf.c
@@ -431,7 +431,7 @@ static void VoutSaveSnapshot( vout_thread_t *p_vout )
char *psz_filename;
int i_sequence;
if (vout_snapshot_SaveImage( &psz_filename, &i_sequence,
- p_image, VLC_OBJECT(p_vout), &cfg ) )
+ p_image, p_vout, &cfg ) )
goto exit;
if( cfg.is_sequential )
var_SetInteger( p_vout, "snapshot-num", i_sequence + 1 );
More information about the vlc-commits
mailing list