}
else
{
- void *p = NULL;
- while ( ( p = mlt_deque_pop_front( MLT_FRAME_IMAGE_STACK( temp ) ) ) != NULL )
- mlt_deque_push_back( MLT_FRAME_IMAGE_STACK( *frame ), p );
+ mlt_frame_push_service( *frame, temp );
+ mlt_frame_push_service( *frame, producer_get_image );
mlt_properties_set_int( frame_properties, "meta.fx_cut", 1 );
}
if ( audio )
{
// Take all but the first placeholding producer and dump on to the audio stack
- void *p = mlt_deque_pop_front( MLT_FRAME_AUDIO_STACK( temp ) );
+ void *p = !mlt_frame_is_test_audio( temp ) ? mlt_deque_pop_front( MLT_FRAME_AUDIO_STACK( temp ) ) : NULL;
while ( ( p = mlt_deque_pop_front( MLT_FRAME_AUDIO_STACK( temp ) ) ) != NULL )
mlt_deque_push_back( MLT_FRAME_AUDIO_STACK( audio ), p );
}
else
{
- void *p = NULL;
- while ( ( p = mlt_deque_pop_front( MLT_FRAME_AUDIO_STACK( temp ) ) ) != NULL )
- mlt_deque_push_back( MLT_FRAME_AUDIO_STACK( *frame ), p );
+ mlt_frame_push_audio( *frame, temp );
+ mlt_frame_push_audio( *frame, producer_get_audio );
mlt_properties_set_int( frame_properties, "meta.fx_cut", 1 );
}