git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36196 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2010-04-12 20:13:40 +00:00
parent 8f2d34d9e0
commit ac8b5878d7
3 changed files with 41 additions and 40 deletions
@@ -5,14 +5,14 @@
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
*/ */
#ifndef __FIREWIRE_CARD_H #ifndef __FIREWIRE_CARD_H
#define __FIREWIRE_CARD_H #define __FIREWIRE_CARD_H
#include <SupportDefs.h> #include <SupportDefs.h>
class FireWireCard
{ class FireWireCard {
public: public:
enum fmt_type { enum fmt_type {
FMT_MPEGTS = 0, FMT_MPEGTS = 0,
@@ -33,7 +33,7 @@ private:
ssize_t DvRead(void** buffer); ssize_t DvRead(void** buffer);
status_t DvExtract(void* dest, void** src, ssize_t* sizeUsed); status_t DvExtract(void* dest, void** src, ssize_t* sizeUsed);
ssize_t MpegtsRead(void** buffer); ssize_t MpegtsRead(void** buffer);
status_t MpegtsExtract(void* dest, void** src, status_t MpegtsExtract(void* dest, void** src,
ssize_t* sizeUsed); ssize_t* sizeUsed);
status_t fInitStatus; status_t fInitStatus;
@@ -47,4 +47,3 @@ private:
}; };
#endif #endif
@@ -4,36 +4,37 @@
* Copyright (c) 2008, JiSheng Zhang ([email protected]) * Copyright (c) 2008, JiSheng Zhang ([email protected])
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Based on DVB media addon * Based on DVB media addon
* Copyright (c) 2004-2007 Marcus Overhagen <[email protected]> * Copyright (c) 2004-2007 Marcus Overhagen <[email protected]>
*/ */
#ifndef _FIREWIRE_DV_ADDON_H_ #ifndef _FIREWIRE_DV_ADDON_H_
#define _FIREWIRE_DV_ADDON_H_ #define _FIREWIRE_DV_ADDON_H_
#include <MediaAddOn.h> #include <MediaAddOn.h>
#include <ObjectList.h> #include <ObjectList.h>
class FireWireCard; class FireWireCard;
struct device_info; struct device_info;
class FireWireDVAddOn : public BMediaAddOn
{ class FireWireDVAddOn : public BMediaAddOn {
public: public:
FireWireDVAddOn(image_id id); FireWireDVAddOn(image_id id);
~FireWireDVAddOn(); ~FireWireDVAddOn();
status_t InitCheck(const char** out_failure_text); status_t InitCheck(const char** out_failure_text);
int32 CountFlavors(); int32 CountFlavors();
status_t GetFlavorAt(int32 n, const flavor_info** out_info); status_t GetFlavorAt(int32 n, const flavor_info** out_info);
BMediaNode* InstantiateNodeFor(const flavor_info* info, BMediaNode* InstantiateNodeFor(const flavor_info* info,
BMessage* config, status_t* out_error); BMessage* config, status_t* out_error);
bool WantsAutoStart(); bool WantsAutoStart();
status_t AutoStart(int index, BMediaNode** outNode, status_t AutoStart(int index, BMediaNode** outNode,
int32* outInternalID, bool* outHasMore); int32* outInternalID, bool* outHasMore);
protected: protected:
@@ -4,7 +4,7 @@
* Copyright (c) 2008, JiSheng Zhang ([email protected]) * Copyright (c) 2008, JiSheng Zhang ([email protected])
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Based on DVB media addon * Based on DVB media addon
* Copyright (c) 2004-2007 Marcus Overhagen <[email protected]> * Copyright (c) 2004-2007 Marcus Overhagen <[email protected]>
*/ */
@@ -21,17 +21,19 @@
#include <media/MediaNode.h> #include <media/MediaNode.h>
#include <support/Locker.h> #include <support/Locker.h>
class FireWireCard; class FireWireCard;
class BParameterGroup; class BParameterGroup;
class FireWireDVNode : public virtual BBufferProducer,
class FireWireDVNode : public virtual BBufferProducer,
public virtual BControllable, public virtual BMediaEventLooper { public virtual BControllable, public virtual BMediaEventLooper {
public: public:
FireWireDVNode(BMediaAddOn *addon, FireWireDVNode(BMediaAddOn *addon,
const char *name, int32 internal_id, const char *name, int32 internal_id,
FireWireCard *card); FireWireCard *card);
virtual ~FireWireDVNode(); virtual ~FireWireDVNode();
virtual status_t InitCheck() const { return fInitStatus; } virtual status_t InitCheck() const { return fInitStatus; }
/* BMediaNode */ /* BMediaNode */
@@ -39,7 +41,7 @@ public:
virtual BMediaAddOn *AddOn(int32 * internal_id) const; virtual BMediaAddOn *AddOn(int32 * internal_id) const;
virtual status_t HandleMessage(int32 message, const void *data, virtual status_t HandleMessage(int32 message, const void *data,
size_t size); size_t size);
protected: protected:
virtual void Preroll(); virtual void Preroll();
virtual void SetTimeSource(BTimeSource * time_source); virtual void SetTimeSource(BTimeSource * time_source);
virtual void SetRunMode(run_mode mode); virtual void SetRunMode(run_mode mode);
@@ -48,21 +50,21 @@ protected:
protected: protected:
virtual void NodeRegistered(); virtual void NodeRegistered();
virtual void HandleEvent(const media_timed_event *event, virtual void HandleEvent(const media_timed_event *event,
bigtime_t lateness, bigtime_t lateness,
bool realTimeEvent = false); bool realTimeEvent = false);
/* BBufferProducer */ /* BBufferProducer */
protected: protected:
virtual status_t FormatSuggestionRequested(media_type type, virtual status_t FormatSuggestionRequested(media_type type,
int32 quality, media_format* format); int32 quality, media_format* format);
virtual status_t FormatProposal(const media_source &source, virtual status_t FormatProposal(const media_source &source,
media_format* format); media_format* format);
virtual status_t FormatChangeRequested( virtual status_t FormatChangeRequested(
const media_source &source, const media_source &source,
const media_destination &destination, const media_destination &destination,
media_format* io_format, media_format* io_format,
int32* _deprecated_); int32* _deprecated_);
virtual status_t GetNextOutput(int32* cookie, virtual status_t GetNextOutput(int32* cookie,
media_output* out_output); media_output* out_output);
virtual status_t DisposeOutputCookie(int32 cookie); virtual status_t DisposeOutputCookie(int32 cookie);
virtual status_t SetBufferGroup(const media_source& for_source, virtual status_t SetBufferGroup(const media_source& for_source,
@@ -76,30 +78,30 @@ protected:
virtual status_t PrepareToConnect(const media_source& what, virtual status_t PrepareToConnect(const media_source& what,
const media_destination& where, const media_destination& where,
media_format* format, media_format* format,
media_source* out_source, media_source* out_source,
char* out_name); char* out_name);
virtual void Connect(status_t error, virtual void Connect(status_t error,
const media_source& source, const media_source& source,
const media_destination& destination, const media_destination& destination,
const media_format& format, const media_format& format,
char* io_name); char* io_name);
virtual void Disconnect(const media_source& what, virtual void Disconnect(const media_source& what,
const media_destination& where); const media_destination& where);
virtual void LateNoticeReceived(const media_source& what, virtual void LateNoticeReceived(const media_source& what,
bigtime_t how_much, bigtime_t how_much,
bigtime_t performance_time); bigtime_t performance_time);
virtual void EnableOutput(const media_source& what, virtual void EnableOutput(const media_source& what,
bool enabled, int32* _deprecated_); bool enabled, int32* _deprecated_);
virtual void AdditionalBufferRequested( virtual void AdditionalBufferRequested(
const media_source& source, const media_source& source,
media_buffer_id prev_buffer, media_buffer_id prev_buffer,
bigtime_t prev_time, bigtime_t prev_time,
const media_seek_tag* prev_tag); const media_seek_tag* prev_tag);
/* BControllable */ /* BControllable */
protected: protected:
virtual status_t GetParameterValue(int32 id, virtual status_t GetParameterValue(int32 id,
bigtime_t* last_change, void* value, bigtime_t* last_change, void* value,
size_t* size); size_t* size);
virtual void SetParameterValue(int32 id, bigtime_t when, virtual void SetParameterValue(int32 id, bigtime_t when,
const void* value, size_t size); const void* value, size_t size);
@@ -111,16 +113,16 @@ private:
void HandleTimeWarp(bigtime_t performance_time); void HandleTimeWarp(bigtime_t performance_time);
void HandleSeek(bigtime_t performance_time); void HandleSeek(bigtime_t performance_time);
BParameterWeb* CreateParameterWeb(); BParameterWeb* CreateParameterWeb();
void SetAboutInfo(BParameterGroup *about); void SetAboutInfo(BParameterGroup *about);
void RefreshParameterWeb(); void RefreshParameterWeb();
status_t StartCapture(); status_t StartCapture();
status_t StopCapture(); status_t StopCapture();
status_t StartCaptureThreads(); status_t StartCaptureThreads();
status_t StopCaptureThreads(); status_t StopCaptureThreads();
static int32 _card_reader_thread_(void *arg); static int32 _card_reader_thread_(void *arg);
@@ -129,7 +131,7 @@ private:
status_t fInitStatus; status_t fInitStatus;
int32 fInternalID; int32 fInternalID;
BMediaAddOn* fAddOn; BMediaAddOn* fAddOn;
bool fOutputEnabledEncVideo; bool fOutputEnabledEncVideo;
media_output fOutputEncVideo; media_output fOutputEncVideo;
media_format fDefaultFormatEncVideo; media_format fDefaultFormatEncVideo;
FireWireCard* fCard; FireWireCard* fCard;
@@ -144,4 +146,3 @@ private:
}; };
#endif // __FIREWIRE_DV_NODE_H #endif // __FIREWIRE_DV_NODE_H