* @post player_audio_pcm_extraction_cb() will be invoked.
* @see player_unset_audio_frame_decoded_cb_ex()
*/
-int player_set_pcm_extraction_mode(player_h player, bool sync, const char *format, player_audio_pcm_extraction_cb callback, void *user_data);
+int player_set_pcm_extraction_mode(player_h player, bool sync, player_audio_pcm_extraction_cb callback, void *user_data);
/**
* @brief Set pcm mode spec. Samplerate, channel is needed.
* @pre The player state must be #PLAYER_STATE_IDLE by player_create() or player_unprepare().
* @see player_set_pcm_extraction_mode()
*/
-int player_set_pcm_spec(player_h player, int samplerate, int channel);
+int player_set_pcm_spec(player_h player, const char *format, int samplerate, int channel);
/**
* @}
*/
* @pre The player state must be #PLAYER_STATE_IDLE by player_create() or player_unprepare().
* @post player_audio_pcm_extraction_cb() will be invoked.
*/
-int player_set_pcm_extraction_mode(player_h player, bool sync, const char *format, player_audio_pcm_extraction_cb callback, void *user_data);
+int player_set_pcm_extraction_mode(player_h player, bool sync, player_audio_pcm_extraction_cb callback, void *user_data);
/**
* @brief Set pcm mode spec. Samplerate, channel is needed.
* @since_tizen 2.4
* @pre The player state must be #PLAYER_STATE_IDLE by player_create() or player_unprepare().
* @see player_set_pcm_extraction_mode()
*/
-int player_set_pcm_spec(player_h player, int samplerate, int channel);
+int player_set_pcm_spec(player_h player, const char *format, int samplerate, int channel);
/**
* @}
return TRUE;
}
-int player_set_pcm_extraction_mode(player_h player, bool sync, const char *format, player_audio_pcm_extraction_cb callback, void *user_data)
+int player_set_pcm_extraction_mode(player_h player, bool sync, player_audio_pcm_extraction_cb callback, void *user_data)
{
PLAYER_INSTANCE_CHECK(player);
PLAYER_NULL_ARG_CHECK(callback);
player_s * handle = (player_s *) player;
int ret = MM_ERROR_NONE;
+
PLAYER_STATE_CHECK(handle, PLAYER_STATE_IDLE);
ret = mm_player_set_attribute(handle->mm_handle, NULL, "pcm_extraction",TRUE, "pcm_extraction_start_msec", 0, "pcm_extraction_end_msec", 0, NULL);
if(ret != MM_ERROR_NONE)
return __player_convert_error_code(ret,(char*)__FUNCTION__);
+ ret = mm_player_set_audio_stream_callback_ex(handle->mm_handle, sync, __audio_stream_callback_ex, (void*)handle);
+ if(ret != MM_ERROR_NONE)
+ return __player_convert_error_code(ret,(char*)__FUNCTION__);
+
+ PLAYER_SET_CALLBACK(_PLAYER_EVENT_TYPE_AUDIO_FRAME, handle, callback, user_data);
+ return PLAYER_ERROR_NONE;
+}
+
+int player_set_pcm_spec(player_h player, const char *format, int samplerate, int channel)
+{
+ PLAYER_INSTANCE_CHECK(player);
+
+ player_s * handle = (player_s *) player;
+ int ret = MM_ERROR_NONE;
+
+ LOGE("[%s] player_set_pcm_spec %s %d %d", __FUNCTION__, format, samplerate, channel);
ret = mm_player_set_attribute(handle->mm_handle, NULL, "pcm_audioformat", format , strlen(format), NULL);
if(ret != MM_ERROR_NONE)
return __player_convert_error_code(ret,(char*)__FUNCTION__);
- ret = mm_player_set_audio_stream_callback_ex(handle->mm_handle, sync, __audio_stream_callback_ex, (void*)handle);
+ ret = mm_player_set_pcm_spec(handle->mm_handle, samplerate, channel);
if(ret != MM_ERROR_NONE)
return __player_convert_error_code(ret,(char*)__FUNCTION__);
- PLAYER_SET_CALLBACK(_PLAYER_EVENT_TYPE_AUDIO_FRAME, handle, callback, user_data);
return PLAYER_ERROR_NONE;
}
-
fp_out2 = fopen("/opt/usr/media/out2.pcm", "wb");
#endif
- ret = player_set_pcm_extraction_mode(g_player[0], false, "F32LE", _audio_frame_decoded_cb_ex, &ret);
+ ret = player_set_pcm_extraction_mode(g_player[0], false, _audio_frame_decoded_cb_ex, &ret);
g_print(" ==> [Player_Test] player_set_audio_frame_decoded_cb_ex return: %d\n", ret);
}
{
int ret;
- ret = player_set_pcm_spec(g_player[0], 44100, 2);
+ ret = player_set_pcm_spec(g_player[0], "F32LE", 44100, 2);
g_print("[Player_Test] set_pcm_spec return: %d\n", ret);
}