diff options
author | Mike Isely <isely@pobox.com> | 2008-02-03 15:40:46 -0600 |
---|---|---|
committer | Mike Isely <isely@pobox.com> | 2008-02-03 15:40:46 -0600 |
commit | ec2bc3423e5768eb58b32bc15ebbba3d31f42c85 (patch) | |
tree | f52a059257e9f2882ad63066953cd01c77edfcc9 /linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h | |
parent | ba1027b988b2df2c233e524b09f07d9584177721 (diff) | |
download | mediapointer-dvb-s2-ec2bc3423e5768eb58b32bc15ebbba3d31f42c85.tar.gz mediapointer-dvb-s2-ec2bc3423e5768eb58b32bc15ebbba3d31f42c85.tar.bz2 |
pvrusb2: Enhance core logic to also control digital streaming
From: Mike Isely <isely@pobox.com>
This is a major pvrusb2 change. The driver core has an algorithm that
is used to cleanly sequence the changes needed to enable / disable
video streaming. The algorithm had originally been written for analog
streaming, but when in digital mode the pipeline is considerably
different - for example the mpeg encoder is not used. These changes
to the core logic implement correct pipeline control when in digital
mode. Knowing which pipeline to handle and how to handle it is
completely driven by the current input selection. So, in theory, to
perform digital stream now all one has to do is switch input to dtv
and start streaming as usual. Well, in theory. The reality is that
digital tuner and demod control are still not in the driver core yet
so until that is present there's nothing to actually stream.
Signed-off-by: Mike Isely <isely@pobox.com>
Diffstat (limited to 'linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h')
-rw-r--r-- | linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h b/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h index 493b78ebf..ae0b13d4e 100644 --- a/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h +++ b/linux/drivers/media/video/pvrusb2/pvrusb2-hdw-internal.h @@ -167,6 +167,11 @@ struct pvr2_decoder_ctrl { #define FW1_STATE_RELOAD 3 #define FW1_STATE_OK 4 +/* What state the device is in if it is a hybrid */ +#define PVR2_PATHWAY_UNKNOWN 0 +#define PVR2_PATHWAY_ANALOG 1 +#define PVR2_PATHWAY_DIGITAL 2 + typedef int (*pvr2_i2c_func)(struct pvr2_hdw *,u8,u8 *,u16,u8 *, u16); #define PVR2_I2C_FUNC_CNT 128 @@ -245,6 +250,7 @@ struct pvr2_hdw { /* Bits of state that describe what is going on with various parts of the driver. */ + int state_pathway_ok; /* Pathway config is ok */ int state_encoder_ok; /* Encoder is operational */ int state_encoder_run; /* Encoder is running */ int state_encoder_config; /* Encoder is configured */ @@ -283,6 +289,7 @@ struct pvr2_hdw { int flag_disconnected; /* flag_ok == 0 due to disconnect */ int flag_init_ok; /* true if structure is fully initialized */ int fw1_state; /* current situation with fw1 */ + int pathway_state; /* one of PVR2_PATHWAY_xxx */ int flag_decoder_missed;/* We've noticed missing decoder */ int flag_tripped; /* Indicates overall failure to start */ |