analogtv plugin

Bug #233745 reported by Rui Castro
16
Affects Status Importance Assigned to Milestone
Moovida
Invalid
Wishlist
Unassigned

Bug Description

I created a plugin named analogtv with two "elements": AnalogtvMedia
and V4l2Engine.
AnalogtvMedia was based on the youtube plugin. V4l2Engine was based on
PlaybinEngine.

There's no sound/zapping/teletext support and video quality is poor, but
it's good enough to encourage me to improve it :)
They work for me in a machine running "Mythbuntu 8.04 Beta" with a
Pinnacle PCTV 110i tuner card and with trunk version of Elisa.

AnalogtvMedia adds a new internet location in "Video -> Internet ->
Analog TV". Under this menu there's only 1 item "Tuner 1".
"Tuner 1" has uri "analogtv://video0" and a "real_uri"
"video:///dev/video0".

V4l2Engine supports uri scheme video and for a given uri, like
"video:///dev/video0", it constructs the following pipeline
"v4l2src device=/dev/video0 always_copy=false ! (default videosink)" and
voila!
To, actually view something a channel as to be previously tunned, in
tvtime, for example.

This was the first goal, put live video from the tuner in elisa screen.

Problems that need to be solved:
 - no sound support (current version linux-image in hardy repositories
is missing of saa7134-alsa driver. I'm wating for that to be resolved
before I can try anything). I imagine this is simple as placing a demux
in the pipeline and linking it to the audiosink.
 - no zapping. (there's a GstTuner
http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gsttuner.html)
I imagine this is the way to go, together with a Controller or Input
Provider???. The channel list can be copied from another program's
channel configuration (like .tvtime/stationlist.xml, attached)
 - menu "Analog TV" placement. At the moment is under Video > Internet,
because it's automatically placed there when i send the message
InternetLocationMessage(action_type, "Analog TV", 'analogtv', uri,
media_types=['video'], theme_icon='television'). I've tried to send
MediaLocationMessage instead of InternetLocationMessage, but the menu
disapeared! This should be a simple thing, right? It could go under
Video, I think.
 - no vbi (teletext). This is not really important, but it's a nice extra.

Radio devices, like /dev/radio0, could be supported with this plugin
simply changing some names and disabling video in the pipeline. No? :)

If someone finds this plugin of any interest, please let me know and
send your suggestions and/or contributions.

Revision history for this message
Rui Castro (rui.castro) wrote :

Plugin files and changed files in trunk (raval.conf, chris_theme.conf, tango_theme.conf)

Revision history for this message
Rui Castro (rui.castro) wrote :

I'm sending a new version of the v4l2 plugin (previously analogtv).

I renamed it because my ideia is to use this plugin for all v4l2 sources, not just for analogtv.

Changes from previous version:

- It's already possible to change channels (scantv is a dependency)
  To have channels information, a scantv output file must be present in ~/.elisa/v4l2_channels/video*.channels (video* is the name of the device under /dev)
  To generate the channels file I use this command "scantv -n PAL -c /dev/video0 -C /dev/vbi0 -o ~/.elisa/v4l2_channels/video0.channels"
  If channels file is not available, the player will play the channel currently tuned.

- Menu organization changed: Video -> V4l2 Input Source -> [Channels or single Input Source]
  The menus are really tricky! It seems that is not possible to have more than 2 levels of directories. I've tried to create a menu structure like this:
  - Video
        - Pinnacle PCTV (my device name)
                - Television
                        - Channel 1
                        - Channel 2
                        - Channel 3
                        ...
                - S-Video

  But, what I get is this

  - Video
        - Pinnacle PCTV (my device name)
                - Television (playable)
                - S-Video (playable)

  Because of this I've deviced to create the following menu

  - Video
        - Television
                - Channel 1 (playable)
                - Channel 2 (playable)
                - Channel 3 (playable)
                ...
        - S-Video (not playable, not even without children)
                - S-Video (playable)

  The repeated S-Video it's because the top level S-Video would NOT get played even if it's not a directory. The child S-Video has the same URI as the father and it gets played correctly.

 This way to change the channels is diferent from what we are used to with real TVs and was not my ideia in the first place, but it has it's advantages.
 The reason I put channels this way, was because I'm not sure know how to use a InputProvider in my plugin. I imagine, the InputProvider could send messages through the bus and have the V4l2Engine catching these messages and changing the channel, but I don't know if that's the right way.

Problems with the current version:
 - Video is still slow and has wrong colors. I'm waiting for a Gstreamer expert to help me on this.
 - The player is very unstable when starts to play and when channels are changed (at the moment changing channels implies stop/start the pipeline)

Things that need to be done:
 - Sound is not working yet! no sound in saa7134 driver in lastest ubuntu hardy repositories (I wonder if Hardy is going to be released without sound in this driver!)
 - Teletext not implemented (no rush!)
 - Better documentation. I already added some documentation, but there's still much to write.

I would like for someone with a video/television capture card to test this and tell me how it when.

Revision history for this message
Rui Castro (rui.castro) wrote :

<empty comment>

Revision history for this message
Florian Boucault (fboucault) wrote :

It would be nice to create a Bazaar branch out of it in Launchpad.

Changed in elisa:
status: New → In Progress
Changed in elisa:
assignee: fboucault → nobody
milestone: none → 0.6.x
Changed in elisa:
importance: Medium → Wishlist
milestone: 0.6.x → 0.5.x
Revision history for this message
Emilio (turl) wrote :

Any progress on this?

Revision history for this message
Olivier Tilloy (osomon) wrote :

It seems development on this plugin is stalled (see https://launchpad.net/elisa-plugin-v4l2).

Revision history for this message
dino99 (9d9) wrote :

The latest free moovida 1.09 does not get any maintenance since a while. Now moovidadb.com is supporting Linux and support can be found at : http://www.fluendo.com/faq/

Changed in moovida:
status: In Progress → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.