More tvtime work…

Tonight I finally finished the HVR-1600 ALSA cleanup and submitted what I hope is the final PULL request to get it into the mainline.

While I was there, I took a quick look at how well tvtime works with the HVR-1600 – in short: it doesn’t work, and it fails in a way that I suspect would leave most users scratching their heads (in fact, I was only able to understand why it didn’t work by examining the source code). I started to look at the issues in terms of what will be required to support the HVR-1600, and what would be required to make tvtime better report the reason for failure in cases where someone attempts to use an unsupported tuner.

The reason I’m mentioning this is because I am strongly considering dropping support for V4L1 in tvtime – only supporting V4L2. Why, you might ask? Because the code is littered with conditional logic depending on which version is being used, and any changes I make require twice as much testing to ensure that I am not causing a regression in V4L1 support. Plus, with a grand total of three obscure webcams that haven’t been converted to V4L2 (out of over a hundred products), it’s just not worth it to maintain the code.

By removing the V4L1 code, I can make things much cleaner, be more confident that the functionality that we *do* provide works, and I can modernize the interface to better identify things like device capabilities (which are currently absent because they weren’t available in V4L1). This means you will get sane error messages if you do things like try to use your PVR-150’s MPEG device in tvtime, or use a tuner that has a colorspace that isn’t supported in tvtime.

My goal at this point is to get tvtime working with as many modern tuners as possible, and if dropping support for a few really obscure tuners that people cared so little about that they were never even converted to V4L2 makes that goal easier, then I think that is an reasonable compromise.

7 thoughts on “More tvtime work…

  1. Thank you Devin! Glad to see TVtime being modernized. I used to help with the project years ago (in a non-programming role, more like QA), and it was an exciting time when Billy kept churning out new releases. I can’t wait to finally get my HVR950Q working with it. As a plus though, I noticed yesterday that switching between composite and cable works great with TVtime, so I was able to hook up my Xbox to it (no sound of course). I was also pleasantly surprised that there was minimal lag between xbox gamepad to on-screen response. Unlike in Windows where its at least 1-2 second lag due to MPEG encoding, making Xbox unusable.

    • Corey,

      Well, I’m actually doing the work using the HVR-950Q as my test platform. So if you pull the current code, you will see that it works with the audio. Of course now I have to make it work with all the other boards!

      Devin

      • Just checked out the latest tvtime from your repo as well as latest drivers from linuxtv.org. TVtime doesn’t work at all. launching from command line i just get “ALSA lib pcm.c:7234:(snd_pcm_recover) overrun occured” with audio just static that occasionally goes from one speaker to the other. No picture in tvtime at all, can’t even bring up the menu. dmesg reports “au8522_writereg: writereg error (reg == 0x73, val == 0x00f0, ret == -5)”

        • The overruns are expected to occur until the tuner is online (the message is actually a debug message I intend to remove). You have to wait 5-10 seconds for the xc5000 firmware to load, at which point you will start to see video.

          The writereg errors should not occur – might be a timing race that left your board in an unknown state. I would recommend you reboot, plug in the tuner, and try again.

          Also make sure no other apps are tying up the tuner (such as a mythtv backend).

          Devin

  2. If you’re using the HVR-950Q to experiment with tvtime, you might also see how to prevent the kernel oops that happens when switching too quickly from analog to digital?

    • Zaphod,

      Well, since tvtime doesn’t support digital, it wouldn’t be a very good test case to use for debugging switching between the two modes. 🙂

      The MythTV stuff is on my todo list, but I need to get a new box setup with a tvtime environment (the one I used for the previous 950q work got recycled).

      Devin

Leave a Reply