media_format_h format;
media_packet_h packet;
media_format_mimetype_e mimetype;
- int width = 0;
- int height = 0;
if (push_media->mimetype & MEDIA_FORMAT_VIDEO) {
+ int width = 0;
+ int height = 0;
if (!muse_player->video_format) {
media_format_create(&muse_player->video_format);
if (!muse_player->video_format) {
ret |= media_format_set_video_height(muse_player->video_format, push_media->height);
}
ret |= media_format_get_video_info(muse_player->video_format, &mimetype, &width, &height, NULL, NULL);
- if (mimetype != push_media->mimetype) {
+ if (mimetype != push_media->mimetype || width != push_media->width || height != push_media->height) {
media_format_unref(muse_player->video_format);
media_format_create(&muse_player->video_format);
ret |= media_format_set_video_mime(muse_player->video_format, push_media->mimetype);
}
format = muse_player->video_format;
} else if (push_media->mimetype & MEDIA_FORMAT_AUDIO) {
+ int channel = 0;
+ int samplerate = 0;
if (!muse_player->audio_format) {
media_format_create(&muse_player->audio_format);
if (!muse_player->audio_format) {
return PLAYER_ERROR_INVALID_PARAMETER;
}
ret |= media_format_set_audio_mime(muse_player->audio_format, push_media->mimetype);
+ ret |= media_format_set_audio_channel(muse_player->audio_format, push_media->channels);
+ ret |= media_format_set_audio_samplerate(muse_player->audio_format, push_media->samplerate);
}
- ret |= media_format_get_audio_info(muse_player->audio_format, &mimetype, NULL, NULL, NULL, NULL);
- if (mimetype != push_media->mimetype) {
+ ret |= media_format_get_audio_info(muse_player->audio_format, &mimetype, &channel, &samplerate, NULL, NULL);
+ if (mimetype != push_media->mimetype || channel != push_media->channels || samplerate != push_media->samplerate) {
media_format_unref(muse_player->audio_format);
media_format_create(&muse_player->audio_format);
ret |= media_format_set_audio_mime(muse_player->audio_format, push_media->mimetype);
+ ret |= media_format_set_audio_channel(muse_player->audio_format, push_media->channels);
+ ret |= media_format_set_audio_samplerate(muse_player->audio_format, push_media->samplerate);
}
format = muse_player->audio_format;
} else {