Opened 15 years ago

Last modified 12 years ago

#1326 new defect

tv : changing channel broken on cx8800 card

Reported by: r_rt.bug@… Owned by: reimar
Priority: normal Component: core
Version: HEAD Severity: normal
Keywords: Cc:
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description

changing channel with h/k keys corrupts image as if I was running a second mplayer process

launching mplayer with the wanted channel ("channel=<n>") is fine

svn27482 was also broken
svn26753 was OK

Attachments (5)

Screenshot-MPlayer.png (571.6 KB ) - added by firewalkergr@… 15 years ago.
Schreenshot of mplayer after changing a channel
mplayer-output.txt (3.9 KB ) - added by firewalkergr@… 15 years ago.
Output of mplayer (utf-8) format
mplayer-nonorm.patch (1.8 KB ) - added by firewalkergr@… 15 years ago.
After some change, every time a tv channel is changed, the tv set norm is set as well. This doesn't work with my cx8800 card. This patch removes the norm set, so it works with my card
patch_tv.txt (2.0 KB ) - added by r_rt.bug@… 15 years ago.
set norm if norm is different
normid.patch (2.7 KB ) - added by ffplay99@… 12 years ago.
patch to leave norm alone if not configured

Download all attachments as: .zip

Change History (16)

by firewalkergr@…, 15 years ago

Attachment: Screenshot-MPlayer.png added

Schreenshot of mplayer after changing a channel

comment:1 by firewalkergr@…, 15 years ago

by firewalkergr@…, 15 years ago

Attachment: mplayer-output.txt added

Output of mplayer (utf-8) format

comment:2 by firewalkergr@…, 15 years ago

comment:3 by firewalkergr@…, 15 years ago

I have the same problem.

uname -a

Linux anarchos 2.6.26.6-79.fc9.i686 #1 SMP Fri Oct 17 14:52:14 EDT 2008 i686 i686 i386 GNU/Linux

Card: Hauppauge WinTV-HVR1300 DVB-T/Hybrid MPEG Encoder
02:0b.0 Multimedia video controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder (rev 05)
02:0b.1 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [Audio Port] (rev 05)
02:0b.2 Multimedia controller: Conexant CX23880/1/2/3 PCI Video and Audio Decoder [MPEG Port] (rev 05)

If I downgrade to mplayer svn 2008-05-31 channel switching is fine.

But with mplayer 2008-09-05 and today's svn 2008-11-15, although the first screen is ok, when I switch channels the new channel is in a sub picture inside mplayer window while the rest of the window plays some sort of short loop of the first channel. (see attached image)

comment:4 by firewalkergr@…, 15 years ago

It appears that every time a channel is changed, the tv norm is set again.

Commenting out this at stream/tv.c channel change related functions, so it works like previous version, seems to fix this issue.

Of course this would remove the ability to have per channel norm, if it is possible.

Find attached the patch that removes the tv norm set in channel changing functions.

by firewalkergr@…, 15 years ago

Attachment: mplayer-nonorm.patch added

After some change, every time a tv channel is changed, the tv set norm is set as well. This doesn't work with my cx8800 card. This patch removes the norm set, so it works with my card

comment:5 by firewalkergr@…, 15 years ago

by r_rt.bug@…, 15 years ago

Attachment: patch_tv.txt added

set norm if norm is different

comment:7 by r_rt.bug@…, 15 years ago

I propose a patch which, when the channel change, set the norm of the new channel only if it is different from the previous channel.

comment:8 by firewalkergr@…, 15 years ago

Thanks! Will try this out.

comment:9 by r_rt.bug@…, 15 years ago

I've also tried to mute the sound during the channel change because this makes my card cracking.

I've failed because the crack occurs after mplayer have finished commanding the card to change channel.

The following patch mute the sound to preserve the speakers when stepping channel but the sound needs to be manually unmuted.

--- mplayer/command.c.old 2009-06-01 20:03:51.000000000 +0200
+++ mplayer/command.c.new 2009-06-02 02:47:55.000000000 +0200
@@ -2770,7 +2770,10 @@

case MP_CMD_TV_STEP_CHANNEL:{

if (mpctx->file_format == DEMUXER_TYPE_TV) {

+ int was_muted = mpctx->user_muted;

int v = cmd->args[0].v.i;

+ if (!was_muted)
+ mp_property_mute(NULL, M_PROPERTY_STEP_UP, NULL, mpctx);

if (v > 0) {

tv_step_channel((tvi_handle_t *) (mpctx->

demuxer->priv),

comment:10 by firewalkergr@…, 15 years ago

Forgot to say it works :)
Thanks

by ffplay99@…, 12 years ago

Attachment: normid.patch added

patch to leave norm alone if not configured

comment:11 by ffplay99@…, 12 years ago

This bug was introduced in mplayer svn r27057. The cx88 driver resets picture size to 320x240 when the norm is set. Although this is a driver issue I believe mplayer should leave the norms alone if not configured in the user's config file.

Attached is a patch I posted to the dev mailing list (http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2012-May/070298.html) to stop setting the norm if not required.

Note: See TracTickets for help on using tickets.