2012/1/25 Rémi Denis-Courmont <span dir="ltr"><<a href="mailto:git@videolan.org">git@videolan.org</a>></span><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
vlc | branch: master | Rémi Denis-Courmont <<a href="mailto:remi@remlab.net">remi@remlab.net</a>> | Wed Jan 25 18:30:36 2012 +0200| [21145a5977bd146890017d0eccfdb4d317e8e7ea] | committer: Rémi Denis-Courmont<br>
<br>
TS: fix ts-dump error handling, remove a useless variable<br>
<br>
> <a href="http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=21145a5977bd146890017d0eccfdb4d317e8e7ea" target="_blank">http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=21145a5977bd146890017d0eccfdb4d317e8e7ea</a><br>
---<br>
<br>
modules/demux/ts.c | 64 ++++++++++++++++++++++++---------------------------<br>
1 files changed, 30 insertions(+), 34 deletions(-)<br>
<br>
diff --git a/modules/demux/ts.c b/modules/demux/ts.c<br>
index 89602b4..bc771d7 100644<br>
--- a/modules/demux/ts.c<br>
+++ b/modules/demux/ts.c<br>
@@ -392,7 +392,6 @@ struct demux_sys_t<br>
char *psz_file; /* file to dump data in */<br>
FILE *p_file; /* filehandle */<br>
uint64_t i_write; /* bytes written */<br>
- bool b_file_out; /* dump mode enabled */<br>
<br>
/* */<br>
bool b_start_record;<br>
@@ -590,12 +589,9 @@ static int Open( vlc_object_t *p_this )<br>
p_sys->i_write = 0;<br>
p_sys->buffer = NULL;<br>
p_sys->p_file = NULL;<br>
- p_sys->b_file_out = false;<br>
- p_sys->psz_file = var_CreateGetString( p_demux, "ts-dump-file" );<br>
- if( *p_sys->psz_file != '\0' )<br>
+ p_sys->psz_file = var_InheritString( p_demux, "ts-dump-file" );<br>
+ if( p_sys->psz_file != NULL )<br>
{<br>
- p_sys->b_file_out = true;<br>
-<br>
b_append = var_CreateGetBool( p_demux, "ts-dump-append" );<br>
if ( b_append )<br>
psz_mode = "ab";<br>
@@ -607,31 +603,33 @@ static int Open( vlc_object_t *p_this )<br>
msg_Info( p_demux, "dumping raw stream to standard output" );<br>
p_sys->p_file = stdout;<br>
}<br>
- else if( ( p_sys->p_file = vlc_fopen( p_sys->psz_file, psz_mode ) ) == NULL )<br></blockquote><div><br></div><div>Is the #include <vlc_fs.h> /* vlc_fopen for file-dump mode */ needed anymore?</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- {<br>
- msg_Err( p_demux, "cannot create `%s' for writing", p_sys->psz_file );<br>
- p_sys->b_file_out = false;<br>
- }<br>
-<br>
- if( p_sys->b_file_out )<br>
+ else<br>
{<br>
- /* Determine how many packets to read. */<br>
- int bufsize = var_CreateGetInteger( p_demux, "ts-dump-size" );<br>
- p_sys->i_ts_read = (int) (bufsize / p_sys->i_packet_size);<br>
- if( p_sys->i_ts_read <= 0 )<br>
+ p_sys->p_file = vlc_fopen( p_sys->psz_file, psz_mode );<br>
+ if( p_sys->p_file == NULL )<br>
{<br>
- p_sys->i_ts_read = 1500 / p_sys->i_packet_size;<br>
+ msg_Err( p_demux, "cannot write to file `%s': %m",<br>
+ p_sys->psz_file );<br>
+ free( p_sys->psz_file );<br>
+ vlc_mutex_destroy( &p_sys->csa_lock );<br>
+ free( p_sys );<br>
+ return VLC_EGENERIC;<br>
}<br>
- p_sys->buffer = xmalloc( p_sys->i_packet_size * p_sys->i_ts_read );<br>
- msg_Info( p_demux, "%s raw stream to file `%s' reading packets %d",<br>
- b_append ? "appending" : "dumping", p_sys->psz_file,<br>
- p_sys->i_ts_read );<br>
}<br>
- }<br>
<br>
- /* Fill p_demux field */<br>
- if( p_sys->b_file_out )<br>
+ /* Determine how many packets to read. */<br>
+ int bufsize = var_CreateGetInteger( p_demux, "ts-dump-size" );<br>
+ p_sys->i_ts_read = (int) (bufsize / p_sys->i_packet_size);<br>
+ if( p_sys->i_ts_read <= 0 )<br>
+ {<br>
+ p_sys->i_ts_read = 1500 / p_sys->i_packet_size;<br>
+ }<br>
+ p_sys->buffer = xmalloc( p_sys->i_packet_size * p_sys->i_ts_read );<br>
+ msg_Info( p_demux, "%s raw stream to file `%s' reading packets %d",<br>
+ b_append ? "appending" : "dumping", p_sys->psz_file,<br>
+ p_sys->i_ts_read );<br>
p_demux->pf_demux = DemuxFile;<br>
+ }<br>
else<br>
p_demux->pf_demux = Demux;<br>
p_demux->pf_control = Control;<br>
@@ -709,7 +707,7 @@ static int Open( vlc_object_t *p_this )<br>
p_sys->b_es_id_pid = var_CreateGetBool( p_demux, "ts-es-id-pid" );<br>
<br>
char* psz_string = var_CreateGetString( p_demux, "ts-out" );<br>
- if( psz_string && *psz_string && !p_sys->b_file_out )<br>
+ if( psz_string && *psz_string && !p_sys->p_file )<br>
{<br>
char *psz = strchr( psz_string, ':' );<br>
int i_port = 0;<br>
@@ -822,14 +820,15 @@ static int Open( vlc_object_t *p_this )<br>
p_sys->b_force_seek_per_percent = true;<br>
}<br>
<br>
- while( !p_sys->b_file_out && p_sys->i_pmt_es <= 0 &&<br>
- vlc_object_alive( p_demux ) )<br>
+ if( p_sys->p_file != NULL )<br>
+ return VLC_SUCCESS;<br>
+<br>
+ while( p_sys->i_pmt_es <= 0 && vlc_object_alive( p_demux ) )<br>
{<br>
if( p_demux->pf_demux( p_demux ) != 1 )<br>
break;<br>
}<br>
<br>
-<br>
return VLC_SUCCESS;<br>
}<br>
<br>
@@ -900,15 +899,12 @@ static void Close( vlc_object_t *p_this )<br>
free( p_sys->programs_list.p_values );<br>
<br>
/* If in dump mode, then close the file */<br>
- if( p_sys->b_file_out )<br>
+ if( p_sys->p_file != NULL )<br>
{<br>
msg_Info( p_demux ,"closing %s (%"PRId64" KiB dumped)",<br>
p_sys->psz_file, p_sys->i_write / 1024 );<br>
-<br>
if( p_sys->p_file != stdout )<br>
- {<br>
fclose( p_sys->p_file );<br>
- }<br>
}<br>
/* When streaming, close the port */<br>
if( p_sys->fd > -1 )<br>
@@ -1178,7 +1174,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )<br>
int64_t *pi64;<br>
int i_int;<br>
<br>
- if( p_sys->b_file_out )<br>
+ if( p_sys->p_file != NULL )<br>
return demux_vaControlHelper( p_demux->s, 0, -1, 0, 1, i_query, args );<br>
<br>
switch( i_query )<br>
<br>
_______________________________________________<br>
vlc-commits mailing list<br>
<a href="mailto:vlc-commits@videolan.org">vlc-commits@videolan.org</a><br>
<a href="http://mailman.videolan.org/listinfo/vlc-commits" target="_blank">http://mailman.videolan.org/listinfo/vlc-commits</a><br>
</blockquote></div><br>