~ubuntu-branches/ubuntu/precise/vdr-plugin-xineliboutput/precise

« back to all changes in this revision

Viewing changes to device.h

  • Committer: Bazaar Package Importer
  • Author(s): Tobias Grimm
  • Date: 2010-05-02 15:19:11 UTC
  • mfrom: (1.2.1 upstream) (3.1.6 sid)
  • Revision ID: james.westby@ubuntu.com-20100502151911-76o36blrqp5jjsgb
Tags: 1.0.6~cvs20100502.0851-1
* New Upstream Snapshot
* source/format 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
4
4
 * See the main source file 'xineliboutput.c' for copyright information and
5
5
 * how to reach the author.
6
6
 *
7
 
 * $Id: device.h,v 1.49 2009/08/01 19:50:36 phintuka Exp $
 
7
 * $Id: device.h,v 1.34.2.4 2009/09/14 10:51:55 phintuka Exp $
8
8
 *
9
9
 */
10
10
 
82
82
 
83
83
  // Device capabilities
84
84
 
 
85
  private:
 
86
    bool      m_VDR_TrickSpeedIBP;
 
87
 
85
88
  public:
 
89
 
86
90
    virtual bool HasDecoder(void) const { return true; };
87
91
    virtual bool CanReplay(void) const { return true; };
88
 
    virtual bool HasIBPTrickSpeed(void) { return xc.ibp_trickspeed; }
 
92
 
 
93
    virtual bool HasIBPTrickSpeed(void);
89
94
 
90
95
  // Playback control
91
96
 
108
113
    virtual bool    Flush(int TimeoutMs = 0);
109
114
    virtual int64_t GetSTC(void);
110
115
 
 
116
    bool UseIBPTrickSpeed(void);
 
117
 
111
118
  // Video format facilities
112
119
 
113
120
  public:
116
123
    virtual eVideoSystem GetVideoSystem(void);
117
124
 
118
125
    struct video_size_s *m_VideoSize;
119
 
#if VDRVERSNUM >= 10708
120
 
    virtual void GetVideoSize(int &Width, int &Height, double &VideoAspect);
121
 
#endif
122
126
    virtual void GetOsdSize(int &Width, int &Height, double &PixelAspect);
123
127
 
124
128
  // Track facilities
126
130
  protected:
127
131
    virtual void SetAudioTrackDevice(eTrackType Type);
128
132
  public:
 
133
#if VDRVERSNUM < 10515
 
134
    void ClrAvailableDvdSpuTracks(bool NotifyFrontend = true);
 
135
    bool SetAvailableDvdSpuTrack(int Type, const char *lang = NULL, bool Current = false);
 
136
 
 
137
    int   NumDvdSpuTracks(void) const;
 
138
    const tTrackId *GetDvdSpuTrack(int Type) const;
 
139
    const char *GetDvdSpuLang(int Type) const;
 
140
 
 
141
    int   GetCurrentDvdSpuTrack(void) const { return m_CurrentDvdSpuTrack; }
 
142
    bool  SetCurrentDvdSpuTrack(int Type, bool Force=false);
 
143
    void  EnsureDvdSpuTrack(void);
 
144
#else
129
145
    virtual void SetSubtitleTrackDevice(eTrackType Type);
 
146
#endif
130
147
 
131
148
  // Audio facilities
132
149
 
212
229
  // Metainfo cache
213
230
 
214
231
  private:
 
232
#if VDRVERSNUM < 10515
 
233
    // (DVD) SPU tracks
 
234
    tTrackId m_DvdSpuTrack[64];
 
235
    int      m_CurrentDvdSpuTrack;
 
236
    bool     m_ForcedDvdSpuTrack;
 
237
#endif
215
238
    char     m_MetaInfo[mi_Count][MAX_METAINFO_LEN+1];
216
239
 
217
240
  public:
243
266
    virtual int  PlayAudio(const uchar *Data, int Length, uchar Id);
244
267
    virtual int  PlaySubtitle(const uchar *Data, int Length);
245
268
 
246
 
#if VDRVERSNUM >= 10701
247
 
    cPatPmtParser m_PatPmtParser;
248
 
 
249
 
    /* join multiple TS packets to xineliboutput transport packet */
250
 
    uint8_t       m_TsBuf[4096];
251
 
    uint          m_TsBufSize;
252
 
    int           TsBufferFlush(void);
253
 
    void          TsBufferClear(void) { m_TsBufSize = 0; };
254
 
 
255
 
    int           PlayTsAny(const uchar *Data, int Length);
256
 
 
257
 
    virtual int PlayTsVideo(const uchar *Data, int Length);
258
 
    virtual int PlayTsAudio(const uchar *Data, int Length);
259
 
    virtual int PlayTsSubtitle(const uchar *Data, int Length);
260
 
    virtual int PlayTs(const uchar *Data, int Length, bool VideoOnly = false);
261
 
#else
262
 
    void        TsBufferClear(void) {}
263
 
    void        TsBufferFlush(void) {}
 
269
#if VDRVERSNUM < 10510
 
270
    // conflicts with vdr-1.5.10+ DVB subtitle handling
 
271
    // override cDevice to get DVD SPUs
 
272
    virtual int PlayPesPacket(const uchar *Data, int Length,
 
273
                              bool VideoOnly = false);
264
274
#endif
265
275
};
266
276