Playback delay of customized DataSource/Stream

I have developed a centralized voice chat conferencing program using JMF. The server mixes received streams into a single stream and sends the mixed stream to each client. To make this possible, I have developed my own DataSource and Stream classes. My stream class uses the standard GSM_RTP audio format. When a client receives the mixed stream, the client immediately creates a player for the stream. The player spends about four seconds realizing the stream before playback begins. If I send a non-mixed/non-customized stream to the clients, there is no delay. Any ideas as to why a customized stream would cause the player to delay for so long?

I found the problem. I had some old code left over from the previous version that was setting the buffer length and threshold for the receive RTPManager. As soon as I removed this code, there was no longer a delay realizing the player.

Similar Messages

  • Custom DataSource plays in JMStudio, but not in my application

    hello everyone. I need someone to help me out who has played around a lot with DataSources.
    I have been playing around with custom DataSources for a small while and I have not been able to figure out something and its starting to get frustrating.
    First let me tell you what process I exactly follow when I want to create a Custom DataSource (using the "Generating Live Audio/Video Data" datasource code sample as an example - from JMF solutions http://java.sun.com/products/java-media/jmf/2.1.1/solutions/LiveData.html):
    1. Suppose the source files (DataSource.java and LiveStream.java) are lying at C:\customds\.
    I compile the files like this:
    javac -d . DataSource.java LiveStream.java
    As a result this directory is formed C:\customds\jmfsample\media\protocol\live which contains all the compiled (interpreted) files.
    2. Then I register 'jmfsample' in the Protocol Prefix list and commit the changes using the JMFRegistry GUI.
    3. Now if I run JMStudio and enter the URL live: it gives me an error that it can't create a player. I feel this is happening because some classpaths haven't been set correctly. Eventually I figured out that I have to place the \jmfsample\media\protocol\live\ directory inside the <JMF install dir>\lib\. Doing this fixes the problem and now I can go to JMStudio and run the protocol using the 'Open URL'. Giving it 'live://' plays the 'blue screen' like a gem.
    4. But here is the catch now. When I create an application which tries to create a player using live:// as a source, it doesn't run and keeps giving me a noPlayerException, or a noDataSourceException (as the case would apply; code given below).
    The funny part is that i checked the JMStudio source code for the method that is used to 'Open URL'. I haven't found any siginificant change in the way it opens urls.
    I also went a step further and tried to compile and run the JMStudio code myself to trace the code when it is in the process of opening a url. The weird thing is that when I try to do that, giving live:// as a URL gives me the same error that is given by my application. In other words JMStudio when compiled by me gives me same the error of "can't create a player..." when I open the url live://. Has Sun used a JMStudio compiled using a different source file?
    Please please anyone tell me what is wrong here.
    I have basically tried out these two kinds of things in my code, and both give me a noPlayerException error:
    Player guiPlayer = Manager.createRealizedPlayer(new MediaLocator("live://"));and
    DataSource ds = Manager.createDataSource("live://");
    Player guiPlayer = Manager.createRealizedPlayer(ds);Thanking in anticipation.
    regards

    Would it be possible for you to expand on your solution a little bit? I'm trying a similar approach, and having a similar problem to yours. From Googling, it appears as if this is a very common problem, and a lot of people give up before they solve it.
    I'm trying to use jmf.jag (and optionally add fobs4jmf.jar), not compile it from source. But I am trying to compile my own protocol from source and run it in a debugger. I have all the class files going out to the same output directory, and IntelliJ generally adds them all to the CLASSPATH automatically. But I keep getting NoPlayerException. (If I break down the players construction step-by-step, it seems to fail on "Processor ps = Manager.createProcessor(ds);".)
    I'm trying to play a Quicktime movie from memory, and I've confirmed that I'm returning "video.quicktime", that my stream is Seekable and isRandomAccess returns true, my prefix is in the protocol list, and that the package name is correct. I've tried with PLUGIN_PLAYER being true or false, media type being video.quicktime or unknown, and every other permutation I can think of.
    Any help would be greatly appreciated.

  • How to create a Custom DataSource ?

    Hi to everybody,
    I'm a little confused about creating a custom DataSource that i need to create a player
    that shows as a video some jpeg images retrieved from an input stream.
    question 1:
    do i have to store all the images in the data source ? or i can just set the current image every time i rereceive a new image ?
    question 2:
    can i link my JpegInputStream to my custom data source in order to read the images ?
    thank you in advance
    ps please help me .. it's really important.
    Marco
    Message was edited by:
    lecoramarco
    Message was edited by:
    lecoramarco
    Message was edited by:
    lecoramarco

    hi
    u will have to create DS using FM.
    use the standard function module and edit the FM as per ur need.
    this post should help u....
    /people/siegfried.szameitat/blog/2005/09/29/generic-extraction-via-function-module
    cheers.

  • Custom DataSources With JMF

    I am having trouble creating a custom DataSource. Even following this example (http://java.sun.com/products/java-media/jmf/2.1.1/guide/JMFApp-DataSource.html#86181) I still get a NoProcessorException. Do I have to implement anything else to get a custom DataSource to work, even if the one I am trying to uses an existing implementation of PullSourceStream, PullBufferStream, PushSourceStream, or PushBufferStream?
    To go into further detail, I am attempting to create a DataSource that pulls data in from a byte stream instead of a file. Unfortunately, I have had no luck. Any help would be greatly appreciated!

    Incidently, I cannot find any examples on building my own MediaHandler (which is appearantly what one needs in order to properly use a custom DataSource ?).
    Anyone have an example? Is it relatively simple?

  • Creating Custom DataSource

    Hi,
    Is it possible to devellop a custom DataSource to enable playback of through the return channel delivered mp2 files in a STB? If so, can anyone help me out?
    Thanks,
    Lokie

    hi,
    Hi,
    Pls check out the whitepaper below -
    https://www.sdn.sap.com/irj/sdn/nw-bi?rid=/library/uuid/50cbb737-b36f-2c10-c78b-b63d116ce313

  • MimeUtility.encode and a custom DataSource

    I have created a custom DataSource, in which I wrap the OutputStream (returned by getOutputStream()) in a MimeUtility.encode call. When I do this, I seem to be getting an encoded MimeBodyPart, but the 'Content-Transfer-Encoding' is wrong. My DataSource code is:
    public class MyDataSource implements DataSource {
        private String _mimeType; // content-type
        private String _encoding;
        private ByteArrayOutputStream _bao;
        /* Create a DataSource from an input stream */
        public MyDataSource(String mimeType, String encoding){
            _mimeType = mimeType;
            _encoding = encoding;
            _bao = new ByteArrayOutputStream();
        * Return an InputStream for the data.
        * Note - a new stream must be returned each time.
        public InputStream getInputStream()
        throws IOException {
            return new
                ByteArrayInputStream(_bao.toByteArray());
        public OutputStream getOutputStream()
        throws IOException {
            OutputStream out = null;
            try {
                out = MimeUtility.encode(_bao, _encoding);
            } catch (MessagingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            return out;
        public String getContentType() {
            return _mimeType;
        public String getName() {
            return "MyDataSource";
    }Now, when I invoke the datasource, I call (shortened):
    _dataSource = new MyDataSource(mimeType, "base64");
    _outStream = _dataSource.getOutputStream();
    /* write some data to the output stream here */
    DataHandler dh = new DataHandler(_dataSource);
    mbp.setDataHandler(dh);
    _multiPart.addBodyPart(mbp);
    _message.setContent(_multiPart);
    _message.setHeader("X-Mailer", "HPDS");
    _message.setSentDate(new Date());
    _message.writeTo(System.out);
    Transport.send(_message);This code was obviously cut down and won't compile, but you get the general idea. When I do this, and I look at the output from the 'writeTo', the data is base64 encoded, but the 'Content-Transfer-Encoding' is set to '7bit'. Now, here's the really wierd thing -- if I change the MyDataSource above to use "7bit" instead of "base64", I get encoded data (I believe that it's base64 encoded, but I'm not positive), and the 'Content-Transfer-Encoding' is set to 'base64'. It looks like the two cases are being swapped?
    Has anyone seen something like this? If I set the 'Content-Transfer-Encoding' explicity by calling:
    mbp.setHeader("Content-Transfer-Encoding", "base64");it works fine. Is this a bug? Or am I just misunderstanding where the 'Content-Transfer-Encoding' comes from.
    TIA,
    - Bill

    OK, I figured it out. This isn't explicitly spelled out in the FAQ, but it turns out that Javamail performs the encoding for you, based on the "Content-Transfer-Encoding" header. I was trying to encode the data inside my datasource, and was getting twice-encoded data. I set the 'getOutputStream' in MyDataSource to not call MimeUtility.encode(), and set the C-T-E header before calling Transport.send(). Now everything is working fine.
    - Bill

  • Error while transporting custom datasource

    Hi All,
    Below is the scenario that was carried out in my project.
    1. Created OHD to load data from a CUBE to Data base Table /BIC/ABC.
    2. Created a custom Datasource ZABC_TEST with the above table.
    3. Activated the DataSource and loaded the data. (Data load successfull. It works fine).
    4. Tried transporting the above. But trows error while transporting the data source.
    Error -- InfoSource ZABC_TEST is not available in source system BITST.
    Let me know what can be done to solve the above error. Please suggest if i have missed out something.
    Thanks in advance.
    Maddy

    HI,
    The problem seems to be occuring since you are transporting both OHD and DS in the same TR request.
    Transport first the DS in a request, then in another request transport the OHD.
    This should resolve the issue.
    hope this helps.
    thanks,
    rahul

  • Custom Datasource using View COVJ - R8359 Invalid extract structure

    I'm trying to build a custom datasource so I can get at plan line item data with partner object (I've tried using 0CO_OM_CCA_1 but I dont get the partner object for plan data - no idea why). So I thought if I create a datasource using COVJ I can get it out. However when I try and save the custom datasource (created using RSO2) I get the error R8359 Invalid extract structure: You tried to generate an extract structure with the template structure COVJ. This operation failed, because the template structure quantity fields or currency fields, for example, field WOG001 refer to a different table.
    I saw posts saying when people get this error thye should reference the table these fields come from in the view. So I've talked to our ABAP'er and I asked him to reference the table these fields come from but he said this cant be done because these come from a structure not a table.
    Any ideas?
    Thanks
    Joel

    The WOG* columns in table COEJ, one of the tables contributing to the COVJ view, use CCCUR-CURKY as the reference table-column for those quantities. The ABAPer you spoke to is correct that CCCUR is a structure. View value fields inherit their reference table-column from the source, in this case COEJ, and since this source table is an SAP delivered table it cannot be modified change this reference.
    This means that you're only option for extracting the data out of the COVJ view would be to create a Function Module and use that Function Module as the basis for your DataSource.

  • Select option greyed out for fields of custom DataSource (rso2, rsa6)

    Hi
    Why are several fields, in my custom DataSource (created in rso2) not available for select?
    I do not think this is a permission issue, since several fields are selectable, but not all fields.
    It is not the data type, since I see other custom DataSources that have the same data type, and it is selectable as a select option.
    This is not a DataSource that was provided by SAP, it is completely custom, and uses a custom data definition (defined as a structure via se11), and a custom function.
    I have read the responses to similar questions, but have not found an answer that explains how to make the field selectable for select.
    What determines which fields can be selected for selection, and which fields have this option greyed out (not selectable)?
    I have come across multiple answers, for similar questions, that suggest an abap program to directly update table roosfield.
    Is this safe?
    IF I choose this route will I need to run the update program on production, or will the change it makes to my dataSource transport with my transport?
    (I can test this).
    What I most need to know is If this suggestion is safe, or if it has side effects?
    Thank you

    Hi Eileen,
    In Least case to enable the selection for the fields with the below program:
    Below code is for your reference which will use to unhide objects in RSO2 or RSA6 for Data source( in code for BELNR, KUNNR, VBELN, BUDAT fields are unhiding for 0fi_ar_4 data source selection option) . Still need any clarifications let me know.
    SE38: Create a program for ref below code.
    REPORT ZNP_SELE_DS.
    tables: ROOSFIELD.
    UPDATE ROOSFIELD SET SELECTION = 'P'
    WHERE OLTPSOURCE = '0FI_AR_4' AND   OBJVERS = 'A' AND FIELD = 'BELNR'.
    UPDATE ROOSFIELD SET SELECTION = 'P'
    WHERE OLTPSOURCE = '0FI_AR_4' AND OBJVERS = 'A' AND FIELD = 'KUNNR'.
    UPDATE ROOSFIELD SET SELECTION = 'P'
    WHERE OLTPSOURCE = '0FI_AR_4' AND OBJVERS = 'A' AND FIELD = 'VBELN'.
    UPDATE ROOSFIELD SET SELECTION = 'P'
    WHERE OLTPSOURCE = '0FI_AR_4' AND OBJVERS = 'A' AND FIELD = 'BUDAT'.
    Thanks & Regards,
    Srinu.Rapolu

  • Using Custom Datasource to load Cube

    Hi Guys,
    Ok the scenario, I have created a custom datasource that is pulling data from R/3.
    The datasource is working correctly because the the number of records in R/3 matches those that are being pulled into my PSA table for my Datasource....so all thats good.
    Ok the next step is where I am struggling.
    I thought it may be a case of creating a new infocube and just adding new dimensions and include the fields of that are in the datasource into those dimensions but that doesnt work.
    Is their some documentation to doing this correctly?
    Should the fields I am using in the datasource be available as infoobjects?
    Thanks

    Hi,
    In BI for standard data elements you will have a set of predefined infoobjects that are equivalent of R/3 data elements. These start from 0(Zero).....
    So the first thing to do is to find as many IOs possible that are having same characteristics as your fields in R/3 datasource. Remember if you find one IO for each field that is enough.
    Once you find standard IOs there might be a possiblity that some of the fields in R/3 are not having any equivalent IO in BW. For this you need to create custom ones.
    After infoobjects are finalsed you can add them to your cube and create transformations.
    Regards,
    Pramod

  • Procedures for implementing a snapshot scenario with custom DataSources

    Hi Gurus,
    I have checked the How To paper ([How to Handle Inventory Management Scenarios in BW (NW2004)|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/f83be790-0201-0010-4fb0-98bd7c01e328]). However, only SAP standard BW objects are mentioned in the paper e.g. InfoCube (0IC_C03), Material Stock InfoSource (2LIS_03_BX), Material movements IS (2LIS_03_BF) and Revaluations IS (0LIS_03_UM).
    On the contrary, I need to handle custom DataSources for the Snapshot scenario. Are there any differences in the implementation methodology? Which additional aspects should I take into consideration? For example, the load sequence, delta type, etc.
    Could you please list out the step-by-step procedures for such an implementation?
    Thanks in advance!
    Regards,
    Meng

    Hi Meng,
    You can approach this in two ways.
    1) If the volume of data is not much, you can derive the balance at query level, as follows.
    User enters the date, based on this restrict your key figure to display all values less than this date.
    2) If the volume of data is high, then you will have issues with performance if you are calculating the balance in the front end. In this case, you can model this with 'Non cumulative' key figure.  Again there are 2 ways of approaching this back end solution based on the volume of data. ( Say in one case you have 2 years of history in your DSO and in the second case, you have  5 years of history ).
    A) For example, If there are only 2 years of history
    Create a non cumulative Key figure 'ZBALANCE' with inflow and outflow, in a cube.
    Map this to your credit and debit as + and - respectively and map the calender day to posting date.
    Just initialise the dataload with data transfer and start loading the delta as normal.
    You will be able to see the balances for each and every calday in your reporting.
    This approach is straight forward and simple.
    Compress the cube for getting the better performance.
    B) If there are 5 years of history and you are not interested in loading all the 5 years data in getting the balance
    Here you want to have the initial balance, continue delta and would like to load 2 years of history.
    The cube and non cumulative KF are created as mentioned above.
    For generating initial balance, you have to create another DSO without calander day and ZBalance mapped to credits and debits in additive mode. Load your DSO data into this new DSO to generate initial balance. This balance will be loaded to your cube as initial balance. ( Like 2LIS_03_BX ).
    You have to compress this request with marker update ( Must ).
    Load your historical data for 2 years from the original DSO. Compress without marker update ( Must ).
    initialise without data transfer from DSO to cube and load deltas normally.
    Compress the delta requests normally for performance reasons.
    Please read the 'Inventory document' in detail.
    Please let me know, if any of the information is still not clear.
    Thanks,
    Krishnan

  • Dump during extraction for the custom datasource (ZFI_GL_14).

    Hello all,
    we are using Ecc 6.0 and we havent installed Enhancement Package 3. However our requirement is to create a custom datasource (ZFI_GL_14) similar to the standard one (0FI_GL_14). Initially we created the custom DS same as the standard one with the extraction method using Function Module. By default custom DS was assigned with extraction method F2. By running a program we changed F2 to F1 to resemble the standard one and made it as delta enabled as specified in the standard extractor.
    when we started extracting the custom DS using RSA3, we encountered so many errors and resolved them. However still we are getting some more errors which requires your help.
    1. While testing One of the function module FAGL_GET_LINE_ITEMS, it throws following ABAP dump.
    Short text                                                                               
    |    A dynamically specified FROM clause has an unexpected format.                              
    |What happened?                                                                               
    |    Error in the ABAP Application Program                                                        
    |                                                                               
    |    The current ABAP program "SAPLYPFI_FAGL_ITEMS_SELECT_BW" had to be terminated                
    |     because it has come across a statement that unfortunately cannot be executed.                               
    |Error analysis                                                                               
    |    An exception occurred that is explained in detail below.                                     
    |    The exception, which is assigned to class 'CX_SY_DYNAMIC_OSQL_SYNTAX', was not               
    |     caught in                                                                               
    |    procedure "YPFI_FAGL_GET_LINE_ITEMS" "(FUNCTION)", nor was it propagated by a                
    |     RAISING clause.                                                                             
    |    Since the caller of the procedure could not have anticipated that the                        
    |    exception would occur, the current program is terminated.                                    
    |    The reason for the exception is:                                                             
    |    The running ABAP program attempted to execute an Open SQL statement in                       
       which a FROM clause was specified dynamically in the field "LD_DBTAB_SYNTAX".                
    |     In this                                                                               
    |    FROM clause, either a table name after a join operator is missing, or an                     
    |     alias name after the key name "AS". The field "LD_DBTAB_SYNTAX" could be empty as well.                                                                               
    |Missing RAISING Clause in Interface                                                              
    |    Program                                 SAPLYPFI_FAGL_ITEMS_SELECT_BW                        
    |    Include                                 LYPFI_FAGL_ITEMS_SELECT_BWU01                        
    |    Row                                     1                                                    
    |    Module type                             (FUNCTION)                                           
    |    Module Name                             YPFI_FAGL_GET_LINE_ITEMS                             
    |Trigger Location of Exception                                                                    
    |    Program                                 SAPLYPFI_FAGL_ITEMS_SELECT_BW                        
    |    Include                                 LYPFI_FAGL_ITEMS_SELECT_BWU01                        
    |    Row                                     353                                                  
    |    Module type                             (FUNCTION)                                           
    |    Module Name                             YPFI_FAGL_GET_LINE_ITEMS                             
    |Source Code Extract                                                                               
    |Line |SourceCde                                                                               
    |  323|                                  lt_fields_flexgl                                         
    |  324|                                  lt_fields_table1                                         
    |  325|                                  lt_fields_table2                                         
    |  326|                                  gv_si_table "erste Tab immer Flexgl?                    
    |  327|                                  gc_bkpf                                                  
    |  328|*                                  ' '                  
    |  329|                                  gc_bkpf_aedat       
    |  330|                                  'X'                                                      
    |  331|                            CHANGING ld_dbtab_syntax                                       
    |  332|                                     lt_fldlist_s                                          
    |  333|                                     lt_where_tab[].                                       
    334
    |  335|*       open cursor                                                                        
    |  336|        DESCRIBE TABLE lt_where_tab LINES ld_lines.                                       
    |  337|        IF ld_lines GT 0.                                                                 
    |  338|          delta_dbcnt          = 0.                                                       
    |  339|          old_dbcnt            = 0.                                                        
    |  340|          flag_cursor_open     = 'X'.                                                     
    |  341|          cursor_flag          = 'X'.                                                      
    342
    |  343|          OPEN CURSOR WITH HOLD i_cursor FOR                                               
    |  344|          SELECT (lt_fldlist_s)                                                            
    |  345|            FROM (ld_dbtab_syntax) CLIENT SPECIFIED                                        
    |  346|             WHERE (lt_where_tab).                                                         
    |  347|        ELSE.                                                                               
    |  348|          delta_dbcnt          = 0.                                                        
    |  349|          old_dbcnt            = 0.                                                        
    |  350|          flag_cursor_open     = 'X'.                                                      
    |  351|          cursor_flag          = 'X'.                                                      
    352
    |>>>>>|          OPEN CURSOR WITH HOLD i_cursor FOR                                               
    |  354|          SELECT (lt_fldlist_s)                                                            
    |  355|            FROM (ld_dbtab_syntax) CLIENT SPECIFIED.                                       
    |  356|        ENDIF.                                                                             
    357
    |  358|        st_selection[]  = lt_selection[].                  
    |  359|        st_fieldlist[]  = lt_fieldlist[].                  
    |  360|        sd_dbtab_syntax = ld_dbtab_syntax.             
    |  361|        st_fldlist_s[]  = lt_fldlist_s[].                
    |  362|        st_where_tab[]  = lt_where_tab[].                
    |  363|        st_seltable2[]  = lt_seltable2[].                 
    364
    |  365|      ENDIF.   "cursor_flag                                                               
    366
    |  367|      lt_selection[]  = st_selection[].                 
    |  368|      lt_fieldlist[]  = st_fieldlist[].                                       
    |  369|      ld_dbtab_syntax = sd_dbtab_syntax.        
    |  370|      lt_fldlist_s[]  = st_fldlist_s[].                 
    |  371|      lt_where_tab[]  = st_where_tab[].              
    |  372|      lt_seltable2[]  = st_seltable2[].                   
    Line 353 contains the error.
    1. L_DBTAB_SYNTAX. As per the statement this field should bring the table name, but it is not bringing any value                          whiledebugging.
    2.also lt_fldlist_s should bring the field names.
    As this is for New GL line item datasource, I am not sure what fields should lt_fldlist_s and what table name , and wheretab value should come , so that the function module can extract the data.
    Kindly help me to get an insight into this issue and to get it resolved.
    thanks,
    Praba...

    Hi Frank,
    yes I agree. That was the first question that came to me in my mind. However, the job was handed over to us, and we were able to exactly create the custom DS , FM and Function groups as similar to the standard one and everthing got activated perfectly. But during extraction, it throws the dump.While debugging, the function module is not able to pick the value for the 3 fileds which I stated above in one of my queries. The main extractor for this Datasource is FAGL_GET_SI_DATA and it uses the extract structure FAGLPOSBW.This Main function module in turn calls one more FM, FAGL_GET_LINE_ITEMS by exporting below parameters.
    CALL FUNCTION 'FAGL_GET_LINE_ITEMS'
              EXPORTING
                i_block_data = 'X'
                i_block_size = sd_max_lines
                i_selection  = lt_select_int
                i_fieldlist  = lt_fields_int
                i_initflag   = i_initflag.
          ELSE.
    From my observation ,  the above statements i_selection  = lt_select_int  and i_fieldlist  = lt_fields_int should contain/pass the value to the line items FM, FAGL_GET_LINE_ITEMS.In the above thread also I mentioned I didnt get the value for ld_dbab_syntax, lt_fieldlst_s and ld_where_tab. I believe it is simply because i_selection and i_fieldlist is not getting the value from lt_select_init and lt_fields_init respectivelyImport parameters for this FM is as below.
    I_BLOCK_DATA     TYPE     C
    I_BLOCK_SIZE     TYPE     SY-TABIX
    I_SELECTION                           TYPE     GUSL_T_SELECTION
    I_FIELDLIST                           TYPE     GUSL_T_FIELDS
    I_INITFLAG                           TYPE     GUSL_BOOL
    I_CHANGED_RECORDS      TYPE     GUSL_BOOL
    export parameter for this FM is as below.
    FLAG_CURSOR_OPEN     TYPE     FLAG
    Changing parameter for this FM is as below
    C_T_FAGLPOSE     TYPE     FAGLPOSE_T
    where FAGLPOSE means Fields for Reading Data: Line Items: New General Ledger.GUSL_T_SELECTION is the same type like DDIC table type FB_T_FIELD_SELECT_OPTIONS which will have Fieldname and selection option range.GUSL_T_SELECTION is created within the type group GUSL as mentioned below.
    TYPES: BEGIN OF GUSL_S_SELECTION,
           FIELDNAME LIKE DFIES-FIELDNAME,
           T_RANGE   TYPE GUSL_T_RANGE,
           END   OF GUSL_S_SELECTION,
           GUSL_T_SELECTION TYPE GUSL_S_SELECTION OCCURS 20.
    wherein
    FIELDNAME LIKE DFIES-FIELDNAME,
    DFIES: --> DD Interface: Table Fields for DDIF_FIELDINFO_GET. Also GUSL_T_FIELDS refers to DFIES.
    Regards,
    Praba..

  • Player for custom datasource

    Hi
    I need to create a custom datasource but i want to play it on a player as other normal datasource.
    I tell you what im doing, I have developed a example to show you my problem:
    first thing i do is creating a custom datasource:
    import javax.media.*;
    import javax.media.protocol.DataSource;
    import javax.media.protocol.ContentDescriptor;
    public class myCustomDataSource extends DataSource {
         myCustomDataSource(MediaLocator ml){}
         public void connect(){}
         public void disconnect(){}
         public void start(){}
         public void stop(){}
         public String getContentType() {
              return ContentDescriptor.CONTENT_UNKNOWN;
         public Object[] getControls() {
             return new Object[0];
         public Object getControl(String type) {
             return null;
         public Time getDuration(){
              return Time.TIME_UNKNOWN;
    }then, I create a basic class that use a player for playing my custom datasource:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.media.*;
    import javax.media.protocol.DataSource;
    public class VideoPlayer extends JFrame {
         Player player = null;
         private JPanel contentPane;
         public static void main(String args[]){
              String mediaFile = "http://noodle.med.yale.edu/demos/dsr_arrow.mpg";
              MediaLocator locator = new MediaLocator(mediaFile);
              myCustomDataSource mcds = new myCustomDataSource(locator);
              (new VideoPlayer(mcds)).setVisible(true);
         public VideoPlayer(myCustomDataSource ds) {
              super("Example");
              setSize(400,400);
              contentPane = (JPanel) this.getContentPane();
              addWindowListener(new myWindowAdapter());
              try {
                   player = Manager.createPlayer(ds);
                   player.addControllerListener(new controllerUpdate());
              }catch(Exception e){
                   System.err.println("Error loading the media. ("+e+")");
              if(player!=null) player.realize();      
         class controllerUpdate implements ControllerListener {      
              public synchronized void controllerUpdate(ControllerEvent e) {      
                   if(e instanceof RealizeCompleteEvent) {
                        Component visualArea = player.getVisualComponent();      
                        Component controlPanel = player.getControlPanelComponent();      
                        if(visualArea!= null)      
                             contentPane.add(visualArea, BorderLayout.CENTER);      
                        if(controlPanel != null)      
                             contentPane.add(controlPanel, BorderLayout.SOUTH);      
                        validate();      
                        player.prefetch();
                   if(e instanceof PrefetchCompleteEvent) {
                        player.start();
         class myWindowAdapter extends WindowAdapter {
              public void windowClosing(WindowEvent e){
                   if(player!=null) player.close();
                        System.exit(0);
    }when i run it i get the next error: Error loading the media. (javax.media.NoPlayerException: Cannot find a Player for: myCustomDataSource@be0e27)
    I dont know how i must fill the myCustomDataSource class constructor and abstract methods to run it.
    I test videoplayer class with a normal datasource and it works
    sorry for my bad english
    Thanks so much

    ok, thanks for answering,
    I see a sun webpage example maybe can help: http://java.sun.com/javase/technologies/desktop/media/jmf/2.1.1/solutions/JpegImagesToMovie.html
    In that example, a custom datasource is declared and then a processor is created with that custom datasource using Manager.createProcessor. For that, custom data source class is declared inside class where processor is used. Im trying to do it but it doesnt work, i get the same error.
    thanks in advance
    import java.awt.*;
    import java.awt.event.*;
    import java.util.Vector;
    import java.io.*;
    import javax.swing.*;
    import javax.media.*;
    import javax.media.protocol.ContentDescriptor;
    import javax.media.protocol.DataSource;
    public class VideoPlayer extends JFrame {
         Processor p = null;
         private JPanel contentPane;
         myCustomDataSource mcds = null;
         public static void main(String args[]){
              String locator = "C:/video.avi";
              (new VideoPlayer(locator)).setVisible(true);
         public VideoPlayer(String locator) {
              super("Example");
              setSize(400,400);
              contentPane = (JPanel) this.getContentPane();
              addWindowListener(new myWindowAdapter());
              mcds = new myCustomDataSource(locator);
              try {
                   p = Manager.createProcessor(mcds);
              }catch(Exception e){
                   System.err.println("Error loading the media. ("+e+")");
              if(p != null){
                   //p.setContentDescriptor(null);
                   p.addControllerListener(new controllerUpdate());
                   p.configure();      
         class controllerUpdate implements ControllerListener {      
              public synchronized void controllerUpdate(ControllerEvent e) {      
                   if(e instanceof ConfigureCompleteEvent) {
                        p.realize();
                   if(e instanceof RealizeCompleteEvent) {
                        Component visualArea = p.getVisualComponent();      
                        Component controlPanel = p.getControlPanelComponent();      
                        if(visualArea!= null)      
                             contentPane.add(visualArea, BorderLayout.CENTER);      
                        if(controlPanel != null)      
                             contentPane.add(controlPanel, BorderLayout.SOUTH);      
                        validate();      
                        p.prefetch();
                   if(e instanceof PrefetchCompleteEvent) {
                        p.start();
         class myWindowAdapter extends WindowAdapter {
              public void windowClosing(WindowEvent e){
                   if(p != null) p.close();
                        System.exit(0);
         class myCustomDataSource extends DataSource {
              MediaLocator ml = null;
              myCustomDataSource(String locator){
                   ml = new MediaLocator("file://"+locator);
                   super.setLocator(ml);
              public void connect(){}
              public void disconnect(){}
              public void start(){}
              public void stop(){}
              public String getContentType() {
                   return ContentDescriptor.CONTENT_UNKNOWN;
              public Object[] getControls() {
                  return new Object[0];
              public Object getControl(String type) {
                  return null;
              public Time getDuration(){
                   return Time.TIME_UNKNOWN;
    }

  • Creating a custom datasource. Please help!

    Hi Experts,
    I'm creating a custom datasource in RSO2 to extract data from a custom view based on three z tables. I have filled the view with the join conditions and the fields. After activating it, I have checked the data and it's correct. The problem appears when I try to create a custom datasource based on this table, the following error appears:
    Invalid extract structure template ZXXX of DataSource ZXXX.
    You tried to generate an extract structure with the template structure ZXXX. This operation failed, because the template structure quantity fields or currency fields, for example, field AMOUNT refer to a different table.
    I have checked the quantity and currency fields in order to add the reference tables and fields. For example:
    0AMOUNT: ref table: EIPA; ref field: BWAER.
    The problem is that I don´t know how to join both tables (EIPA and my Zview) because the key is different in the tables and only non relevant fields like Net Price appear in both tables.
    If I add only the field EIPA-WAER, the data selectedis not correct, obviously.
    Please, what can I do? Any ideas?
    Thanks in advance! Any help will be more than welcome. Thanks!

    Hi all,
    I have created an Infoset but the problem persists. If I only join the tables I need, when I generate de Infoset, a warning appears telling that some fields (currency and quantity) will not be filled. At this point, if I execute de datasource in RSA3, the number of records is correct but these fields are empty.
    If I add the tables that appear in the warning message, the number of records extracted is 0, because these "auxiliar" tables only contain information about currency units but they don't have the same key values so thay cannot join.
    I have a question now... the tables that I have to upload into BI are also Z Tables. What happens if I ask my development team to add currency and quantity units in these tables? I think my problem will be solved if unit fields appear in the original tables. Would it be enough?
    Any suggestions on it?
    Thanks in advance!
    Edited by: Iñaki Rueda on Dec 29, 2009 12:02 PM

  • Audio playback delayed thru Firewire monitor - JVC BR-DV3000

    First I apologize for the length of this post, but I want to make sure I've adequately described the problem. For years, I've edited with FCP using a JVC HR-DVS2U (DV/SVHS combo deck) with great results. I use it to capture and output through firewire, also connected is a monitor and a UVW-1600 Beta machine.
    Now a buddy of mine also has a system using a JVC BR-DV3000. When I attempted to set his system up similar to mine, using the DV deck as the conduit for monitoring and recording to beta, he complained about audio dropping out at the beginning of transitions in the timeline. This was the weirdest thing! How does the DV machine know that a transition is taking place?! I thought it was just data out. I finally traded out machines with him and hooked it up to my system. At first, I didn't have any problems. I mainly edit 30-second commercials, so I played back a timeline with three dozen transitions in it without a hitch! So now I'm really confused, until one day I had a 20 minute long timeline of about 20 promos back to back, all digitized from beta. Sure enough there was the audio playback delay. I switched the audio playback from firewire to computer audio out and I did not have the problem, but I could not record out to tape in this configuration. Then I thought maybe it's just the length of the timeline, so I opened up a commercial timeline that plays back fine and pasted one of the beta promos in there. The 30 second spot played back fine and then when it hit the beta vid it had the audio dropout. Now understand, the audio is NOT out of sync, it just drops out for about two seconds when playing back from the timeline. You can watch the VU meter on the deck, it completely loses the audio for two seconds, mostly when you first start the timeline and at most transitions. I now think it may have something to do with the source material. I just digitized some video from DV that was shot on a JVC camera, when most of the stuff I shoot is from a Canon XL1. The JVC camera footage has this dropout issue. Any clues?

    This has happened to me too. The problem is with the firmware in older DV3000 decks. JVC has an update, but you can't do it yourself. JVC or your dealer will have to do it for you. In the meantime there is a workaround. Make sure your DV3000 is powered on FIRST. Then start FCP. That trick always worked for me. Good Luck.

Maybe you are looking for

  • Crystal Report Many to One Query Config error when using DataSet.ReadXML me

    When I build a dataset with this method numerous relations are automatically created. I then map these fields onto crystal reports with ADO.net data connection. However when I run the report the following error occurs: CrystalDecisions.CrystalReports

  • Short Dump while using BAPI_PS_PRECOMMIT to set Project Definition Status

    Hi All, I am getting a short dump while using BAPI_PS_PRECOMMIT for setting the Project Definition status.. The requirement is to create a Project Definition and then set its status to REL from CRTD. For this purpose i am using the BAPI's in the foll

  • Two of the same artists showing up on my ipod when I add 1 specific album

    OK so here's what's happening.  I downloaded a rolling stones album "Let It Bleed," off the internet.  And I made a file for it, put the songs in the file, and put the file in itunes. So I have ALL the songs, album artwork etc in itunes, but the song

  • Suggestion: JavaScript scope variables and event listeners

    Invoking Java from JavaScript in ADF Mobile is surprisingly efficient although it is still relatively expensive compared to plain HTML5/JavaScript/CSS stuff in the native UIWebView. But whenever you want to do something "dynamic" you have to revert t

  • How to use sets in PL/SQL

    Hi all, I want to know how to implement algebraic sets in PL/SQl. I mean for example if there is a table R(A,B) where A is aprimary key having the data :- {(1,2),(2,1),(2,3),(3,1)} i want to have a data type that represents sets of data corresponding