V4L/DVB (4372): Clean up some post mpeg-controls issues in pvrusb2
Fix a few miscellaneous issues in the pvrusb2 driver related to use of the new mpeg controls. This also should fix problems involving update of the saa7115 / cx25840 configuration as control changes are made. Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
committed by
Mauro Carvalho Chehab
parent
1ddf5bc547
commit
434449f4c8
@@ -40,32 +40,6 @@
|
|||||||
#include "pvrusb2-io.h"
|
#include "pvrusb2-io.h"
|
||||||
#include <media/cx2341x.h>
|
#include <media/cx2341x.h>
|
||||||
|
|
||||||
/* Legal values for the SRATE state variable */
|
|
||||||
#define PVR2_CVAL_SRATE_48 0
|
|
||||||
#define PVR2_CVAL_SRATE_44_1 1
|
|
||||||
|
|
||||||
/* Legal values for the AUDIOBITRATE state variable */
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_384 0
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_320 1
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_256 2
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_224 3
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_192 4
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_160 5
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_128 6
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_112 7
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_96 8
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_80 9
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_64 10
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_56 11
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_48 12
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_32 13
|
|
||||||
#define PVR2_CVAL_AUDIOBITRATE_VBR 14
|
|
||||||
|
|
||||||
/* Legal values for the AUDIOEMPHASIS state variable */
|
|
||||||
#define PVR2_CVAL_AUDIOEMPHASIS_NONE 0
|
|
||||||
#define PVR2_CVAL_AUDIOEMPHASIS_50_15 1
|
|
||||||
#define PVR2_CVAL_AUDIOEMPHASIS_CCITT 2
|
|
||||||
|
|
||||||
/* Legal values for PVR2_CID_HSM */
|
/* Legal values for PVR2_CID_HSM */
|
||||||
#define PVR2_CVAL_HSM_FAIL 0
|
#define PVR2_CVAL_HSM_FAIL 0
|
||||||
#define PVR2_CVAL_HSM_FULL 1
|
#define PVR2_CVAL_HSM_FULL 1
|
||||||
|
@@ -221,11 +221,12 @@ static const struct pvr2_mpeg_ids mpeg_ids[] = {
|
|||||||
};
|
};
|
||||||
#define MPEGDEF_COUNT (sizeof(mpeg_ids)/sizeof(mpeg_ids[0]))
|
#define MPEGDEF_COUNT (sizeof(mpeg_ids)/sizeof(mpeg_ids[0]))
|
||||||
|
|
||||||
static const char *control_values_srate[] = {
|
|
||||||
[PVR2_CVAL_SRATE_48] = "48KHz",
|
|
||||||
[PVR2_CVAL_SRATE_44_1] = "44.1KHz",
|
|
||||||
};
|
|
||||||
|
|
||||||
|
static const char *control_values_srate[] = {
|
||||||
|
[V4L2_MPEG_AUDIO_SAMPLING_FREQ_44100] = "44.1 kHz",
|
||||||
|
[V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000] = "48 kHz",
|
||||||
|
[V4L2_MPEG_AUDIO_SAMPLING_FREQ_32000] = "32 kHz",
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -729,9 +730,9 @@ static const struct pvr2_ctl_info control_defs[] = {
|
|||||||
DEFINT(200,625),
|
DEFINT(200,625),
|
||||||
},{
|
},{
|
||||||
.v4l_id = V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ,
|
.v4l_id = V4L2_CID_MPEG_AUDIO_SAMPLING_FREQ,
|
||||||
.desc = "Sample rate",
|
.default_value = V4L2_MPEG_AUDIO_SAMPLING_FREQ_48000,
|
||||||
|
.desc = "Audio Sampling Frequency",
|
||||||
.name = "srate",
|
.name = "srate",
|
||||||
.default_value = PVR2_CVAL_SRATE_48,
|
|
||||||
DEFREF(srate),
|
DEFREF(srate),
|
||||||
DEFENUM(control_values_srate),
|
DEFENUM(control_values_srate),
|
||||||
},{
|
},{
|
||||||
@@ -2237,11 +2238,14 @@ static int pvr2_hdw_commit_ctl_internal(struct pvr2_hdw *hdw)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (hdw->std_dirty ||
|
if (hdw->std_dirty ||
|
||||||
|
hdw->enc_stale ||
|
||||||
|
hdw->srate_dirty ||
|
||||||
|
hdw->res_ver_dirty ||
|
||||||
|
hdw->res_hor_dirty ||
|
||||||
0) {
|
0) {
|
||||||
/* If any of this changes, then the encoder needs to be
|
/* If any of this changes, then the encoder needs to be
|
||||||
reconfigured, and we need to reset the stream. */
|
reconfigured, and we need to reset the stream. */
|
||||||
stale_subsys_mask |= (1<<PVR2_SUBSYS_B_ENC_CFG);
|
stale_subsys_mask |= (1<<PVR2_SUBSYS_B_ENC_CFG);
|
||||||
stale_subsys_mask |= hdw->subsys_stream_mask;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hdw->srate_dirty) {
|
if (hdw->srate_dirty) {
|
||||||
|
Reference in New Issue
Block a user