playlist seems broken only first two files played: what happened to fport->fd_list[2]???

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ok...I feel dumb...I am using the wrong set_eof function...I should 
be using pjmedia_wav_playlist_set_eof_cb()...

Sorry,
David Clark

At 07:33 PM 1/16/2009, you wrote:
>Alright I found the problem but not the solution.
>The problem has to do with wav_playlist.c versus wav_player.c and 
>the port definitions being different.
>Lets take a look at what my application does.  It does this:
>         status = pjsua_playlist_create(play_list_filenames, 
> filecount, &port_label, PJMEDIA_FILE_NO_LOOP,
>                                      &sip_data[line].wav_id); // 
> this works.  And craetes a media port using the wav_playlist.c definition.
>
>          pjsua_player_get_port(sip_data[line].wav_id, 
> &sip_data[line].wav_playback_port); // this gives the port based on 
> id being a array index
>
>         sip_data[line].wav_port = 
> pjsua_player_get_conf_port(sip_data[line].wav_id); // no affect on this issue.
>
> 
>status=pjmedia_wav_player_set_eof_cb(sip_data[line].wav_playback_port, 
>&sip_data[line].line_number, on_wave_playback_eof); // ok in this 
>function we break.
>This function is in wav_player.c.  So the smaller port definition is 
>used and when fport->cb is set...bam we have no handle value for the 
>fport->fd_list[2] when
>we get back into wav_playlist.c
>
>Possible solutions
>put a set_eof_cb() function of some type in wav_playlist.c
>move (*cb) (port *, void *); to the first field of both structures.
>
>But what ideas does Benny and team have, as I would want any 
>solution merged into pjsip releases going forward.  But I can test 
>any solution proposed.
>Thanks,
>David Clark
>
>
>
>At 02:29 PM 1/16/2009, you wrote:
>>playlist bug after the second file.  The file handle is lost.
>>I augmented wav_playlist.c to print out some debug
>>statements of what the file handles and read function results
>>where.  This is what I got:
>>
>>wav_playlist.c 
>>pj_file_open(filename=C:\centurytel\SYSlib\CATlib\slot_1.wav,handle=17964) 
>>index = 3
>>wav_playlist.c 
>>pj_file_open(filename=C:\centurytel\SYSlib\CATlib\slot_2.wav,handle=17972) 
>>index = 2
>>wav_playlist.c 
>>pj_file_open(filename=C:\centurytel\SYSlib\CATlib\slot_3.wav,handle=17976) 
>>index = 1
>>wav_playlist.c 
>>pj_file_open(filename=C:\centurytel\SYSlib\CATlib\slot_4.wav,handle=17980) 
>>index = 0
>>
>>filenames and handles look acceptable for the given index values.
>>
>>       resample.c resample created: high qualiy, large filter, 
>> in/out rate=16000/8000
>>       resample.c resample created: high qualiy, large filter, 
>> in/out rate=8000/16000
>>  playfilelist(4321): pjsua_playlist_create()
>>  ckln_newop(1, play wave, Ready), sip_data[line].line_state=play 
>> wave, sip_data[line].current_pjsip_operation=play wave
>>     conference.c Port 2 (4321) transmitting to port 1 
>> (sip:+19722496924 at 4.68.250.148;isup-oli=62)
>>  playfilelist(4321): pjsua_conf(connect(2, 1)
>>wav_playlist.c pj_file_read(handle=17980, input_size=4000) returned 
>>size=4000, index = 0
>>wav_playlist.c pj_file_read(handle=17980, input_size=4000) returned 
>>size=4000, index = 0
>>wav_playlist.c pj_file_read(handle=17980, input_size=4000) returned 
>>size=4000, index = 0
>>wav_playlist.c pj_file_read(handle=17980, input_size=4000) returned 
>>size=926, index = 0
>>wav_playlist.c pj_file_read(handle=17976, input_size=3074) returned 
>>size=3074, index = 1
>>wav_playlist.c pj_file_read(handle=17976, input_size=4000) returned 
>>size=4000, index = 1
>>wav_playlist.c pj_file_read(handle=17976, input_size=4000) returned 
>>size=4000, index = 1
>>wav_playlist.c pj_file_read(handle=17976, input_size=4000) returned 
>>size=2908, index = 1
>>wav_playlist.c pj_file_read(handle=5277605, input_size=1092) 
>>returned size=-1, index = 2
>>wav_playlist.c pj_file_read(handle=5277605, input_size=4000) 
>>returned size=-1, index = 2
>>wav_playlist.c pj_file_read(handle=5277605, input_size=4000) 
>>returned size=-1, index = 2
>>wav_playlist.c pj_file_read(handle=5277605, input_size=4000) 
>>returned size=-1, index = 2
>>wav_playlist.c pj_file_read(handle=5277605, input_size=4000) 
>>returned size=-1, index = 2
>>wav_playlist.c pj_file_read(handle=5277605, input_size=4000) 
>>returned size=-1, index = 2
>>wav_playlist.c pj_file_read(handle=5277605, input_size=4000) 
>>returned size=-1, index = 2
>>wav_playlist.c pj_file_read(handle=5277605, input_size=4000) 
>>returned size=-1, index = 2
>>wav_playlist.c pj_file_read(handle=5277605, input_size=4000) 
>>returned size=-1, index = 2
>>
>>This actually continues until I hangup at which point the player is 
>>destroyed.
>>
>>The question is what happened to fport->fd_list[2]???
>>
>>
>>At 03:24 AM 1/16/2009, you wrote:
>>>If I play files for the digits 4321 I only hear digits 4 and 3.
>>>I am using version 1.0-rc1.
>>>
>>>Anybody seen anything like this?
>>>I know from personal experience with prior versions like 0.5.8 
>>>this functionality used to work fine.
>>>
>>>Thanks,
>>>David Clark
>>>
>>>
>>>_______________________________________________
>>>Visit our blog: http://blog.pjsip.org
>>>
>>>pjsip mailing list
>>>pjsip at lists.pjsip.org
>>>http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>>
>>
>>_______________________________________________
>>Visit our blog: http://blog.pjsip.org
>>
>>pjsip mailing list
>>pjsip at lists.pjsip.org
>>http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
>
>_______________________________________________
>Visit our blog: http://blog.pjsip.org
>
>pjsip mailing list
>pjsip at lists.pjsip.org
>http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org




[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux