Opened 14 years ago

Closed 13 years ago

#993 closed defect (fixed)

FireWire Scientific Atlanta 3250HD channel change problem

Reported by: Wylie Swanson <wylie.swanson@…> Owned by: Isaac Richards
Priority: minor Milestone: 0.20
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

I have brought up a slave backend with only one encoder connected, the Scientific Atlanta 3250HD over Firewire.

I am able to successfully stream HD content using test_mpeg2, however, after configuring the slave backend to use the tuner and starting the backend, I notice some flawed tuner behaviour.

I have pre-programmed the tuner to switch to channel 708 (PBS HD, Cox, Phoenix). When the slave backend starts, it tunes on to channel 708, as expected, but then pauses and changes the channel to 7. Channel 7 cannot be streamed, so the tuner is skipped (and rendered not usable).

Attachments (1)

sa3250ch.c.diff (1.1 KB) - added by namuch@… 13 years ago.
Fixes channel change issues (channels > 99) on SA3250HD

Download all attachments as: .zip

Change History (10)

comment:1 Changed 14 years ago by Wylie Swanson <wylie.swanson@…>

Correction: The channel does not correctly change to 708 first -- it flashes the current channel and then attempts to change the channel. Some examples:

Using mythtv, move to channel 710, mythtv sends tuner to channel 7. Using mythtv, move to channel 708, mythtv sends tuner to channel 7. Using mythtv, move to channel 715, mythtv sends tuner to channel 17.

If I quickly reset to the correct channel using the tuner remote control, it will stream the broadcast as expected. So the problem stands, channel changing on SA3250HD still having problems.

comment:2 Changed 14 years ago by Isaac Richards

Priority: majorminor

comment:3 Changed 14 years ago by wylie.swanson@…

Severity: mediumlow

I will revisit libs/libmythtv/firewirechannel.c soon, but the solution for the contrib/sa3250ch.c for me was to enable verbose and run sa3250ch -v to determine the correct SA3250HD_VENDOR_ID. This made the external changer work correctly. The internal firewirechannel.c still needs revisiting...and the VENDOR_ID does not appear to be the problem.

#define SA3250HD_VENDOR_ID 0x000011e6 #define SA3250HD_VENDOR_ID 0x000014f8

comment:4 Changed 13 years ago by danielk

Milestone: 0.20
Version: head

Changed 13 years ago by namuch@…

Attachment: sa3250ch.c.diff added

Fixes channel change issues (channels > 99) on SA3250HD

comment:5 Changed 13 years ago by namuch@…

Added a cleaned up version of some fixes I made several months ago for proper channel changing on the SA3250CH.

comment:6 Changed 13 years ago by Isaac Richards

Resolution: fixed
Status: newclosed

(In [9008]) Apply patch + additional vendor id from #993. Adapt patch to firewirechannel.cpp. Not tested.

Closes #993.

comment:7 Changed 13 years ago by anonymous

Priority: minorblocker
Resolution: fixed
Severity: lowhigh
Status: closedreopened

Patch breaks build (testing SVN 9012)

make[2]: Entering directory `/usr/local/src/mythtv/mythtv/libs/libmythtv' ccache distcc g++ -c -pipe -march=pentium4 -I/usr/include/kde/artsc -pthread -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -Wall -W -O3 -Wall -Wno-switch -fomit-frame-pointer -I/usr/include/freetype2 -D_REENTRANT -DPIC -fPIC -DMMX -Di386 -DUSING_DBOX2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\" -DLIBDIR=\"/usr/local/lib\" -D_LARGEFILE_SOURCE -DUSING_OSS -DUSING_XV -DUSING_FRONTEND -DUSING_V4L -DUSING_FIREWIRE -DUSING_IVTV -DUSING_BACKEND -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I../../../../../include -I../../../../../../X11R6/include -I../.. -I.. -I../libmyth -I../libavcodec -I../libavutil -I../libmythmpeg2 -Idvbdev -Impeg -I../../../../../../include/qt3 -o firewirechannel.o firewirechannel.cpp distcc[3958] ERROR: compile /home/.ccache/firewirech.tmp.publicity.3954.ii on cosmos failed ../../../../../../include/qt3/qsqldatabase.h:63: warning: 'class QSqlDriverCreatorBase' has virtual functions but non-virtual destructor firewirechannel.cpp: In member function 'virtual bool FirewireChannel::SetChannelByString?(const QString&)': firewirechannel.cpp:99: error: expected primary-expression before '<<' token firewirechannel.cpp:99: error: expected primary-expression before '<<' token firewirechannel.cpp:99: error: expected primary-expression before '<<' token firewirechannel.cpp:99: error: expected primary-expression before '<' token firewirechannel.cpp:99: error: expected primary-expression before '.' token firewirechannel.cpp:101: error: expected `;' before 'cmd' firewirechannel.cpp:102: error: expected primary-expression before '==' token firewirechannel.cpp:102: error: expected primary-expression before '==' token firewirechannel.cpp:102: error: expected primary-expression before '==' token firewirechannel.cpp:102: error: expected primary-expression before '=' token firewirechannel.cpp:104: error: expected primary-expression before '>>' token firewirechannel.cpp:104: error: expected primary-expression before '>>' token firewirechannel.cpp:104: error: expected primary-expression before '>>' token firewirechannel.cpp:104: error: expected primary-expression before '>' token firewirechannel.cpp:104: error: expected primary-expression before '.' token firewirechannel.cpp:105: error: expected `;' before 'cmd' make[2]: * [firewirechannel.o] Error 1 make[2]: Leaving directory `/usr/local/src/mythtv/mythtv/libs/libmythtv' make[1]: * [sub-libmythtv] Error 2 make[1]: Leaving directory `/usr/local/src/mythtv/mythtv/libs' make: * [sub-libs] Error 2

comment:8 Changed 13 years ago by Isaac Richards

Priority: blockerminor
Severity: highmedium

comment:9 Changed 13 years ago by Isaac Richards

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.