Package flumotion :: Package component :: Package decoders :: Package generic :: Module generic :: Class GenericDecoder
[hide private]

Class GenericDecoder

source code

             object --+                        
                      |                        
common.common.InitMixin --+                    
                          |                    
extern.log.log.Loggable --+                    
                          |                    
    component.BaseComponent --+                
                              |                
 feedcomponent010.FeedComponent --+            
                                  |            
 feedcomponent.ParseLaunchComponent --+        
                                      |        
  feedcomponent.ReconfigurableComponent --+    
                                          |    
          decodercomponent.DecoderComponent --+
                                              |
                                             GenericDecoder
Known Subclasses:

Generic decoder component using decodebin2.

It listen to the custom gstreamer event flumotion-reset, and reset the decoding pipeline by removing the old one and creating a new one.

Sub-classes must override _get_feeders_info() and return a list of FeederInfo instances that describe the decoder output.

When reset, if the new decoded pads do not match the previously negotiated caps, feeder will not be connected, and the decoder will go sad.

Nested Classes [hide private]

Inherited from feedcomponent010.FeedComponent: componentMediumClass

Instance Methods [hide private]
 
init(self)
A subclass should do as little as possible in its init method.
source code
 
get_pipeline_string(self, properties)
Method that must be implemented by subclasses to produce the gstparse string for the component's pipeline.
source code
 
configure_pipeline(self, pipeline, properties)
Method that can be implemented by subclasses if they wish to interact with the pipeline after it has been created and set on the component.
source code
 
_get_base_pipeline_string(self)
Should be overrided by subclasses to provide the pipeline the component uses.
source code
 
_get_feeders_info(self)
Must be overridden to returns a tuple of FeederInfo.
source code
 
_get_output_element_name(self, feed_name) source code
 
_autoplug_select_cb(self, decoder, pad, caps, factory) source code

Inherited from decodercomponent.DecoderComponent: get_output_elements

Inherited from feedcomponent.ReconfigurableComponent: get_base_pipeline_string, get_eater_srcpad, get_input_elements, setup_completed

Inherited from feedcomponent.ParseLaunchComponent: add_default_eater_feeder, create_pipeline, get_eater_template, get_feeder_sinkpad, get_feeder_template, get_queue_string, parse_pipeline, parse_tmpl, set_pipeline

Inherited from feedcomponent010.FeedComponent: addEffect, attachPadMonitorToElement, attachPadMonitorToFeeder, bus_message_received_cb, cleanup, connect_feeders, do_pipeline_playing, do_setup, do_stop, dump_gstreamer_debug_dot_file, eatFromFD, feedToFD, get_element, get_element_property, get_master_clock, get_pipeline, install_eater_continuity_watch, install_eater_event_probes, make_message_for_gstreamer_error, modify_element_property, provide_master_clock, reconnectEater, set_element_property, set_master_clock, stop_pipeline, try_start_pipeline, unblock_eater

Inherited from component.BaseComponent: __init__, __provides__, addMessage, adminCallRemote, checkPropertyType, check_properties, do_check, fixRenamedProperties, getMood, getName, getWorkerName, modifyProperty, observerAppend, observerRemove, removeMessage, setMedium, setMood, setShutdownHook, setWorkerName, setup, stop, waitForHappy, warnDeprecatedProperties

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Inherited from extern.log.log.Loggable: __providedBy__, debug, doLog, error, info, log, logFunction, logObjectName, warning, warningFailure, writeMarker

Class Variables [hide private]
  logCategory = 'gen-decoder'
Implementors can provide a category to log their messages under.
  feeder_tmpl = 'identity name=%(ename)s single-segment=true sil...

Inherited from decodercomponent.DecoderComponent: disconnectedPads, swallowNewSegment

Inherited from feedcomponent.ReconfigurableComponent: dropStreamHeaders

Inherited from feedcomponent.ParseLaunchComponent: DELIMITER, DEPAY_TMPL, EATER_TMPL, FDSRC_TMPL, FEEDER_TMPL, checkOffset, checkTimestamp

Inherited from feedcomponent010.FeedComponent: FEEDER_STATS_UPDATE_FREQUENCY, eaters, feeders

Inherited from component.BaseComponent: __implemented__

Instance Variables [hide private]

Inherited from component.BaseComponent: medium, name, uiState

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

init(self)

source code 

A subclass should do as little as possible in its init method. In particular, it should not try to access resources.

Failures during init are marshalled back to the manager through the worker's remote_create method, since there is no component state proxied to the manager yet at the time of init.

Overrides: component.BaseComponent.init
(inherited documentation)

get_pipeline_string(self, properties)

source code 

Method that must be implemented by subclasses to produce the gstparse string for the component's pipeline. Subclasses should not chain up; this method raises a NotImplemented error.

Returns: a new pipeline string representation.

Overrides: feedcomponent.ParseLaunchComponent.get_pipeline_string
(inherited documentation)

configure_pipeline(self, pipeline, properties)

source code 

Method that can be implemented by subclasses if they wish to interact with the pipeline after it has been created and set on the component.

This could include attaching signals and bus handlers.

Overrides: feedcomponent.ParseLaunchComponent.configure_pipeline
(inherited documentation)

_get_base_pipeline_string(self)

source code 

Should be overrided by subclasses to provide the pipeline the component uses.

Overrides: feedcomponent.ReconfigurableComponent._get_base_pipeline_string
(inherited documentation)

Class Variable Details [hide private]

feeder_tmpl

Value:
'identity name=%(ename)s single-segment=true silent=true ! %(caps)s ! \
@feeder:%(pad)s@'