mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-25 01:30:38 +00:00
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:
parent
f981517414
commit
c3c167f8ef
3 changed files with 17 additions and 11 deletions
|
@ -44,6 +44,8 @@ static void mikmod_Update( void )
|
||||||
GST_BUFFER_DATA( outdata ) = g_memdup( audiobuffer, length );
|
GST_BUFFER_DATA( outdata ) = g_memdup( audiobuffer, length );
|
||||||
GST_BUFFER_SIZE( outdata ) = length;
|
GST_BUFFER_SIZE( outdata ) = length;
|
||||||
|
|
||||||
|
GST_BUFFER_TIMESTAMP( outdata ) = timestamp;
|
||||||
|
|
||||||
if ( need_sync == 1 )
|
if ( need_sync == 1 )
|
||||||
{
|
{
|
||||||
/* FIXME, send a flush event or something */
|
/* FIXME, send a flush event or something */
|
||||||
|
|
|
@ -332,13 +332,15 @@ gst_mikmod_loop (GstElement *element)
|
||||||
if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
|
if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( mikmod->Buffer ) {
|
|
||||||
mikmod->Buffer = gst_buffer_append( mikmod->Buffer, buffer_in );
|
|
||||||
gst_buffer_unref( buffer_in );
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
mikmod->Buffer = buffer_in;
|
{
|
||||||
|
if ( mikmod->Buffer ) {
|
||||||
|
mikmod->Buffer = gst_buffer_append( mikmod->Buffer, buffer_in );
|
||||||
|
gst_buffer_unref( buffer_in );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
mikmod->Buffer = buffer_in;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( mikmod->_16bit )
|
if ( mikmod->_16bit )
|
||||||
|
@ -346,6 +348,8 @@ gst_mikmod_loop (GstElement *element)
|
||||||
else
|
else
|
||||||
mode16bits = 8;
|
mode16bits = 8;
|
||||||
|
|
||||||
|
gst_mikmod_setup( mikmod );
|
||||||
|
|
||||||
MikMod_RegisterDriver(&drv_gst);
|
MikMod_RegisterDriver(&drv_gst);
|
||||||
MikMod_RegisterAllLoaders();
|
MikMod_RegisterAllLoaders();
|
||||||
|
|
||||||
|
@ -373,8 +377,9 @@ gst_mikmod_loop (GstElement *element)
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if ( Player_Active() ) {
|
if ( Player_Active() ) {
|
||||||
drv_gst.Update();
|
|
||||||
|
|
||||||
|
timestamp = ( module->sngtime / 1024.0 ) * GST_SECOND;
|
||||||
|
drv_gst.Update();
|
||||||
gst_element_yield (element);
|
gst_element_yield (element);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -438,7 +443,6 @@ GstMikMod *mikmod;
|
||||||
|
|
||||||
GST_DEBUG (0,"state pending %d", GST_STATE_PENDING (element));
|
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)
|
if (GST_STATE_PENDING (element) == GST_STATE_READY)
|
||||||
{
|
{
|
||||||
gst_mikmod_setup(mikmod);
|
gst_mikmod_setup(mikmod);
|
||||||
|
@ -469,7 +473,6 @@ GstMikMod *mikmod;
|
||||||
MikMod_Exit();
|
MikMod_Exit();
|
||||||
|
|
||||||
|
|
||||||
/* if we haven't failed already, give the parent class a chance to ;-) */
|
|
||||||
if (GST_ELEMENT_CLASS (parent_class)->change_state)
|
if (GST_ELEMENT_CLASS (parent_class)->change_state)
|
||||||
return GST_ELEMENT_CLASS (parent_class)->change_state (element);
|
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,
|
factory = gst_element_factory_new("mikmod",GST_TYPE_MIKMOD,
|
||||||
&mikmod_details);
|
&mikmod_details);
|
||||||
g_return_val_if_fail(factory != NULL, FALSE);
|
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_src_factory ());
|
||||||
gst_element_factory_add_pad_template (factory, mikmod_sink_factory ());
|
gst_element_factory_add_pad_template (factory, mikmod_sink_factory ());
|
||||||
|
|
|
@ -76,6 +76,7 @@ typedef struct _GstMikModClass GstMikModClass;
|
||||||
MODULE *module;
|
MODULE *module;
|
||||||
MREADER *reader;
|
MREADER *reader;
|
||||||
GstPad *srcpad;
|
GstPad *srcpad;
|
||||||
|
gint64 timestamp;
|
||||||
int need_sync;
|
int need_sync;
|
||||||
|
|
||||||
GType gst_mikmod_get_type(void);
|
GType gst_mikmod_get_type(void);
|
||||||
|
|
Loading…
Reference in a new issue