From 50051aab0680c276d6d7f70e0d670ea4d1037c60 Mon Sep 17 00:00:00 2001 From: beveloper Date: Wed, 30 Oct 2002 16:37:59 +0000 Subject: [PATCH] might work better git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1791 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kits/media/TrackReader.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/kits/media/TrackReader.cpp b/src/kits/media/TrackReader.cpp index 4bdf7d1b8c..a9c811390b 100644 --- a/src/kits/media/TrackReader.cpp +++ b/src/kits/media/TrackReader.cpp @@ -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"); }