Length of component IDs

Hi,
I recall that there used to be a suggestion not to go over 7 characters for component ID for performance reasons. I also recall that JDev 11G was used to give a warning when you go over 7 chars at some point.
With the current release(build 5407) it doesn't give this warning and the tool itself gives longer default IDs for components like lineGraph,pivotTable etc..
I wonder whether that suggestion is still valid or not.. Should we worry about this? We would like to give more meaningfull names to our components if this is not an issue any more.
Thanks

Hi,
Exactly for the button and input components. Actually, we use the most explicit id possible for the latter like email for email fields, firstName and so on. this often help the browser's auto-complete engine which is a boon for some users. The hint for NamingContainer is because those ids are used as prefixes for their children's clientId, so if you have 3 NamingContaines within each others, you could end up with client ids looking like:
thePageMainTemplate:theMainContentRegion:theDataTable:<componentId>
Now imagine the table contains 30 rows of 5 columns each including 3 component, then you end up with 54 characters for NamingContainer ids, so: 54 characters * 30 rows * 5 columns * 3 components = ~24kb only for the ids NamingContainer parts on the table. If you reduce each id to 3 characters, you get: 12 characters (3 char * 3 naming containers + 3 separators) * 30 rows * 5 columns * 3 components = ~5kb
As for the NamingContainer, you have to check the UIComponent classes themselves. The most known, however, are <af:table/>, <af:pageTemplate/>, <f:subView/>, <af:region/>, <af:iterator/> and such.
Regards,
~ Simon

Similar Messages

  • Should Component Ids  be less than 7 characters?

    Hi,
    When I name the ids of various ADF Faces components more then 7 characters, the jdev compiler shoots out warning messages that component Ids should be less than 7 for optimal performance.
    Is this correct? What implications does it have if all the component Ids are less than 7 characters long?
    regards,
    Ansuman

    Simon is correct on all counts.
    The choice of 7 as the upper limit is fairly arbitrary. We were running into cases internally where ADF Faces users were choosing very long/descriptive (15-20 character) ids for naming containers. This ended up showing up during server-side profiling, and also resulted page content size bloat, especially for ids of root naming containers like page templates which appear everywhere. The audit rule was added to help clue folks in to the fact that there are consequences when choosing long ids.
    Personally, if I were designing a page, I would always choose very short (eg. 1-2 characters) ids for my naming containers (and relatively short ids for anything that is going to be stamped repeatedly).
    BTW, the audit rules are configurable. If you happen to be unhappy with a particular audit rule, you can disable it. See Preferences->Audit->Profiles->Rules->ADF Faces->Check for long ids on naming containers. And of course, you can also add your own audit rules to reflect your preferred coding standards.
    Andy

  • Length of component (DC) name

    Hi,
    What is the allowed length of a component (DC) name? A DC Project name includes the following details: JDI track, SC, CompName, vendor name.
    While creating a DC project, if the name exceeds 8 char it shows a warning. What is allowed length here?
    I refered the following link:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/01/bb91ee812c3242964d01e791526ce8/frameset.htm
    If my DC project name is "JDI_JD_Dmyappmyapp_project~sap.com", what is the length of my component.
    Regards,
    Piyush.

    Hi Satyajit,
    Thanks for ur answer.
    What if my component name "sap.com/my_app..../myapp" is more than 40 Char? Will it give any problem in future, like at compilation issues etc? I hope it does allow us to create a component that is more than 40 Char.
    I have created a component which is more than 40 char in length (calculated as u suggested). In my local environment its working fine. But my client says it might cause compilation issues later.
    Regards,
    Piyush.

  • Programmatically assigning ADF component IDS

    Hello,
    I have created a JSP using JDeveloper 10.1.3 that uses an include tag i.e. <%@ include file="/newpdrobjblock.jspf"%> to pull a JSP fragment.
    Ideally I would like to have multiple includes of this fragment on the page typically using an iterator eg <af:forEach items="#{sshrSessionData.pageButtonModels}" var="current1"> and to set all the fragment attributes (such as table bindings etc) using Expression Language (EL).
    This would aid my design in that I would have one reusable page fragment as opposed to (in this case) six dedicated fragments.
    The problem I am facing is that the facet ID's will not be unique. I know that EL is not an option for the ID (it is not supported) and my attempts to interogate and set the ID uniquely using a Managed Bean have not been successful. I can get the ID's but cannot set them. At a guess I would say that the call to the managed bean occurs too late in the cycle?
    Would anybody know if this can be achieved programmatically? Any thoughts would be very much appreciated.
    Pete

    John,
    You are quite right in that I can get around my initial problem by use of a naming container. If I code something like this:
    <f:subview id="block1">
    <%@ include file="/newpdrobjblock.jspf"%>
    </f:subview>
    <f:subview id="block2">
    <%@ include file="/newpdrobjblock.jspf"%>
    </f:subview>
    all is fine i.e. no problem with duplicate IDS and that was the real show stopper for me.
    I wiil look at the use of 'foreach' to simplify my design but either way I can now look at reuse of fragments by use of expression language.
    Thanks again for you help.
    Pete

  • Generic component IDs - myFaces

    Hi,
    I've been wandering around several days to find out how i can find a good solution for tackling following problem;
    I've a component let's say a commandlink component. According the tld specification the value of the id can only be a static value. What I want to do is have there a variable ID, suppose <h:commandLink ID="#{someBean.someGeneratedID}"/>
    Is there a way to accomplish this, a work-around? Do I need to write a custom renderer or convertor? I've no idea how to solve this issue.
    I'm new to JSF, I use to work with JSP and Struts so in that environment there is no problem for this "ID issue".
    Any comments/ ideas/ links to threads I might have missed are welcome to help this newbie out!

    The only way i'm seeing for to do what you whant is to add programatically the components to the page, that wahy you can give the id's in a more dynamic way.
    Or you can change the id's programatically, although i don't know if this works. USe binding in each of the components. Then you can access them and alter several properties, amongst wich the id.

  • How to get values from dynamic component?

    Hi:
    I am displaying dynamic components based on user selection, where InputText and OutputText display properly. But now i want to read that component value on
    button click. Can any body help me in that?
    Source code is as follow,
    text.xhtml
    *<code>*
    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
         xmlns:h="http://java.sun.com/jsf/html"
         xmlns:f="http://java.sun.com/jsf/core"
         xmlns:ui="http://java.sun.com/jsf/facelets"
         xmlns:p="http://primefaces.prime.com.tr/ui"
         xmlns:ice="http://www.icesoft.com/icefaces/component"
         template="/WEB-INF/includes/templates/page-template.xhtml">
         <ui:define name="page-content">
              <div class="exampleBox splashContainer"
                   style="background: url('./xmlhttp/css/rime/css-images/contentContainer_bg.gif') top repeat-x">
              <table>
                   <tr>
                        <td colspan="2">
                        <h2>Set Request Process Flow</h2>
                        </td>
                   </tr>
                   <tr>
                        <td colspan="2"><ice:messages style="color:red;" /></td>
                   </tr>
                   <tr>
                        <td><ice:outputText value="Request Type*"></ice:outputText></td>
                        <td><ice:selectOneMenu value="#{offlinereq.requestno}"
                             valueChangeListener="#{offlinereq.requestChange}"
                             partialSubmit="true">
                             <f:selectItem itemValue="" itemLabel="--Select--" />
                             <f:selectItems value="#{offlinereq.requests}" />
                        </ice:selectOneMenu></td>
                   </tr>
                   <tr>
                        <td>*<h:panelGroup binding="#{offlinereq.panelBind}">*
    *                    </h:panelGroup>*</td>
                   </tr>
                   <tr>
                        <td colspan="4"><ice:commandButton value="Add"
                             actionListener="#{offlinereq.add}" /> <ice:commandButton
                             value="Update" actionListener="#{offlinereq.update}" /> <ice:commandButton
                             value="Delete" actionListener="#{offlinereq.delete}" /> <ice:commandButton
                             value="Reset" actionListener="#{offlinereq.reset}" /></td>
                   </tr>
              </table>
              </div>
         </ui:define>
    </ui:composition>
    *</code>*
    bean.java
    *<code>*
    //ValuechangeListener
         public void requestChange(ValueChangeEvent e){
              System.out.println("Select Value is::"+e.getNewValue()+"::"+userid);
              Connection conn=null;
              try {
                        if(!panelBind.getChildren().isEmpty())
                             panelBind.getChildren().clear();
                   Class.forName ("oracle.jdbc.OracleDriver");
                   conn = JdbcUtil.getConnection();
                   Statement stmt = conn.createStatement();
                   String sql="select * from IB_CUSTOMER_REQUEST_PARAMETERS where IB_REQMAST_SRNO='"+e.getNewValue()+"'";
                   ResultSet rs = stmt.executeQuery(sql);     
                   String out="out";
                   int i=1;
                   String ii;
                   while(rs.next()) {          
                        FacesContext facesContext = FacesContext.getCurrentInstance();
              Application application = facesContext.getApplication();
              HtmlPanelGrid grid = (HtmlPanelGrid)application.createComponent(HtmlPanelGrid.COMPONENT_TYPE);
                   grid.setColumns(2);
              HtmlOutputText output = (HtmlOutputText)application.createComponent(HtmlOutputText.COMPONENT_TYPE);
                   output.setValue(rs.getString("IB_CUSTREQSTPARA_NAME"));
                   ii=Integer.toString(i);
                   output.setId("a"+ii.toString());
                   System.out.println("id"+ii);
                   HtmlInputText input = (HtmlInputText)application.createComponent(HtmlInputText.COMPONENT_TYPE);
                   //input.setValue(rs.getString(1));
                   grid.getChildren().add(output);
                   grid.getChildren().add(input);
                   panelBind.getChildren().add(grid);
                   i++;
              catch(Exception e1)
                   System.out.println(e1);
         //Action listeners
         public void add(ActionEvent e)
              System.out.println("ADD");
    *</code>*
    Thank You,
    Anup

    Where are you stuck? find the component (UIComponent.findComponent) in the JSF component tree by its ID and get the value from it. This article might help:
    http://illegalargumentexception.blogspot.com/2009/02/jsf-working-with-component-ids.html
    Note: the code tag is \                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Dump: Component not found

    Hello all,
    I have a strange error in my Web Dynpro application. It dumps with the message "Component ID_00010003000700080011 not found". I can reproduce this error, but I don't know why it happens, because it dumps only on test machine, not on development machine. I thought it's a missing transport request, but I have released all requests to test machine.
    Dump anlaysis (ST22) is not very helpflull, it says the error is "CX_WDR_RT_EXCEPTION", not very much else. I searched in SAP notes, but no luck either.
    Has anybody an idea, how such an error with component IDs can happen?
    Best regards and TIA, Matthias

    Hi Volker,
    I solved the problem with lots of debugging. At the end it seemed that the problem was in a RFC-function by another project, they solved this error. So it was no ABAP or WD4A problem, as I thought at the beginning.
    Regards, Matthias
    PS: I always give reward points to the helpful answers...

  • h:dataTable with component binding not rendering

    Hello,
    I am developing an application with several ad-hoc queries that need to be displayed in data table elements. The number and label values of the columns are not known until runtime. I am attempting to use a component binding mechanism to intercept the UIData and add columns to it at runtime, depending on the data currently held in a backing bean instance (such as an ad-hoc query result).
    I'm not sure where I can actually intercept the table and add the columns. I've got the following code example to compile and run without error, but nothing gets rendered properly - I get an opening <table> tag in the HTML source and nothing else follows.
    I have compared the structure of the table created with the following binding method to a table created with simple <h:dataTable> tags, and I see only one difference. The datatable created with tags has a single attribute in its attribute map called "javax.faces.webapp.COMPONENT_IDS" that maps to an ArrayList of the component IDs of the h:column elements I specify on the JSF page. The datatable I attempt to create in the binding method does not have this attribute in its map, and I can't seem to manually add it in without creating further havoc. (the child count, types of children, etc all seem to be equivalent).
    From the JSF perspective this is how I've defined the h:dataTable tag instance...
    <h:dataTable id="categoryTable" rendered="true"
            binding="#{backingBeanInstance.table}"
                value="#{backingBeanInstance.rows}"
                    var="row"  border="2" />This is basically the code in the backingBeanInstance....
        private UIData table;
        public void setTable(UIData table){
            this.table = table;
           //initTable();   //tried this but seems not to work either?
        public UIData getTable(){
            if(table!=null){
                initTable(); //build the columns and add to the table
            return table
        private void initTable(int categoryIndex){
                //This block is just a way to calculate the number of columns
                int colCount = <depends on data held in bean>
                //Resolve the var string for the data table
                String item = table.getVar();
                System.out.println("item: " + item);  //this is always null the 1st time through?? why?
                UIColumn col;
                UIOutput out;
                FacesContext context = FacesContext.getCurrentInstance();
                Application app = context.getApplication();
                //For each column in the data, create a UIColumn as child of the
                //data table.  Create a UIOutput as child of the UIColumn and bind
                //the value of the UIOutput to the data with an EL expression
                for (int j = 0; j < colCount; j++) {
                    //create an instance of UIOutput to display the value for this cell
                    out = new UIOutput();
                    out.setRendererType("Text");
                    //create an instance of UIColumn
                    col = new UIColumn();
                    //construct the value binding string as an EL expression
                    String valueBindingString = "#{" + item + "[" + j + "]}";
                    //create the value binding
                    ValueBinding vb = app.createValueBinding(valueBindingString);
                    //set the value binding on the UIOutput object
                    out.setValueBinding("value", vb);
                    //add the UIOutput component to the UIColumn as a child
                    col.getChildren().add(out);
                    //add the UIColumn to the data table as a child
                    table.getChildren().add(col);
        }

    <bump>

  • Use  Of component key in OSM

    Hi..
    I am looking for some help here.
    Can any one let me know how can i use component ID to create the Multiple instance of a function like one for Mobile and another for PSTN. Did not understood by material available so posting query here.
    Thanks
    Edited by: 990693 on May 10, 2013 1:25 AM

    Hi,
    Each instance of a function has a different component ID. This component ID is either auto-generated through decomposition or enforced through configuration/xquery.
    So, as far as I understood your question, you want to generate two instances of a function based on product (mobile or PSTN). I think of two ways to do it:
    1) Use two decomposition rules, each one for each product specification, so you separate these two products into two order components
    2) Use xquery to generate distinct component IDs based on the product
    I would recommend you to go with the first solution.
    Regards,
    Leandro

  • Threadinar13 - Double Range, Length & Long Range Validator Components

    Hi All,
    This is the thirteenth in the Threadinar series. See the Components Threadinar Index at http://forum.sun.com/jive/thread.jspa?threadID=103424 for the complete list to date.
    This Threadinar will discuss the 3 components in the "Components Palette: Validator Section" of the Creator Component Catalog.
    The components we will focus on today are
    "Double Range Validator", "Length Validator" & "Long Range Validator" Components.
    Let us begin our discussion with the "Double Range Validator" Component.
    [b]What Is a Validator?
    If your application collects information from users, for example a login and a password, then it is important that you verify the user data. The IDE provides a set of components for validating user input. These validators, which you access from the Validators section of the Components Palette, are as follows:
    [b]Double Range Validator Component
    A Double Range validator is typically used to validate that the value of a component does not exceed the standard range of the Java double data type. This data type represents a double floating-point number that ranges from �439E-324 to �1.7976931348623157E+308. Typically, the way you add a validator to a JavaServer Faces component is to edit the component's validator property, which provides a drop-down list from which you can select a validator.
    Use a Double Range validator to test whether the user has entered a double data type value within the range defined by the specified minimum and maximum values. The value must be floating-point or convertible to floating-point.
    [b]Length Validator Component
    A Length validator is used to validate that the length of text entered for a component is no shorter or longer than the values you specify for the validator's min and max properties. The validation occurs after the page is submitted. Typically, the way you add a validator to a JavaServer Faces component is to edit the component's validator property, which provides a drop-down list from which you can select a validator.
    Use a Length validator to test whether user has entered a string of a length defined by the specified minimum and maximum values. The value must be a java.lang.String.
    [b]Long Range Validator Component
    A Long Range validator is used to validate that the value of a component does not exceed the standard range of the Java long data type. This data type is a signed integer that ranges from -263 to 263-1, or
    -9223372036854775808 to 9223372036854775807. Typically, the way you add a validator to a JavaServer Faces component is to edit the component's validator property, which provides a drop-down list from which you can select a validator.
    Use a Long Range validator to test whether user has entered an integer of a size defined by the specified minimum and maximum values. The value must be any numeric type or String that can be converted to a long.
    You can use more than one validator on an input component to validate for different criteria. When you use a validator, your component also needs a message component to indicate when the validation fails.
    [b]See Also
    For more details on
    "Using Validators", Please see the tutorial at
    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/validators_converters.html
    Customizing a Standard Validator Message
    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/custommessage.html
    and
    Adding Your Own Validation Handler
    http://developers.sun.com/prodtech/javatools/jscreator/learning/tutorials/2/customvalidator.html
    Please share your comments, experiences, additional information, questions, feedback, etc. on these components.

    .

  • Any best practice/suggestion on giving Id's for UI Component

    Hi,
    I came to know that for better performance, id's on naming containers shall be less than 7 characters in length.
    What about UI Components other than container components?
    Is there any best practice available for giving Id's for UI Components and its length?
    Do we face any issue if we give ids with more than 7 characters (just to make the id meaningful one)?
    Thanks in Advance
    Raguraman

    a quotation from
    Oracle® Fusion Middleware Performance and Tuning Guide book
    11g Release 1 (11.1.1)
    E10108-02
    >
    The "id" attribute should not be longer than 7 characters in length. This is
    particularly important for naming containers. A long id can impact
    performance as the amount of HTML that must be sent down to the
    client is impacted by the length of the ids.

  • Layer id to component id in Flex

    For designers is imperative to give individual names to layers, the thing is that these "names" in Flex continue as layer ids instead of being used as component ids (which would cut ALOT of work!!!). Please! Change this!!!!!

    Well it would help save time in the development stage just by allready exporting components ids that can be used by Flex, instead of having to create from scratch the ids. I found this helpfull because i'm working with a developer and he noticed that, as every good designer, my layers have a logical naming that he could use as components ids IF Flex could use the layer's id as a component id (since the component in FC ocuppies a layer that I name specificly. If Flex could use the "search and change key words" to search for the layer's ids and automatacly change them to component's ids it wouldn't matter, but since Flex doesn't do that, and since every great FC project has to pass through Flex....
    The point is that instead of having the both of us entering ids it would only be necessary for me to do it.
    Or at least have a Flex transition window where i could, in FC, atribute the id i want to the component.
    If i've not made myself clear i'm not talking about a generic component as you can se in the library. What i'm talking about is, for example, if I had 3 main buttons, all from the same component, in different layers (of corse), and if i named those 3 layers as "home_bt", "contacts_bt" and "faq_bt", when the project got imported to Flex, Flex would recognize the layer's ids as being each duplicate component's id in Flex....
    I hope you understood me. My guess is that you guys are trying to make FC as a softer flash for non-flash users/ designers, and Flex as the developers tool, separating the too worlds that today are a bit mixed, demanding programing skills for designers and designing skills for programmers....my guess is that this is a pertinent issue in the separation of these two worlds....and me, as a designer, can help in the developing stage better and faster

  • ADF 11 generating differents ids for panel box

    Hello,
    I want to generate differents ids for panel box from an iterator because the drag and drop functionality doesn't work. I saw that the component ids doesn't support EL.
    It is any chance to generate my ids dinamically and how?
    My code from my page is :
    <af:panelGroupLayout id="pgl8">
    <af:iterator id="i2" var="row"
    value="#{bindings.MeniuVO1.collectionModel}">
    <af:panelBox text="#{row.Description}"
    binding="#{WelcomeBean.pb1}"
    inlineStyle="width:167px;">
    <f:facet name="toolbar"/>
    <af:dropTarget dropListener="#{DragAndDropBean.handleContainerDrag}"
    actions="MOVE">
    <af:dataFlavor flavorClass="javax.faces.component.UIComponent"/>
    </af:dropTarget>
    <af:componentDragSource/>
    </af:panelBox>
    </af:iterator>
    </af:panelGroupLayout>
    Thank you.

    Hi,
    can you try with <af:forEach/>
    like
    <af:forEach var="row"
    items="#{bindings.MeniuVO1.rangeSet}">
    <af:panelBox text="#{row.Description}"
    inlineStyle="width:167px;">
    <f:facet name="toolbar"/>
    <af:dropTarget dropListener="#{DragAndDropBean.handleContainerDrag}"
    actions="MOVE">
    <af:dataFlavor flavorClass="javax.faces.component.UIComponent"/>
    </af:dropTarget>
    <af:componentDragSource/>
    </af:panelBox>
    </af:forEach>Edited by: Santosh Vaza on Apr 10, 2012 12:56 PM

  • Create dynamic ID for component / component names in portlet

    Hi,
    I developed a JSF and IBM Portal API based portlet which runs on Websphere Portal Server 5.0.2.2. Everything's fine, if I have just one instance of my portlet on the page. If I have more than one, problems arise...
    This is due to the component IDs which are the same for each portlet instance. I blame IBMs Gerneric faces portlet for this behavoir, but this doesn't solve my problem ;-)
    So I need to create unique IDs for the components for each portlet instance on a page - which means at runtime.
    I thought of a custom component which is generates a unique random ID. The final structure of a page (or JSF component tree) with multiple instances of my portlet should look like this
    root
    |
    + mycomponent id=3454         \
    |  +- form id=form1            | - Portlet instance A
    |     +- input id=textinput1  /
    |    
    + mycomponent id=7656         \
       +- form id=form1            | - Portlet instance B
          +- input id=textinput1  / With this kind of component tree I could distinguish the form in portlet instance A and instance B (for A it would be 3454:form1 and for B 7656:form1)...
    Because there's no real servlet or portlet-code which can be altered, the points to interfere are quite limited. As mentioned above, all general request handling and forwarding to JSPs is handled by the "generic faces portlet"...
    The first point where my own code could be executed is in a custom component on the JSP or the "onPageLoad"-Event of hx:scriptcollector (which is an IBM extension to the standard JSF components).
    Have you any suggestions or best practices how to solve this problem?
    TIA,
    ulkbold

    Did you ever come up with a way to workaround this problem. This problem just bit me over the weekend.

  • How to find the id of an htmlb component

    Hello,
    I have a bunch of htmlb components build in java code. I need the id of the components. I want to clearify that I need the id of the components not the value of the components. I know I can get the component id, if the component is created in jsp, as follows
                   <hbj:inputField
                        id="autoSave"
                        visible="false"
                        jsObjectNeeded="true"
                        value="FALSE">
                        <%
                        String jsAutoSave = myContext.getParamIdForComponent(autoSave);
                        %>
                        <SCRIPT>
                             var jsAutoSave = '<%=jsAutoSave%>';
                        </SCRIPT>
                   </hbj:inputField>
    but, when the component is created in java code, I can't use the same logic to get to the component id.
    If any one could help me, I really appreciate it.
    Frank

    Kalyan,
    Thanks for your reply.
    Maybe I should give a little more information. The doProcessBeforeOutput() method sets the JSP to be forwarded. In the JSP, components are build by calling a method of an other class that builds the components. And I need the ids of some of the components in the JSP. Component ids are generated dynamically, so I as far as I am concerned, I can only access them in JSP, my question how in my situation?
    If the component were build in JSP, I could have gotten the ids, like I showed above.
    Regards,
    Frank

Maybe you are looking for

  • FAQ: How to share images from the Organizer to the Web

    Elements Organizer has a fair share of methods for sending images to the internet or across it to your friends and family directly. Here is a list of resources that helps explain the different functions to accomplish this task. [NOTE: While some of t

  • Exporting images from flash

    I'm currently porting a game from flash to the DS and having difficulties exporting the images and was hoping someone out there might be able to help. The images in flash are all vector based and I need to export them and place them on a background (

  • I accidentally deleted my "recently bookmarked" option in my drop down menu How do I get it back?

    in the tool bar there is a section marked bookmarks. In the drop-down menu there was an option "recently bookmarked" which I accidentally deleted ... How do I get it back? Thanks

  • Input Method Limitation on BB10 (only 3)

    Hello, I love the physical keyboard and the OS of my Q10 but it has a huge problem (as least for me): it won't let me select more than 3 input languages (such as French, English, Chinese...). I need to select to select at least five. Android, IOS or

  • Content engine 565 - real server relay

    hi all, we have a standalone content engine 565 running acns 5.3.1. we would like to realize something like a live stream 'relay': we place the ce on the network edge and it receives a live stream (rtsp) directly from a content provider. the internal