Changeset 895 for pjproject/trunk/pjsip/src/pjsua-lib/pjsua_media.c
- Timestamp:
- Jan 21, 2007 11:12:40 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsua-lib/pjsua_media.c
r865 r895 721 721 { 722 722 unsigned slot, file_id; 723 char path[ 128];723 char path[PJ_MAXPATH]; 724 724 pjmedia_port *port; 725 725 pj_status_t status; … … 762 762 } 763 763 764 pjsua_var.player[file_id].type = 0; 764 765 pjsua_var.player[file_id].port = port; 765 766 pjsua_var.player[file_id].slot = slot; … … 771 772 PJSUA_UNLOCK(); 772 773 return PJ_SUCCESS; 774 } 775 776 777 /* 778 * Create a file playlist media port, and automatically add the port 779 * to the conference bridge. 780 */ 781 PJ_DEF(pj_status_t) pjsua_playlist_create( const pj_str_t file_names[], 782 unsigned file_count, 783 const pj_str_t *label, 784 unsigned options, 785 pjsua_player_id *p_id) 786 { 787 unsigned slot, file_id, ptime; 788 pjmedia_port *port; 789 pj_status_t status; 790 791 if (pjsua_var.player_cnt >= PJ_ARRAY_SIZE(pjsua_var.player)) 792 return PJ_ETOOMANY; 793 794 PJSUA_LOCK(); 795 796 for (file_id=0; file_id<PJ_ARRAY_SIZE(pjsua_var.player); ++file_id) { 797 if (pjsua_var.player[file_id].port == NULL) 798 break; 799 } 800 801 if (file_id == PJ_ARRAY_SIZE(pjsua_var.player)) { 802 /* This is unexpected */ 803 PJSUA_UNLOCK(); 804 pj_assert(0); 805 return PJ_EBUG; 806 } 807 808 809 ptime = pjsua_var.mconf_cfg.samples_per_frame * 1000 / 810 pjsua_var.media_cfg.clock_rate; 811 812 status = pjmedia_wav_playlist_create(pjsua_var.pool, label, 813 file_names, file_count, 814 ptime, options, 0, &port); 815 if (status != PJ_SUCCESS) { 816 PJSUA_UNLOCK(); 817 pjsua_perror(THIS_FILE, "Unable to create playlist", status); 818 return status; 819 } 820 821 status = pjmedia_conf_add_port(pjsua_var.mconf, pjsua_var.pool, 822 port, &port->info.name, &slot); 823 if (status != PJ_SUCCESS) { 824 pjmedia_port_destroy(port); 825 PJSUA_UNLOCK(); 826 pjsua_perror(THIS_FILE, "Unable to add port", status); 827 return status; 828 } 829 830 pjsua_var.player[file_id].type = 1; 831 pjsua_var.player[file_id].port = port; 832 pjsua_var.player[file_id].slot = slot; 833 834 if (p_id) *p_id = file_id; 835 836 ++pjsua_var.player_cnt; 837 838 PJSUA_UNLOCK(); 839 return PJ_SUCCESS; 840 773 841 } 774 842 … … 808 876 PJ_ASSERT_RETURN(id>=0 && id<PJ_ARRAY_SIZE(pjsua_var.player), PJ_EINVAL); 809 877 PJ_ASSERT_RETURN(pjsua_var.player[id].port != NULL, PJ_EINVAL); 878 PJ_ASSERT_RETURN(pjsua_var.player[id].type == 0, PJ_EINVAL); 810 879 811 880 return pjmedia_wav_player_port_set_pos(pjsua_var.player[id].port, samples); … … 861 930 }; 862 931 unsigned slot, file_id; 863 char path[ 128];932 char path[PJ_MAXPATH]; 864 933 pj_str_t ext; 865 934 int file_format;
Note: See TracChangeset
for help on using the changeset viewer.