val.psz_string = 0;
}
-#if defined(__APPLE__) || defined(SYS_BEOS)
- if( !val.psz_string && p_vout->p_vlc->psz_homedir )
- {
- asprintf( &val.psz_string, "%s/Desktop",
- p_vout->p_vlc->psz_homedir );
- }
-
-#elif defined(WIN32) && !defined(UNDER_CE)
- if( !val.psz_string && p_vout->p_vlc->psz_homedir )
- {
- /* Get the My Pictures folder path */
-
- char *p_mypicturesdir = NULL;
- typedef HRESULT (WINAPI *SHGETFOLDERPATH)( HWND, int, HANDLE, DWORD,
- LPSTR );
- #ifndef CSIDL_FLAG_CREATE
- # define CSIDL_FLAG_CREATE 0x8000
- #endif
- #ifndef CSIDL_MYPICTURES
- # define CSIDL_MYPICTURES 0x27
- #endif
- #ifndef SHGFP_TYPE_CURRENT
- # define SHGFP_TYPE_CURRENT 0
- #endif
-
- HINSTANCE shfolder_dll;
- SHGETFOLDERPATH SHGetFolderPath ;
-
- /* load the shfolder dll to retrieve SHGetFolderPath */
- if( ( shfolder_dll = LoadLibrary( _T("SHFolder.dll") ) ) != NULL )
- {
- SHGetFolderPath = (void *)GetProcAddress( shfolder_dll,
- _T("SHGetFolderPathA") );
- if( SHGetFolderPath != NULL )
- {
- p_mypicturesdir = (char *)malloc( MAX_PATH );
- if( p_mypicturesdir )
- {
-
- if( S_OK != SHGetFolderPath( NULL,
- CSIDL_MYPICTURES | CSIDL_FLAG_CREATE,
- NULL, SHGFP_TYPE_CURRENT,
- p_mypicturesdir ) )
- {
- free( p_mypicturesdir );
- p_mypicturesdir = NULL;
- }
- }
- }
- FreeLibrary( shfolder_dll );
- }
-
- if( p_mypicturesdir == NULL )
- {
- asprintf( &val.psz_string, "%s/" CONFIG_DIR,
- p_vout->p_vlc->psz_homedir );
- }
- else
- {
- asprintf( &val.psz_string, p_mypicturesdir );
- free( p_mypicturesdir );
- }
- }
-
-#else
- if( !val.psz_string && p_vout->p_vlc->psz_homedir )
- {
- asprintf( &val.psz_string, "%s/" CONFIG_DIR,
- p_vout->p_vlc->psz_homedir );
- }
-#endif
-
- if( !val.psz_string )
- {
- msg_Err( p_vout, "no directory specified for snapshots" );
- return VLC_EGENERIC;
- }
- var_Get( p_vout, "snapshot-format", &format );
- if( !format.psz_string || !*format.psz_string )
- {
- if( format.psz_string ) free( format.psz_string );
- format.psz_string = strdup( "png" );
- }
-
/* Embedded snapshot : if snapshot-path == object:object-id, then
create a snapshot_t* and store it in
object(object-id)->p_private, then unlock and signal the
waiting object.
*/
- if( !strncmp( val.psz_string, "object:", 7 ) )
+ if( val.psz_string && !strncmp( val.psz_string, "object:", 7 ) )
{
int i_id;
vlc_object_t* p_dest;
/* Save the snapshot to a memory zone */
fmt_in = p_vout->fmt_in;
fmt_out.i_sar_num = fmt_out.i_sar_den = 1;
+ /* FIXME: should not be hardcoded. We should be able to
+ specify the snapshot size (snapshot-width and snapshot-height). */
fmt_out.i_width = 320;
fmt_out.i_height = 200;
fmt_out.i_chroma = VLC_FOURCC( 'p','n','g',' ' );
return VLC_SUCCESS;
}
+
+#if defined(__APPLE__) || defined(SYS_BEOS)
+ if( !val.psz_string && p_vout->p_vlc->psz_homedir )
+ {
+ asprintf( &val.psz_string, "%s/Desktop",
+ p_vout->p_vlc->psz_homedir );
+ }
+
+#elif defined(WIN32) && !defined(UNDER_CE)
+ if( !val.psz_string && p_vout->p_vlc->psz_homedir )
+ {
+ /* Get the My Pictures folder path */
+
+ char *p_mypicturesdir = NULL;
+ typedef HRESULT (WINAPI *SHGETFOLDERPATH)( HWND, int, HANDLE, DWORD,
+ LPSTR );
+ #ifndef CSIDL_FLAG_CREATE
+ # define CSIDL_FLAG_CREATE 0x8000
+ #endif
+ #ifndef CSIDL_MYPICTURES
+ # define CSIDL_MYPICTURES 0x27
+ #endif
+ #ifndef SHGFP_TYPE_CURRENT
+ # define SHGFP_TYPE_CURRENT 0
+ #endif
+
+ HINSTANCE shfolder_dll;
+ SHGETFOLDERPATH SHGetFolderPath ;
+
+ /* load the shfolder dll to retrieve SHGetFolderPath */
+ if( ( shfolder_dll = LoadLibrary( _T("SHFolder.dll") ) ) != NULL )
+ {
+ SHGetFolderPath = (void *)GetProcAddress( shfolder_dll,
+ _T("SHGetFolderPathA") );
+ if( SHGetFolderPath != NULL )
+ {
+ p_mypicturesdir = (char *)malloc( MAX_PATH );
+ if( p_mypicturesdir )
+ {
+
+ if( S_OK != SHGetFolderPath( NULL,
+ CSIDL_MYPICTURES | CSIDL_FLAG_CREATE,
+ NULL, SHGFP_TYPE_CURRENT,
+ p_mypicturesdir ) )
+ {
+ free( p_mypicturesdir );
+ p_mypicturesdir = NULL;
+ }
+ }
+ }
+ FreeLibrary( shfolder_dll );
+ }
+
+ if( p_mypicturesdir == NULL )
+ {
+ asprintf( &val.psz_string, "%s/" CONFIG_DIR,
+ p_vout->p_vlc->psz_homedir );
+ }
+ else
+ {
+ asprintf( &val.psz_string, p_mypicturesdir );
+ free( p_mypicturesdir );
+ }
+ }
+
+#else
+ if( !val.psz_string && p_vout->p_vlc->psz_homedir )
+ {
+ asprintf( &val.psz_string, "%s/" CONFIG_DIR,
+ p_vout->p_vlc->psz_homedir );
+ }
+#endif
+
+ if( !val.psz_string )
+ {
+ msg_Err( p_vout, "no directory specified for snapshots" );
+ return VLC_EGENERIC;
+ }
+ var_Get( p_vout, "snapshot-format", &format );
+ if( !format.psz_string || !*format.psz_string )
+ {
+ if( format.psz_string ) free( format.psz_string );
+ format.psz_string = strdup( "png" );
+ }
+
asprintf( &psz_filename, "%s/vlcsnap-%u.%s", val.psz_string,
(unsigned int)(p_pic->date / 100000) & 0xFFFFFF,
format.psz_string );