Add timestamp, mikmod work now

Original commit message from CVS:
Add timestamp, mikmod work now
Put mikmod to secondary rank ( modplug first )
This commit is contained in:
Jeremy Simon 2002-06-22 16:20:25 +00:00
parent f981517414
commit c3c167f8ef
3 changed files with 17 additions and 11 deletions

View file

@ -44,6 +44,8 @@ static void mikmod_Update( void )
GST_BUFFER_DATA( outdata ) = g_memdup( audiobuffer, length );
GST_BUFFER_SIZE( outdata ) = length;
GST_BUFFER_TIMESTAMP( outdata ) = timestamp;
if ( need_sync == 1 )
{
/* FIXME, send a flush event or something */

View file

@ -332,7 +332,8 @@ gst_mikmod_loop (GstElement *element)
if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
break;
}
else
{
if ( mikmod->Buffer ) {
mikmod->Buffer = gst_buffer_append( mikmod->Buffer, buffer_in );
gst_buffer_unref( buffer_in );
@ -340,12 +341,15 @@ gst_mikmod_loop (GstElement *element)
else
mikmod->Buffer = buffer_in;
}
}
if ( mikmod->_16bit )
mode16bits = 16;
else
mode16bits = 8;
gst_mikmod_setup( mikmod );
MikMod_RegisterDriver(&drv_gst);
MikMod_RegisterAllLoaders();
@ -373,8 +377,9 @@ gst_mikmod_loop (GstElement *element)
do {
if ( Player_Active() ) {
drv_gst.Update();
timestamp = ( module->sngtime / 1024.0 ) * GST_SECOND;
drv_gst.Update();
gst_element_yield (element);
}
else {
@ -438,7 +443,6 @@ GstMikMod *mikmod;
GST_DEBUG (0,"state pending %d", GST_STATE_PENDING (element));
/* if going down into NULL state, close the file if it's open */
if (GST_STATE_PENDING (element) == GST_STATE_READY)
{
gst_mikmod_setup(mikmod);
@ -469,7 +473,6 @@ GstMikMod *mikmod;
MikMod_Exit();
/* if we haven't failed already, give the parent class a chance to ;-) */
if (GST_ELEMENT_CLASS (parent_class)->change_state)
return GST_ELEMENT_CLASS (parent_class)->change_state (element);
@ -611,7 +614,7 @@ plugin_init (GModule *module, GstPlugin *plugin)
factory = gst_element_factory_new("mikmod",GST_TYPE_MIKMOD,
&mikmod_details);
g_return_val_if_fail(factory != NULL, FALSE);
gst_element_factory_set_rank (factory, GST_ELEMENT_RANK_PRIMARY);
gst_element_factory_set_rank (factory, GST_ELEMENT_RANK_SECONDARY);
gst_element_factory_add_pad_template (factory, mikmod_src_factory ());
gst_element_factory_add_pad_template (factory, mikmod_sink_factory ());

View file

@ -76,6 +76,7 @@ typedef struct _GstMikModClass GstMikModClass;
MODULE *module;
MREADER *reader;
GstPad *srcpad;
gint64 timestamp;
int need_sync;
GType gst_mikmod_get_type(void);