When the decoder doesn't support the requested format, the raw decoder is utilized
to provide a format conversion to the requested raw format. Added a few workarounds for applications that don't requst the required format but instead assume to get a specific one. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6815 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -81,7 +81,7 @@ public:
|
||||
// The data returned through ReadFrames() will be in the format that's
|
||||
// returned by this function.
|
||||
|
||||
status_t DecodedFormat(media_format *inout_format);
|
||||
status_t DecodedFormat(media_format *inout_format, int32 flags = 0);
|
||||
|
||||
// CountFrames and Duration return the total number of frame and the
|
||||
// total duration (expressed in microseconds) of a track.
|
||||
@@ -206,9 +206,16 @@ private:
|
||||
BPrivate::media::Encoder *encoder,
|
||||
media_codec_info *mci);
|
||||
|
||||
#ifdef __BUILDING_MEDIA_TRACK_CPP
|
||||
status_t DecodedFormat(media_format *inout_format);
|
||||
#endif
|
||||
|
||||
void SetupWorkaround();
|
||||
bool SetupFormatTranslation(const media_format &from, media_format *to);
|
||||
|
||||
status_t fErr;
|
||||
BPrivate::media::Decoder *fDecoder;
|
||||
int32 __unused__fDecoderID;
|
||||
BPrivate::media::Decoder *fRawDecoder;
|
||||
BPrivate::media::MediaExtractor *fExtractor;
|
||||
|
||||
int32 fStream;
|
||||
@@ -221,7 +228,8 @@ private:
|
||||
int32 fEncoderID;
|
||||
BPrivate::MediaWriter *fWriter;
|
||||
media_format fWriterFormat;
|
||||
void *__unused__fExtractorCookie;
|
||||
|
||||
uint32 fWorkaroundFlags;
|
||||
|
||||
protected:
|
||||
int32 EncoderID() { return fEncoderID; };
|
||||
|
||||
Reference in New Issue
Block a user