Commit 400b9b64 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

file out: make time formatting optional (fixes #7768)

This feature has broken far too many scripts and code as it fails the
principle of least surprise.
parent db8b5801
...@@ -68,6 +68,9 @@ static void Close( vlc_object_t * ); ...@@ -68,6 +68,9 @@ static void Close( vlc_object_t * );
#define APPEND_TEXT N_("Append to file") #define APPEND_TEXT N_("Append to file")
#define APPEND_LONGTEXT N_( "Append to file if it exists instead " \ #define APPEND_LONGTEXT N_( "Append to file if it exists instead " \
"of replacing it.") "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_TEXT N_("Synchronous writing")
#define SYNC_LONGTEXT N_( "Open the file with synchronous writing.") #define SYNC_LONGTEXT N_( "Open the file with synchronous writing.")
...@@ -82,6 +85,8 @@ vlc_module_begin () ...@@ -82,6 +85,8 @@ vlc_module_begin ()
OVERWRITE_LONGTEXT, true ) OVERWRITE_LONGTEXT, true )
add_bool( SOUT_CFG_PREFIX "append", false, APPEND_TEXT,APPEND_LONGTEXT, add_bool( SOUT_CFG_PREFIX "append", false, APPEND_TEXT,APPEND_LONGTEXT,
true ) true )
add_bool( SOUT_CFG_PREFIX "format", false, FORMAT_TEXT, FORMAT_LONGTEXT,
true )
#ifdef O_SYNC #ifdef O_SYNC
add_bool( SOUT_CFG_PREFIX "sync", false, SYNC_TEXT,SYNC_LONGTEXT, add_bool( SOUT_CFG_PREFIX "sync", false, SYNC_TEXT,SYNC_LONGTEXT,
false ) false )
...@@ -95,6 +100,7 @@ vlc_module_end () ...@@ -95,6 +100,7 @@ vlc_module_end ()
*****************************************************************************/ *****************************************************************************/
static const char *const ppsz_sout_options[] = { static const char *const ppsz_sout_options[] = {
"append", "append",
"format",
"overwrite", "overwrite",
#ifdef O_SYNC #ifdef O_SYNC
"sync", "sync",
...@@ -160,8 +166,15 @@ static int Open( vlc_object_t *p_this ) ...@@ -160,8 +166,15 @@ static int Open( vlc_object_t *p_this )
} }
else else
{ {
char *path = str_format_time (p_access->psz_path); const char *path = p_access->psz_path;
path_sanitize (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; int flags = O_RDWR | O_CREAT | O_LARGEFILE;
if (!overwrite) if (!overwrite)
...@@ -189,7 +202,7 @@ static int Open( vlc_object_t *p_this ) ...@@ -189,7 +202,7 @@ static int Open( vlc_object_t *p_this )
"overridden and its content will be lost."), "overridden and its content will be lost."),
_("Keep existing file"), _("Keep existing file"),
_("Overwrite"), NULL) == 2); _("Overwrite"), NULL) == 2);
free (path); free (buf);
if (fd == -1) if (fd == -1)
return VLC_EGENERIC; return VLC_EGENERIC;
} }
......
...@@ -159,7 +159,7 @@ static block_t *Decode( decoder_t *p_dec, block_t **pp_block ) ...@@ -159,7 +159,7 @@ static block_t *Decode( decoder_t *p_dec, block_t **pp_block )
if( i_bits == 24 ) 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 ) while( p_block->i_buffer / 7 )
{ {
...@@ -182,7 +182,7 @@ static block_t *Decode( decoder_t *p_dec, block_t **pp_block ) ...@@ -182,7 +182,7 @@ static block_t *Decode( decoder_t *p_dec, block_t **pp_block )
} }
else if( i_bits == 20 ) 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 ) 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, ...@@ -372,8 +372,8 @@ static block_t *Parse( decoder_t *p_dec, int *pi_frame_length, int *pi_bits,
} }
else else
{ {
p_dec->fmt_out.i_codec = i_bits == 16 ? VLC_CODEC_S16L : VLC_CODEC_S24L; 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 : 24; p_dec->fmt_out.audio.i_bitspersample = i_bits == 16 ? 16 : 32;
} }
p_dec->fmt_out.audio.i_channels = i_channels; p_dec->fmt_out.audio.i_channels = i_channels;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment