Commit 7fba2721 authored by Rafaël Carré's avatar Rafaël Carré

avformat mux: convert to new avio API (cherry picked from commit...

avformat mux: convert to new avio API (cherry picked from commit 0011b704)
Signed-off-by: default avatarKO Myung-Hun <komh@chollian.net>
Signed-off-by: default avatarRafaël Carré <funman@videolan.org>
parent 66dbb503
...@@ -55,7 +55,11 @@ static const char *const ppsz_mux_options[] = { ...@@ -55,7 +55,11 @@ static const char *const ppsz_mux_options[] = {
*****************************************************************************/ *****************************************************************************/
struct sout_mux_sys_t struct sout_mux_sys_t
{ {
#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(105<<8)+0)
AVIOContext *io;
#else
ByteIOContext io; ByteIOContext io;
#endif
int io_buffer_size; int io_buffer_size;
uint8_t *io_buffer; uint8_t *io_buffer;
...@@ -86,7 +90,6 @@ int OpenMux( vlc_object_t *p_this ) ...@@ -86,7 +90,6 @@ int OpenMux( vlc_object_t *p_this )
AVOutputFormat *file_oformat; AVOutputFormat *file_oformat;
sout_mux_t *p_mux = (sout_mux_t*)p_this; sout_mux_t *p_mux = (sout_mux_t*)p_this;
sout_mux_sys_t *p_sys; sout_mux_sys_t *p_sys;
AVFormatParameters params, *ap = &params;
char *psz_mux; char *psz_mux;
/* Should we call it only once ? */ /* Should we call it only once ? */
...@@ -133,9 +136,18 @@ int OpenMux( vlc_object_t *p_this ) ...@@ -133,9 +136,18 @@ int OpenMux( vlc_object_t *p_this )
/* Create I/O wrapper */ /* Create I/O wrapper */
p_sys->io_buffer_size = 32768; /* FIXME */ p_sys->io_buffer_size = 32768; /* FIXME */
p_sys->io_buffer = malloc( p_sys->io_buffer_size ); p_sys->io_buffer = malloc( p_sys->io_buffer_size );
init_put_byte( &p_sys->io, p_sys->io_buffer, p_sys->io_buffer_size,
1, p_mux, NULL, IOWrite, IOSeek );
#if (LIBAVFORMAT_VERSION_INT >= ((52<<16)+(105<<8)+0))
p_sys->io = avio_alloc_context(
#else
init_put_byte( &p_sys->io,
#endif
p_sys->io_buffer, p_sys->io_buffer_size,
1, p_mux, NULL, IOWrite, IOSeek );
#if (LIBAVFORMAT_VERSION_INT < ((52<<16)+(105<<8)+0))
AVFormatParameters params, *ap = &params;
memset( ap, 0, sizeof(*ap) ); memset( ap, 0, sizeof(*ap) );
if( av_set_parameters( p_sys->oc, ap ) < 0 ) if( av_set_parameters( p_sys->oc, ap ) < 0 )
{ {
...@@ -145,8 +157,13 @@ int OpenMux( vlc_object_t *p_this ) ...@@ -145,8 +157,13 @@ int OpenMux( vlc_object_t *p_this )
free( p_sys ); free( p_sys );
return VLC_EGENERIC; return VLC_EGENERIC;
} }
#endif
#if (LIBAVFORMAT_VERSION_INT >= ((52<<16)+(105<<8)+0))
p_sys->oc->pb = p_sys->io;
#else
p_sys->oc->pb = &p_sys->io; p_sys->oc->pb = &p_sys->io;
#endif
p_sys->oc->nb_streams = 0; p_sys->oc->nb_streams = 0;
p_sys->b_write_header = true; p_sys->b_write_header = true;
......
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