From b1a94814dd6de01378f11039757007c6c2cadc4b Mon Sep 17 00:00:00 2001 From: beveloper Date: Tue, 23 Dec 2003 00:56:35 +0000 Subject: [PATCH] fixed a couple of issues with id3attr git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5737 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/os/media/MediaFile.h | 3 ++- .../media/plugins/mp3_decoder/mp3DecoderPlugin.cpp | 3 ++- src/kits/media/MediaFile.cpp | 9 +++++++-- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/headers/os/media/MediaFile.h b/headers/os/media/MediaFile.h index 54ad63be43..4624aa8d82 100644 --- a/headers/os/media/MediaFile.h +++ b/headers/os/media/MediaFile.h @@ -131,7 +131,8 @@ private: media_file_format fMFI; bool fFileClosed; - bool _reserved_was_fUnused[3]; + bool fDeleteSource; + bool _reserved_was_fUnused[2]; BMediaTrack **fTrackList; void Init(); diff --git a/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp b/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp index 5bbbad7e90..5fb2351f84 100644 --- a/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp +++ b/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp @@ -97,7 +97,8 @@ mp3Decoder::Setup(media_format *ioEncodedFormat, // put some more useful info into the media_format describing our input format ioEncodedFormat->u.encoded_audio.bit_rate = fBitRate; - + ioEncodedFormat->u.encoded_audio.output.frame_rate = fFrameRate; + ioEncodedFormat->u.encoded_audio.output.channel_count = fChannelCount; return B_OK; } diff --git a/src/kits/media/MediaFile.cpp b/src/kits/media/MediaFile.cpp index 1a6d029bf7..c9fcfd2be3 100644 --- a/src/kits/media/MediaFile.cpp +++ b/src/kits/media/MediaFile.cpp @@ -19,6 +19,7 @@ BMediaFile::BMediaFile(const entry_ref *ref) { CALLED(); Init(); + fDeleteSource = true; InitReader(new BFile(ref, O_RDONLY)); } @@ -34,6 +35,7 @@ BMediaFile::BMediaFile(const entry_ref * ref, { CALLED(); Init(); + fDeleteSource = true; InitReader(new BFile(ref, O_RDONLY), flags); } @@ -51,6 +53,7 @@ BMediaFile::BMediaFile(const entry_ref *ref, { CALLED(); Init(); + fDeleteSource = true; InitWriter(new BFile(ref, O_WRONLY), mfi, flags); } @@ -71,7 +74,8 @@ BMediaFile::~BMediaFile() ReleaseAllTracks(); delete fTrackList; delete fExtractor; - delete fSource; + if (fDeleteSource) + delete fSource; } status_t @@ -266,6 +270,7 @@ BMediaFile::Init() fTrackList = 0; fExtractor = 0; fErr = B_OK; + fDeleteSource = false; // not used so far: fEncoderMgr = 0; @@ -306,7 +311,7 @@ BMediaFile::InitWriter(BDataIO *source, const media_file_format * mfi, int32 fl //unimplemented BMediaFile::BMediaFile(); BMediaFile::BMediaFile(const BMediaFile&); -BMediaFile::BMediaFile& operator=(const BMediaFile&); + BMediaFile::BMediaFile& operator=(const BMediaFile&); */ status_t BMediaFile::_Reserved_BMediaFile_0(int32 arg, ...) { return B_ERROR; }