]> git.sesse.net Git - vlc/commitdiff
file out: make time formatting optional (fixes #7768)
authorRémi Denis-Courmont <remi@remlab.net>
Tue, 20 Nov 2012 20:42:57 +0000 (22:42 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Tue, 20 Nov 2012 20:43:55 +0000 (22:43 +0200)
This feature has broken far too many scripts and code as it fails the
principle of least surprise.

modules/access_output/file.c
modules/codec/aes3.c

index 852ba11a86dbca710b7b77624ecc3277cb9b59d1..5b2ec2928d5379e3e90fb8256760c6e1041f2bc0 100644 (file)
@@ -68,6 +68,9 @@ static void Close( vlc_object_t * );
 #define APPEND_TEXT N_("Append to file")
 #define APPEND_LONGTEXT N_( "Append to file if it exists instead " \
                             "of replacing it.")
+#define FORMAT_TEXT N_("Format time and date")
+#define FORMAT_LONGTEXT N_("Perform ISO C time and date formatting " \
+    "on the file path")
 #define SYNC_TEXT N_("Synchronous writing")
 #define SYNC_LONGTEXT N_( "Open the file with synchronous writing.")
 
@@ -82,6 +85,8 @@ vlc_module_begin ()
               OVERWRITE_LONGTEXT, true )
     add_bool( SOUT_CFG_PREFIX "append", false, APPEND_TEXT,APPEND_LONGTEXT,
               true )
+    add_bool( SOUT_CFG_PREFIX "format", false, FORMAT_TEXT, FORMAT_LONGTEXT,
+              true )
 #ifdef O_SYNC
     add_bool( SOUT_CFG_PREFIX "sync", false, SYNC_TEXT,SYNC_LONGTEXT,
               false )
@@ -95,6 +100,7 @@ vlc_module_end ()
  *****************************************************************************/
 static const char *const ppsz_sout_options[] = {
     "append",
+    "format",
     "overwrite",
 #ifdef O_SYNC
     "sync",
@@ -160,8 +166,15 @@ static int Open( vlc_object_t *p_this )
     }
     else
     {
-        char *path = str_format_time (p_access->psz_path);
-        path_sanitize (path);
+        const char *path = p_access->psz_path;
+        char *buf = NULL;
+
+        if (var_InheritBool (p_access, SOUT_CFG_PREFIX"format"))
+        {
+            buf = str_format_time (path);
+            path_sanitize (buf);
+            path = buf;
+        }
 
         int flags = O_RDWR | O_CREAT | O_LARGEFILE;
         if (!overwrite)
@@ -189,7 +202,7 @@ static int Open( vlc_object_t *p_this )
                                 "overridden and its content will be lost."),
                                 _("Keep existing file"),
                                 _("Overwrite"), NULL) == 2);
-        free (path);
+        free (buf);
         if (fd == -1)
             return VLC_EGENERIC;
     }
index ea9ceae86bef6cff69aeea4daca8ff3c0d36cc31..33af9260ad9dd50171f26a6f270042a280bac7b2 100644 (file)
@@ -159,7 +159,7 @@ static block_t *Decode( decoder_t *p_dec, block_t **pp_block )
 
     if( i_bits == 24 )
     {
-        uint8_t *p_out = p_aout_buffer->p_buffer;
+        uint32_t *p_out = p_aout_buffer->p_buffer;
 
         while( p_block->i_buffer / 7 )
         {
@@ -182,7 +182,7 @@ static block_t *Decode( decoder_t *p_dec, block_t **pp_block )
     }
     else if( i_bits == 20 )
     {
-        uint8_t *p_out = p_aout_buffer->p_buffer;
+        uint32_t *p_out = p_aout_buffer->p_buffer;
 
         while( p_block->i_buffer / 6 )
         {
@@ -372,8 +372,8 @@ static block_t *Parse( decoder_t *p_dec, int *pi_frame_length, int *pi_bits,
     }
     else
     {
-        p_dec->fmt_out.i_codec = i_bits == 16 ? VLC_CODEC_S16L : VLC_CODEC_S24L;
-        p_dec->fmt_out.audio.i_bitspersample = i_bits == 16 ? 16 : 24;
+        p_dec->fmt_out.i_codec = i_bits == 16 ? VLC_CODEC_S16N : VLC_CODEC_S32N;
+        p_dec->fmt_out.audio.i_bitspersample = i_bits == 16 ? 16 : 32;
     }
 
     p_dec->fmt_out.audio.i_channels = i_channels;