Opened 11 years ago

Last modified 7 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: Analyzed by developer:

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@… 11 years ago.
Schreenshot of mplayer after changing a channel
mplayer-output.txt (3.9 KB) - added by firewalkergr@… 11 years ago.
Output of mplayer (utf-8) format
mplayer-nonorm.patch (1.8 KB) - added by firewalkergr@… 11 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@… 10 years ago.
set norm if norm is different
normid.patch (2.7 KB) - added by ffplay99@… 7 years ago.
patch to leave norm alone if not configured

Download all attachments as: .zip

Change History (16)

Changed 11 years ago by firewalkergr@…

Schreenshot of mplayer after changing a channel

comment:1 Changed 11 years ago by firewalkergr@…

Changed 11 years ago by firewalkergr@…

Output of mplayer (utf-8) format

comment:2 Changed 11 years ago by firewalkergr@…

comment:3 Changed 11 years ago by firewalkergr@…

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 Changed 11 years ago by firewalkergr@…

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.

Changed 11 years ago by firewalkergr@…

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 Changed 11 years ago by firewalkergr@…

comment:6 Changed 10 years ago by r_rt.bug@…

Changed 10 years ago by r_rt.bug@…

set norm if norm is different

comment:7 Changed 10 years ago by r_rt.bug@…

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 Changed 10 years ago by firewalkergr@…

Thanks! Will try this out.

comment:9 Changed 10 years ago by r_rt.bug@…

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 Changed 10 years ago by firewalkergr@…

Forgot to say it works :)
Thanks

Changed 7 years ago by ffplay99@…

patch to leave norm alone if not configured

comment:11 Changed 7 years ago by ffplay99@…

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.