might work better

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1791 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
beveloper
2002-10-30 16:37:59 +00:00
parent 37192de9c0
commit 50051aab06
+13 -4
View File
@@ -109,22 +109,31 @@ BTrackReader::SetToTrack(BMediaTrack *track)
memset(&fmt,0,sizeof(fmt)); //wildcard
memcpy(&fmt.u.raw_audio,&fFormat,sizeof(fFormat));
fmt.type = B_MEDIA_RAW_AUDIO;
//try to find a output format
if (B_OK == track->DecodedFormat(&fmt)) {
memcpy(&fFormat,&fmt.u.raw_audio,sizeof(fFormat));
fMediaTrack = track;
return;
}
//try again
fmt.u.raw_audio.buffer_size = 0;
fmt.u.raw_audio.buffer_size = 2 * 4096;
fmt.u.raw_audio.format = media_raw_audio_format::B_AUDIO_FLOAT;
if (B_OK == track->DecodedFormat(&fmt)) {
memcpy(&fFormat,&fmt.u.raw_audio,sizeof(fFormat));
fMediaTrack = track;
return;
}
//try again
fmt.u.raw_audio.buffer_size = 4096;
fmt.u.raw_audio.format = media_raw_audio_format::B_AUDIO_SHORT;
if (B_OK == track->DecodedFormat(&fmt)) {
memcpy(&fFormat,&fmt.u.raw_audio,sizeof(fFormat));
fMediaTrack = track;
return;
}
//we have failed
TRACE("BTrackReader::SetToTrack failed\n");
}