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 * );
#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;
}
......
......@@ -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;
......
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