Ticket #7430: ImageTrackVideoSupplier.h

File ImageTrackVideoSupplier.h, 1.6 KB (added by shinta, 13 years ago)
Line 
1/*
2 * Copyright 2011, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 * SHINTA
7 */
8#ifndef IMAGE_TRACK_VIDEO_SUPPLIER_H
9#define IMAGE_TRACK_VIDEO_SUPPLIER_H
10
11#include "VideoTrackSupplier.h"
12
13#include <Bitmap.h>
14#include <MediaFormats.h>
15
16class ImageTrackVideoSupplier : public VideoTrackSupplier {
17 public:
18 ImageTrackVideoSupplier(BBitmap* bitmap,
19 int32 trackIndex, status_t& initStatus);
20 virtual ~ImageTrackVideoSupplier();
21
22 virtual const media_format& Format() const;
23 virtual status_t GetEncodedFormat(media_format* format) const;
24 virtual status_t GetCodecInfo(media_codec_info* info) const;
25
26 virtual status_t ReadFrame(void* buffer,
27 bigtime_t* performanceTime,
28 const media_raw_video_format& format,
29 bool& wasCached);
30 virtual status_t FindKeyFrameForFrame(int64* frame);
31 virtual status_t SeekToTime(bigtime_t* performanceTime);
32 virtual status_t SeekToFrame(int64* frame);
33
34 virtual bigtime_t Position() const
35 { return fPerformanceTime; }
36 virtual bigtime_t Duration() const
37 { return fDuration; }
38 virtual int64 CurrentFrame() const
39 { return fCurrentFrame; }
40
41#if 0
42 virtual BRect Bounds() const;
43 virtual color_space ColorSpace() const;
44 virtual uint32 BytesPerRow() const;
45#endif
46
47 virtual int32 TrackIndex() const
48 { return fTrackIndex; }
49
50 private:
51 media_format fFormat;
52
53 bigtime_t fPerformanceTime;
54 bigtime_t fDuration;
55 int64 fCurrentFrame;
56
57 BBitmap* fBitmap;
58 int32 fTrackIndex;
59};
60
61#endif // IMAGE_TRACK_VIDEO_SUPPLIER_H