# include "config.h"
#endif
-#include <vlc/vlc.h>
+#include <vlc_common.h>
+#include <vlc_plugin.h>
#include <vlc_sout.h>
#include <vlc_codec.h>
#include <vlc_block.h>
-#include <vlc_input.h> /* hmmm, just for INPUT_RATE_DEFAULT */
#include "vlc_bits.h"
#include "vlc_block_helper.h"
static int Open ( vlc_object_t * );
static void Close( vlc_object_t * );
-vlc_module_begin();
- set_category( CAT_SOUT );
- set_subcategory( SUBCAT_SOUT_PACKETIZER );
- set_description( _("MPEG4 video packetizer") );
- set_capability( "packetizer", 50 );
- set_callbacks( Open, Close );
-vlc_module_end();
+vlc_module_begin ()
+ set_category( CAT_SOUT )
+ set_subcategory( SUBCAT_SOUT_PACKETIZER )
+ set_description( N_("MPEG4 video packetizer") )
+ set_capability( "packetizer", 50 )
+ set_callbacks( Open, Close )
+vlc_module_end ()
/****************************************************************************
* Local prototypes
/* Allocate the memory needed to store the decoder's structure */
if( ( p_dec->p_sys = p_sys = malloc( sizeof(decoder_sys_t) ) ) == NULL )
- {
- msg_Err( p_dec, "out of memory" );
- return VLC_EGENERIC;
- }
+ return VLC_ENOMEM;
memset( p_sys, 0, sizeof(decoder_sys_t) );
/* Misc init */
if( (*pp_block)->i_flags&BLOCK_FLAG_CORRUPTED )
{
p_sys->i_state = STATE_NOSYNC;
- block_BytestreamFlush( &p_sys->bytestream );
+ block_BytestreamEmpty( &p_sys->bytestream );
if( p_sys->p_frame )
block_ChainRelease( p_sys->p_frame );
p_sys->p_frame = NULL;
p_sys->pp_last = &p_sys->p_frame;
}
-// p_sys->i_interpolated_pts =
-// p_sys->i_interpolated_dts =
-// p_sys->i_last_ref_pts =
-// p_sys->i_last_time_ref =
-// p_sys->i_time_ref =
-// p_sys->i_last_time =
-// p_sys->i_last_timeincr = 0;
+ p_sys->i_interpolated_pts =
+ p_sys->i_interpolated_dts =
+ p_sys->i_last_ref_pts =
+ p_sys->i_last_time_ref =
+ p_sys->i_time_ref =
+ p_sys->i_last_time =
+ p_sys->i_last_timeincr = 0;
block_Release( *pp_block );
return NULL;
block_BytestreamFlush( &p_sys->bytestream );
p_pic->i_pts = i_pts = p_sys->bytestream.p_block->i_pts;
p_pic->i_dts = i_dts = p_sys->bytestream.p_block->i_dts;
- p_pic->i_rate = p_sys->bytestream.p_block->i_rate;
block_GetBytes( &p_sys->bytestream, p_pic->p_buffer,
p_pic->i_buffer );
{
/* We are dealing with a VOP */
p_pic = block_ChainGather( p_sys->p_frame );
+ p_pic->i_flags = p_sys->i_flags;
p_pic->i_pts = p_sys->i_interpolated_pts;
p_pic->i_dts = p_sys->i_interpolated_dts;
p_dec->fmt_in.video.i_frame_rate_base > 0 )
{
p_sys->i_interpolated_pts += INT64_C(1000000) *
- p_dec->fmt_in.video.i_frame_rate_base *
- p_vop->i_rate / INPUT_RATE_DEFAULT /
+ p_dec->fmt_in.video.i_frame_rate_base /
p_dec->fmt_in.video.i_frame_rate;
}
else if( p_dec->p_sys->i_fps_num )
p_sys->i_interpolated_pts +=
( INT64_C(1000000) * (i_time_ref + i_time_increment -
- p_sys->i_last_time - p_sys->i_last_timeincr) *
- p_vop->i_rate / INPUT_RATE_DEFAULT /
+ p_sys->i_last_time - p_sys->i_last_timeincr) /
p_dec->p_sys->i_fps_num );
p_sys->i_last_time = i_time_ref;