Ok.  The command doesn't work permanently. Apparently MythTv sets a volume each time a stream starts.  I couldn't find this functionality in the code of mythtv (.17) and it doesn't compile on my system anyway.  But here is my trademark quick and dirty hack.  This short circuits the volume set routine.

Use ivtvctl -y... to find the proper number for the volume then hard code it.

 

Goto the driver folder of ivtv and open ivtv_audio.c

Change the ivtv_audio_set_volume function to this.  61500 was the proper setting for my setup.  This fixes the volume quite permanently. 

 

void ivtv_audio_set_volume(struct ivtv *itv, int volume)

{

        struct video_audio va;

 

        switch (itv->card->audio_selector) {

        case USE_MSP34XX:

                memset(&va, 0, sizeof(struct video_audio));

                ivtv_msp34xx(itv, VIDIOCGAUDIO, &va);

                //va.volume = volume;

                //BK hack for mythtv volume control.

                va.volume = 61500;

                va.mode = 0;    /* keep stereo mode at automatic stereo detection */

                ivtv_msp34xx(itv, VIDIOCSAUDIO, &va);

                break;

        case USE_CX25840:       /* FIXME, probably not right */

        case USE_GPIO:

                /* do nothing, there's no volume control */

                break;

        }

}

 

 

Reply via email to