Custom Query (2195 matches)
Results (1901 - 2000 of 2195)
Ticket | Summary | Owner | Type | Priority | Milestone | Component |
---|---|---|---|---|---|---|
#1073 | Assertion when receiving SDP answer with different media count | nanang | defect | normal | release-1.7 | pjmedia |
#1074 | Assertion when SRTP receives long key in SDP crypto attribute | nanang | defect | normal | release-1.7 | pjmedia |
#1075 | SRTP authentication fails after hold/resume and RTP seq restarted | nanang | defect | normal | release-1.7 | pjmedia |
Description |
The pjsua will always restart the media transport whenever media description gets updated, e.g: SDP renegotiation in re-INVITE or UPDATE, hence the SRTP state will also get restarted, which is not desired, e.g: the ROC (Roll Over Counter) of SRTP state may get out of sync. |
|||||
#1076 | SRTP put unnecessary SDP crypto attribute in disabled SDP media (port 0) | nanang | enhancement | normal | release-1.7 | pjmedia |
#1084 | Invalid negotiated codec after SDP negotiation | nanang | defect | normal | release-1.7 | pjmedia |
Description |
Scenario:
|
|||||
#1085 | Handle the usage of obsoleted payload type 2 for G726-32 | nanang | defect | normal | release-1.7 | pjmedia |
#1088 | Assertion when SDP negotiation processing SDP offer containing disabled media without rtpmap attribute | nanang | defect | normal | release-1.7 | pjmedia |
Description |
Here is the scenario to reproduce:
The SIPp scenario can be found in tests/pjsua/scripts-sipp/uac-inv-two-media-but-one-disabled-no-rtpmap.xml. |
|||||
#1093 | Memory leak of undeleted CVoIPFormatIntfc instances in S60 VAS (thanks Tamàs Solymosi for the report) | nanang | defect | minor | release-1.7 | pjmedia-audiodev |
#1094 | Transmit RTCP keep alive even when the stream is paused (thanks Johan Lantz for the suggestion) | nanang | defect | normal | release-1.7 | pjmedia |
Description |
Ticket #883 added a new keep-alive mechanism for the stream, which would still be performed even when the stream is being paused. Unfortunately, no packet is transmitted on the RTCP port in this situation. This ticket would enable packet transmission for this situation. With this ticket, an RTCP packet would be transmitted periodically as long as PJMEDIA_STREAM_ENABLE_KA is set to non-zero (note that by default it is disabled). |
|||||
#1100 | pjmedia_stream_modify() API | nanang | enhancement | normal | release-2.x | pjmedia |
Description |
to save:
|
|||||
#1102 | Run-time configuration for controlling keep-alive mechanism sent by stream | nanang | enhancement | minor | Known-Issues-and-Ideas | pjmedia |
Description |
Ticket #883 added another keep-alive mechanism to media stream, which has to be selected at compile time. This ticket proposes to add these configuration, and probably other keep-alive mechanisms, into the new run-time configurable settings. The settings would most likely be part of pjmedia_stream_info, and on PJSUA-LIB it will be part of account settings. |
|||||
#1103 | RTCP statistics updates (thanks Roman Puls for the suggestions) | nanang | enhancement | normal | release-1.7 | pjmedia |
Description |
Updates suggested:
|
|||||
#1106 | Audio clipping when stream encoded using IPP G722.1 and decoded using pjmedia G722.1 | nanang | defect | normal | release-1.7 | pjmedia |
Description |
It was very noticeable on music streaming, barely noticeable on speech. The pjmedia G722.1 implementation applies signal adjustment before encoder and after decoder (configurable via PJMEDIA_G7221_DEFAULT_PCM_SHIFT), while IPP's implementation doesn't. |
|||||
#1112 | IPP G.729 codec still generates silence packet when annexb=no (thanks Arie Velthoen for the report and fix) | nanang | defect | normal | release-1.8 | pjmedia |
Description |
When local VAD is enabled but then the remote signals "annexb=no" (no VAD/DTX support) in the SDP, IPP G.729 still generates and sends silence or DTX packets. At first glance, the codec handles "annexb=no" correctly, i.e: the VAD is turned off, however it doesn't update its VAD status to the application, so the application is still assuming that the VAD is active. The problem was examined after the stream module performing NAT hole punching in the beginning of call by disabling and soon re-enabling the VAD. Detail report (and fix) can be found here. |
|||||
#1113 | iPhone: Echo cancellation may not work on iOS using SDK 4.x | nanang | defect | normal | release-1.8 | pjmedia |
Description |
There were a couple of reports saying that echo cancellation works fine using SDK 3.x but doesn't work properly when using SDK 4.x. (on devices running iOS 3.x and 4.x). This ticket investigates whether there is a problem with EC using SDK 4.x, and if possible, finds a way to solve it. Note: using speaker mode is recommended to test the EC. |
|||||
#1114 | Wrong bytes_per_frame in stream port info (thanks Thomas Giesel for the report and fix) | nanang | defect | normal | release-1.8 | pjmedia |
Description |
Currently, the bytes_per_frame in stream port info contains encoded frame size info, regardless if data flow from/to stream (via get_frame()/put_frame()) is encoded or raw data. This may cause problem as any pjmedia ports may use bytes_per_frame info, e.g: resample port uses bytes_per_frame info of down stream port to calculate dynamic buffer size, and lesser buffer size may cause buffer overrun. The original report can be found here. |
|||||
#1115 | iPhone: Long delay when calling AudioConverterNew() causing timeout in acquiring pjsua lock (thanks Bogdan Krakowski the report) | nanang | defect | normal | release-1.8 | pjmedia |
Description |
Call to AudioConverterNew() for the iLBC codec may take long time to complete, causing timeout in acquiring pjsua lock (when doing get call info on incoming call). This happens on iPhone 3GS with iOS 4.0.2 and SDK 4.0. |
|||||
#1126 | Get a working echo cancellation for mobile and embedded systems | nanang | enhancement | normal | release-2.x | pjmedia |
#1129 | Limited run-time configuration for media stream keep-alive (thanks Johan Lantz for the suggestion) | nanang | enhancement | normal | release-1.8.5 | pjmedia |
Description |
Ticket #883 added compile time configuration for selecting keep-alive mechanism of the media streams. Some applications want more flexibility by configuring this at run-time, ideally by making this part of account settings. This ticket will add run-time configuration for activating/deactivating stream keep-alive only (no keep-alive packet type and interval settings). Activating/deactivating stream keep-alive mechanism in run-time
|
|||||
#1133 | Obey remote SDP attribute "ptime" (thanks Eize for the patch) | nanang | enhancement | normal | release-1.8.5 | pjmedia |
Description |
The proposed patch can be found here |
|||||
#1135 | Processing of RTP padding bit (thanks Rafael Maia for the suggestion) | nanang | defect | normal | release-1.8.5 | pjmedia |
Description |
Currently padding bit in incoming RTP packets are ignored, potentially causing incorrect RTP payload processing. Also investigate if the padding bit should be used in outgoing RTP transmission. |
|||||
#1140 | Crash on disconnecting call with SRTP + ICE (thanks Bogdan Krakowski for the report) | nanang | defect | normal | release-1.8.5 | pjmedia |
Description |
Reported that this occurred on "slow CPU" (iPhone 3G) in "heavy CPU load" and barely reproducible. The stack when crashing: 0 0x0018bdb4 auth_get_tag_length (auth.c:64) 1 0x001898dc srtp_unprotect (srtp.c:885) 2 0x00135310 srtp_rtp_cb (transport_srtp.c:864) 3 0x0011ce70 ice_on_rx_data (transport_ice.c:1641) 4 0x0014907c stun_on_rx_data (ice_strans.c:1395) 5 0x001404ac on_data_recvfrom (stun_sock.c:815) 6 0x000f08a0 ioqueue_on_read_complete (activesock.c:573) 7 0x000fb4bc ioqueue_dispatch_read_event (ioqueue_common_abs.c:560) 8 0x000fbb7c pj_ioqueue_poll After investigation, a possible scenario is:
|
|||||
#1148 | Assertion when offering SDP media with port zero but answered with port non-zero | nanang | defect | normal | pjmedia | |
Description |
When SDP media in the offer uses port zero, it means that the media is not wanted and must be answered with port zero as well (RFC 3264 Section 5.1 and 8.2). However, some implementations may disobey it (we found one!), and unfortunately it may lead to assertion in the SDP negotiation process (when there is dynamic payload type involved). Sample SDP offer/answer that trigger assertion:
|
|||||
#1153 | Build problem when telephone events is disabled (thanks Johan Lantz for the report) | nanang | defect | normal | release-1.8.10 | pjmedia |
Description |
Compile errors are something like: pjmedia-codec\types.h(60): 'PJMEDIA_RTP_PT_DYNAMIC' : undeclared identifier pjmedia-codec\types.h(60): expected constant expression Note: telephone events can be disabled by setting PJMEDIA_RTP_PT_TELEPHONE_EVENTS to zero. |
|||||
#1154 | Run-time option to disable telephone-event in outgoing SDP offer (thanks Marcus Froeschl for the suggestion) | nanang | enhancement | minor | release-1.8.10 | pjmedia |
Description |
It has been reported that some operators in Japan have trouble processing this feature, hence a run-time setting to enable/disable this is needed. |
|||||
#1160 | Option to bypass RTP payload type verification in the stream (Johan Lantz) | nanang | enhancement | minor | release-1.8.10 | pjmedia |
Description |
We validate incoming RTP packets to see if they contain correct payload type, as it should. However some people are having problems with broken servers that requires them to disable this checking. |
|||||
#1171 | Setting default codec parameter issues (thanks Arie Velthoen for the report) | nanang | defect | normal | release-1.8.10 | pjmedia |
Description |
The original report can be found here. Issues reported:
|
|||||
#1174 | Fix crash in coreaudio_dev's interruptionListener (iPhone OS) and support for multiple interrupted streams (thanks to Seth Hinze for the patch) | nanang | defect | normal | release-1.10 | pjmedia-audiodev |
Description |
Crash in coreaudio_dev when VoIP call is hung up during an interruption event. This is related to ticket #1172. The fix also adds support if there are more than one active streams that are interrupted. |
|||||
#1179 | SRTCP with HMAC-SHA1 authentication must always use 80 bits tag length | nanang | defect | normal | release-2.x | pjmedia |
Description |
As mentioned in RFC3711 5.2 & RFC4568 6.2. |
|||||
#1180 | Support G726 RTP packetization variants | nanang | enhancement | normal | Known-Issues-and-Ideas | pjmedia |
Description |
There is MIME subtype AAL2-G726-xx for the packetization variants |
|||||
#1182 | vstream (video stream) implementation and sample | nanang | enhancement | normal | release-2.0-dev | pjmedia |
Description |
There is already video stream implementation in the stream.c and sample in the vstreamutil.c, however it's just proof-of-concept version, so the to do/consider list will be:
|
|||||
#1186 | SDP works | nanang | enhancement | normal | release-2.0-dev | pjmedia |
Description |
TODO:
|
|||||
#1188 | Audio breakups after jitter buffer discarding frames (thanks Bogdan Krakowski for the report) | nanang | defect | normal | release-1.10 | pjmedia |
Description |
Audio flood/burst in the beginning of call triggers jitter buffer progressive discard (see ticket #969) to start dropping frames intensively. In the decoding/playing, the dropped frames introduce unaligned signal, so the audio breakups occur. The proposed solution is by replacing the frames next to the dropped/discarded frames with 'empty' frame to trigger PLC invocation in the decoding so the audio signal will be smoother/aligned by the PLC. |
|||||
#1189 | Click noise produced by the jitter buffer when it progressively discard audio frames to improve latency (thanks Bogdan Krakowski for the patch) | nanang | defect | normal | release-1.10 | pjmedia |
Description |
The jitter buffer has an algorithm to discard few frames to improve latency when its contents are exceeding certain limit. This algorithm is called progressive discard and is enabled by default. Unfortunately, this discard operation causes click noise to be produced, since the PCM wave signal of the next frame is no longer aligned with the previous frame. This patch proposes dropping the next frame after the discarded frame, to cause invocation of the PLC, which would produce smoother wave signal than the original algorithm, thereby removing the click noise. |
|||||
#1191 | Support for low latency audio I/O capability on iOS (thanks to Seth Hinze for the patch) | nanang | enhancement | normal | release-1.10 | pjmedia-audiodev |
Description |
On iOS, application can now set the audio I/O latency by using PJMEDIA_AUD_DEV_CAP_INPUT_LATENCY / PJMEDIA_AUD_DEV_CAP_OUTPUT_LATENCY, which can set the latency (via Audio Session's property kAudioSessionProperty_PreferredHardwareIOBufferDuration) to as low as 5 ms. |
|||||
#1192 | Native resampling for recording using AudioConverter on Mac OS (thanks to Seth Hinze for the patch) | nanang | enhancement | normal | release-1.10 | pjmedia-audiodev |
Description |
coreaudio_dev now supports recording using a different sample rate than the hardware's sample rate by using Audio Converter for sample rate conversion. |
|||||
#1194 | iPhone: Fix problems with echo cancellation and Bluetooth input (SDK 4.x) | nanang | defect | normal | release-1.10 | pjmedia-audiodev |
Description |
When compiling using iOS SDK 4.x, the echo cancellation and support for Bluetooth input do not work properly. This is related to ticket #1113. |
|||||
#1195 | Mac OS X: Fix assertion during thread registration in audio input/output callbacks | nanang | defect | normal | release-1.10 | pjmedia-audiodev |
Description |
On Mac OS X 10.6, when audio input/output callback thread is changed (such as when plugging/unplugging headphone), the input/output callback will trigger an assertion when calling pj_thread_register(). |
|||||
#1196 | Using default audio input/output devices in coreaudio backend on Mac OS X. | nanang | enhancement | normal | release-1.10 | pjmedia-audiodev |
Description |
Currently, coreaudio backend will use the first input/output audio device as the default. It is more preferable if we can use the system's default input/output audio device instead. |
|||||
#1199 | Support G722 with 10ms packet length (thanks Erik Waling for the report) | nanang | enhancement | normal | release-1.10 | pjmedia |
Description |
There is G722 implementation that uses 10ms packet length. As currently the pjmedia G722 wrapper expects G722 packet length to be (multiple of) 20ms, the incoming 10ms G722 packets cannot be parsed properly, which leads to:
|
|||||
#1200 | Support IPP version 7.0 | nanang | enhancement | normal | release-1.10 | pjmedia |
#1204 | Support for refreshing audio device list (thanks to Seth Hinze for the patch) | nanang | enhancement | normal | release-1.10 | pjmedia-audiodev |
Description |
This feature adds support for pjmedia to refresh its audio device list, thereby allowing application to use/stop using audio devices that are plugged/unplugged when the application is running. Application would still need to do its own implementation to detect audio devices plug/unplug event. Then it can call the function pjmedia_aud_dev_refresh(). Note that this feature is not implemented on PortAudio, legacy, and all Symbian sound backends. |
|||||
#1206 | Add pjmedia_stream API to get the last frame type retrieved from the jitter buffer. | nanang | enhancement | normal | release-1.10 | pjmedia |
Description |
Add an API for pjmedia_stream to get the last frame type retrieved from the jitter buffer. |
|||||
#1207 | Deprecation of <pjmedia/session.h> | nanang | enhancement | normal | release-2.0-dev | pjmedia |
Description |
The use of pjmedia_session in <pjmedia/session.h> is now deprecated. Application should directly create the audio and video streams instead. The pjmedia_session will continue to exist but this will only support audio session. Applications that use pjmedia_session would still expected to work, but you should change it as soon as possible. |
|||||
#1210 | Misc coreaudio fixes for iPhone OS (setting Audio Session category in stream creation and after interruption) | nanang | enhancement | normal | release-1.10 | pjmedia |
Description |
|
|||||
#1213 | Work on video devices | nanang | enhancement | normal | release-2.0-dev | pjmedia |
Description |
This is placeholder ticket for all works related to video devices. |
|||||
#1215 | FRAMEWORK | nanang | enhancement | normal | release-2.0-dev | pjmedia |
Description |
Work on the framework.. |
|||||
#1227 | Support for Intel IPP7 | nanang | enhancement | normal | release-2.0-dev | pjmedia |
Description |
Backport of ticket #1200 to the 2.0-dev branch. |
|||||
#1233 | Wrong SDP media transport parsed when the media line has no format | nanang | defect | normal | release-1.10 | pjmedia |
Description |
There are some implementations that put no format list on disabled/rejected media, e.g: m=audio 0 RTP/AVP m=audio 2000 RTP/AVP 0 The SDP parser will return RTP/AVP\nm=audio for the transport of the first SDP media. |
|||||
#1234 | Missing video keyframe | nanang | defect | normal | release-2.0-beta | pjmedia |
Description |
Missing keyframe is a major and common issue in real-time video session. Packet lost or discarding packets by jitter buffer (opening video devs may take few seconds) in the beginning of video session could be the main cause. We experienced this problem a lot in sipit! When using H.264, missing keyframe causes pjsua got no video (decoding failure), sometime video could be successfully decoded after call hold and resume. When using H.263, initial video came foggy (only the moving object part had clear view, background/other part was gray). Solutions/ideas:
Note:
|
|||||
#1236 | Video payload type issues (mostly for H.264) | nanang | defect | normal | Known-Issues-and-Ideas | pjmedia |
Description |
Known cases:
|
|||||
#1237 | Incoming SDP reoffer containing secured and unsecured media gets rejected in SRTP mandatory mode | nanang | defect | normal | release-2.0-dev | pjmedia |
Description |
Scenario:
It should not be rejected as the first media in the reoffer is actually acceptable. |
|||||
#1239 | Missing H264 "max-fs" SDP parameter caused call to be rejected | nanang | defect | minor | release-2.x | pjmedia |
Description |
Polycom DMA rejects our video offer because it's missing "max-fs" H264 parameter. They need it to calculate bandwidth needed. See also #1244 |
|||||
#1243 | ICE bug: If RTCP is not in use, the agent MUST signal that using b=RS:0 and b=RR:0 | nanang | defect | normal | release-1.10 | pjmedia |
Description |
According to RFC 5245: If RTCP is not in use, the agent MUST signal that using b=RS:0 and b=RR:0 attributes as defined in RFC 3556. |
|||||
#1244 | How to set bandwidth | nanang | defect | minor | release-2.0-rc | pjmedia |
Description |
API to set bandwidth. Also related to #1239, bandwidth attribute is needed by some servers in order to let video calls through. Ref: Avaya |
|||||
#1249 | Memory corruption bug in splitcomb (thanks Peter Lukac for the report and the fix) | nanang | defect | normal | release-1.10 | pjmedia |
Description |
When splitcomb's put_frame() is called with frame type NONE, it will generate zero-frame for its reversed channels, if any. The bug was in this zero-frame generation, i.e: bzero'd one-channel-size buffer with multichannel-size length. Original report can be found here. |
|||||
#1251 | Calling pjmedia_aud_subsys_shutdown() more than once may cause crash (thanks Bill Gardner for the patch) | nanang | defect | normal | release-1.12 | pjmedia-audiodev |
Description |
The API specification says that application may call pjmedia_aud_subsys_shutdown() more than once, as long as the number matches the number of times pjmedia_aud_subsys_init() is called. However doing so will lead to a crash in the second call to the function. |
|||||
#1257 | Option for using simple FIFO delay buffer in echo canceller | nanang | enhancement | normal | release-1.12 | pjmedia |
Description |
By default, echo canceller's delay buffer will make use of WSOLA to expand and shrink audio samples. By setting the option flag in pjsua_set_ec() to contain PJMEDIA_ECHO_USE_SIMPLE_FIFO, application can use simple FIFO mechanism instead. |
|||||
#1258 | Divide by zero exception in jitter buffer with prefetching mechanism enabled (thanks Roman Puls for the report) | nanang | defect | normal | release-1.12 | pjmedia |
Description |
There is bug in jb prefetching mechanism, the prefetch condition may cause unexpected JB state switches that will disturb burst level calculation, i.e: when JB empty condition occurs in initializing state, the state will be immediately switched to prefetching, and after the prefetch processing done, the state will be directly set to processing (instead of initializing). The expected behaviour is that JB state switch from initializing to processing is only done by jb_update(). This causes the following division by zero exception: Program received signal SIGFPE, Arithmetic exception. [Switching to Thread 0xb73a5b90 (LWP 7148)] 0x08184372 in pjmedia_jbuf_put_frame2 (jb=0x8323cf8, frame=0x826f86c, frame_size=80, bit_info=0, frame_seq=21, discarded=0xb73a502c) at ../src/pjmedia/jbuf.c:763 763 burst_factor = cur_size / burst_level; (gdb) |
|||||
#1263 | Video API for PJSUA-LIB | nanang | task | major | release-2.0-alpha | pjsua-lib |
Description |
PJSUA-LIB video API specification: 1. Video Device Enumeration APISpecifications:
2. Video Call APISpecifications:
Notes:
3. Video Capture Preview APISpecifications:
4. Media Info and Statistic APIThe new API can be used for both audio and video. Specifications:
5. Notification APINothing special for video. Update in media status is reported in on_media_state() callback as usual. Application may use media status API to query about video status. |
|||||
#1268 | Option for automatic/manual sending of RTCP SDES/BYE for the stream. | nanang | enhancement | normal | release-1.12 | pjmedia |
Description |
By default, RTCP SDES/BYE is automatically sent by the stream. By setting the field pjmedia_stream_info.rtcp_sdes_bye_disabled to PJ_TRUE, application can choose to manually send RTCP SDES/BYE by using the API pjmedia_stream_send_rtcp_sdes() and pjmedia_stream_send_rtcp_bye(). |
|||||
#1270 | Native libx264 encoder | nanang | enhancement | minor | release-2.0-beta | pjmedia |
#1273 | WMME-dev extended format not yet ported | nanang | task | normal | release-2.0-beta | pjmedia-audiodev |
#1279 | Create fmt_match_cb() for g7221 & amr-nb/wb, and remove the hardcoded ones in sdp_neg.c | nanang | enhancement | minor | release-2.0-beta | pjmedia |
#1280 | Videoport only buffers 1 frame | nanang | defect | minor | release-2.x | pjmedia |
#1283 | Hardcoded format list in some video components (e.g: AVI reader, QT dev, etc) | nanang | defect | minor | release-2.x | pjmedia |
Description |
Hardcoded format list in the above components, which may not reflect the actual capability of the component. |
|||||
#1290 | Timestamp in media flow | nanang | enhancement | minor | release-2.x | pjmedia |
Description |
Rules about who should generate the timestamp is not clear. There may also be places where timestamp information is regenerated. |
|||||
#1294 | New pjmedia_codec_register_audio_codecs() API | nanang | enhancement | normal | release-2.0-alpha | pjmedia |
Description |
New API to register all known codecs that are implemented in PJMEDIA-CODEC, and to automatically deregister them on shutdown: /* file <pjmedia-codec/audio_codecs.h> */ /** * Codec configuration. Call #pjmedia_audio_codec_config_default() to initialize * this structure with the default values. */ typedef struct pjmedia_audio_codec_config { /** Speex codec settings. See #pjmedia_codec_speex_init() for more info */ struct { unsigned option; /**< Bitmask of options. */ unsigned quality; /**< Codec quality. */ unsigned complexity; /**< Codec complexity. */ } speex; /** iLBC settings */ struct { unsigned mode; /**< iLBC mode. */ } ilbc; /** Passthrough */ struct { pjmedia_codec_passthrough_setting setting; /**< Passthrough */ } passthrough; } pjmedia_audio_codec_config; /** * Initialize pjmedia_audio_codec_config structure with default values. * * @param cfg The codec config to be initialized. */ PJ_DECL(void) pjmedia_audio_codec_config_default(pjmedia_audio_codec_config *cfg); /** * Register all known audio codecs implemented in PJMEDA-CODEC library to the * specified media endpoint. * * @param endpt The media endpoint. * @param c Optional codec configuration, or NULL to use default * values. * * @return PJ_SUCCESS on success or the appropriate error code. */ PJ_DECL(pj_status_t) pjmedia_codec_register_audio_codecs(pjmedia_endpt *endpt, const pjmedia_audio_codec_config *c); Note to codec writers: A new mandatory destroy callback has been added to factory operation. You must implement this callback (hint: just point it to your existing function that deinitialize your codec factory). Note to app writers: You don't need to initialize each codec now, just use pjmedia_codec_register_audio_codecs() above. Similarly you should remove all the calls to codec deinitialization routines since that will be done automatically when the media endpoint is destroyed (leaving these calls as they are is harmless though; they will render to no-ops). |
|||||
#1295 | pjmedia_codec_encode() instead of codec->encode | nanang | enhancement | minor | release-2.0-alpha | pjmedia |
Description |
A thin wrapper for codec operations to make the API slightly cleaner. |
|||||
#1297 | Dynamic payload type allocation | nanang | enhancement | minor | release-2.10 | pjmedia |
Description |
It's probably more useful for audio codecs since we're running out of dynamic payload type constants. Also, allowing application to customize codec PT allocation will be nice. |
|||||
#1300 | Symmetric payload type in generating SDP answer | nanang | enhancement | normal | release-2.0-beta | pjmedia |
Description |
Answerer SHOULD use matching payload type as the offer:
Note:
|
|||||
#1301 | Wrong alaw value is generated by the non-table version of pjmedia_linear2alaw() function for some specific PCM values (thanks K. Johnson for the fix) | nanang | defect | normal | release-1.12 | pjmedia |
Description |
When the PCM signal is in the rage -7 to -1 inclusive, wrong alaw value will be generated by the non-table version of pjmedia_linear2alaw() function. Note that the table version of the function, which is the default implementation used by pjmedia, is not affected by this bug. |
|||||
#1307 | AMR with VAD turned on causes loud noise | nanang | defect | normal | release-1.12 | pjmedia |
Description |
Symptoms:
After investigation, we found some bugs related to AMR SID/NO_DATA frame packetization:
|
|||||
#1315 | Output volume setting not applied in Symbian VAS audio device creation | nanang | defect | normal | release-1.12 | pjmedia-audiodev |
Description |
Found that setting the output volume when the VAS engine hasn't been completely started will be useless (no output volume change). |
|||||
#1325 | Signature for pjmedia objects | nanang | enhancement | normal | release-2.0-alpha | pjmedia |
Description |
PJMEDIA object will be given object signature. This is needed for the event framework so that application can at least distinguish the sender of the event. |
|||||
#1326 | Code integration to svn trunk! | nanang | task | normal | release-2.0-alpha | common |
#1327 | Simple GUI for video API testing | nanang | enhancement | major | release-2.0-alpha | applications |
Description |
Develop a really simple GUI app as proof of concept that the video API works |
|||||
#1332 | Design: review the window API vs window handle passing | nanang | task | major | release-2.0-alpha | pjmedia-videodev |
Description |
Review the current videodev API to manage window (resize, move, hide, etc.) against window handle passing approach. Use the simple GUI app (#1327) for testing. |
|||||
#1333 | Design: review the video preview API | nanang | defect | normal | release-2.0-beta | pjmedia-videodev |
Description |
Currently, preview API only exists in PJSUA-LIB, and it is done by creating a rendering device, videoport, and vide tee to move the frames from the capture to render device. As it turns out, the capture device on iOS has the capability to create preview layer natively, hence there is no need to create a rendering device and feed the frames manually. While the current PJSUA-LIB API is still able to accommodate this, it may be cleaner to implement this on pjmedia-videodev layer. The alternative solution for current API is something like this:
|
|||||
#1335 | Fixes assertion when interruptionListener is called from an unregistered thread on iPhone OS (thanks to Ilya Kalinin for the patch) | nanang | defect | normal | release-1.12 | pjmedia-audiodev |
#1345 | Assertion in codec operations caused by too small supplied buffer size. | nanang | defect | normal | release-2.0-alpha | pjmedia |
Description |
This is caused by a bug in samples-per-frame calculation PJMEDIA_SPF(). So applications that use PJMEDIA_SPF() for allocating buffer will get "too small buffer size" error or assertion from codec. |
|||||
#1355 | vidgui: new rendering window may cause all rendering processes to stop | nanang | defect | normal | release-2.0-rc | applications |
Description |
When a new render window (either preview or stream) is created and currently another render window is active, sometime both rendering processes got stuck. After manually resizing main window, all rendering processes continue normally. The problem only occurred on Windows, Mac is unaffected. |
|||||
#1358 | Crash in event handling in pjsua-lib | nanang | defect | normal | release-2.0-alpha2 | pjsua-lib |
Description |
Crash on receiving UPDATE or re-INVITE. |
|||||
#1360 | Video orientation support | nanang | defect | normal | release-2.0-alpha2 | pjmedia |
Description |
Background
Objective
Notes
Ideas
Issues
SpecificationBased on the background above, the following API will be implemented by this ticket:
|
|||||
#1365 | Volume setting not applied in Symbian MDA audio device creation | nanang | defect | normal | release-1.12 | pjmedia-audiodev |
#1366 | More clever RTP transport remote address switch | nanang | enhancement | normal | release-1.12 | pjmedia |
Description |
Currently the UDP and ICE media transport has the capability to switch destination RTP/RTCP address to the source address of the RTP/RTCP packets, if they are different than the original address set in SDP received from remote. The problem is audio playback is broken if more than one remotes are transmitting to us simultaneously, e.g. on early media forking scenario. This ticket modifies the behavior so that the transmission won't switch as long as we're receiving RTP/RTCP packets from the "correct" remote address. Also when the remote peer address is still in probation, RTP/RTCP packets from that address will be silently discarded, to avoid playback confusion. Note that there is a more ambitious proposal in #865. |
|||||
#1378 | Change jitter buffer progressive discard algorithm | nanang | defect | normal | release-1.12 | pjmedia |
Description |
Issues with current algorithm:
|
|||||
#1381 | Allow omitting SDP format parameter in video codec | nanang | enhancement | normal | release-2.0-alpha2 | pjmedia |
Description |
Video codec framework employs SDP fmtp attribute for specifying codec specific parameters, e.g: MPI in H263, profile-level in H264. When SDP fmtp is not supplied, the codec will apply default values and this may override the 'standard' video parameters, such as size and frame rate, specified in pjmedia_format. While application may want to specify the 'standard' video parameters only (no SDP fmtp) and don't want them overridden by default values because of empty/unsupplied SDP fmtp. |
|||||
#1385 | Bug in SDP negotiation when generating answer with prefer_remote_codec==0 (thanks Régis Montoy for the report) | nanang | defect | normal | release-1.12 | pjmedia |
Description |
Sample cases:
The original report can be found here. |
|||||
#1388 | Support for OpenCORE AMR-NB codec (thank you Dan Arrhenius for the contribution!) | nanang | enhancement | normal | release-1.12 | pjmedia |
Description |
The updated OpenCORE AMR instructions are in Using OpenCORE AMR NB and WB Codecs |
|||||
#1390 | Reenable H264 with the lattest ffmpeg | nanang | enhancement | normal | release-2.0-beta | pjmedia |
Description |
Previously, we have problem to configure libx264, the ffmpeg h264 encoder backend, for realtime streaming, some libx264 settings are not really configurable from ffmpeg, e.g: h264 profile, NAL unit max size. With the latest ffmpeg (from git/development, not released yet), app can configure all libx264 settings almost natively (same option names and raw libx264 option). |
|||||
#1392 | Immediately decode incoming frames to avoid loosing key frames when the jbuf is full and improve latency | nanang | enhancement | normal | release-2.0-beta | pjmedia |
Description |
Image decoding is now done in on_rx_rtp() callback by the network thread as soon as full image is available in the jitter buffer. The default behavior is to only decode one image and suspend further decoding until this image is consumed by get_frame(). The decoding can be made more aggressive by setting PJMEDIA_VID_STREAM_SKIP_PACKETS_TO_REDUCE_LATENCY to non-zero, and in this case the stream will always decode any available images in the jitter buffer regardless whether it will overwrite previously decoded image or not. This will notably improve latency, but if the network is too bursty several images may be skipped causing reduced fps playback and non-smooth video playback. |
|||||
#1394 | Concurrency problem when stopping clock thread | nanang | defect | normal | release-2.0-beta | pjmedia |
Description |
There is a synchronization/concurrency problem when stopping clock thread, namely the stop() function doesn't wait until the process in the clock callback completes. This causes problem for the user of the clock if it assumes that processing will complete when the clock is stopped. |
|||||
#1404 | Assertion in receiving SDP video offer containing static payload type | nanang | defect | normal | release-2.0-beta | pjmedia |
Description |
Example: m=video 55894 RTP/AVP 31 123 a=rtpmap:123 H264/90000 a=fmtp:123 profile-level-id=42801f;packetization-mode=0;level-asymmetry-allowed=1 |
|||||
#1410 | Assertion and noise when using AMR-WB with multiple frames per packet (thanks Olle Frimanson for the report) | nanang | defect | normal | release-1.12 | pjmedia |
Description |
Assertion line: amr_helper.h:922: pjmedia_codec_amr_pack: Assertion `FT <= SID_FT || FT == 14 || FT == 15' failed. After investigation, a fatal bug is found in ipp_codecs.c pack_amr() in setting up AMR-WB frame size, i.e: using AMR-NB frame size table instead of AMR-WB's. This will cause wrong AMR-WB data pointers returned by the encoder (only the first frame gets the correct pointer) and the RTP payload generated (by AMR packetizer) will contain corrupted bitstream. So even if assertion is not raised, e.g: release mode or accidentally packetizer always read valid frame types in the wrong data pointer, this will definitely cause noise. Note that in single frame per packet this issue is never raised as the first frame pointer always points to correct AMR bistream and the AMR packetizer doesn't really read the frame size info supplied by encoder (it uses AMR frame size lookup table instead). |
|||||
#1413 | G722.1 cannot encode multiple frames per packet (thanks Olle Frimanson for the report) | nanang | defect | normal | release-1.12 | pjmedia |
#1420 | Event manager | nanang | enhancement | normal | release-2.0-beta | pjmedia |
Description |
Add support for creating an event manager that will accept subscription/unsubscription and event publication. Application has two options when using the event publication API, it can directly distribute the events to the manager's subscribers or ask the event manager to do the distribution using worker thread instead. |
|||||
#1421 | Audio is missing temporarily if SRTP is enabled due to lock codec feature (thanks Marcus Froeschl for the report) | nanang | defect | normal | release-1.14 | pjmedia |
Description |
Audio may be missing in both directions after call is resumed from hold state, if SRTP is being used and callee answers with multiple codecs, causing us to send re-INVITE/UPDATE to lock to one codec. |
|||||
#1422 | Option to configure or disable RTCP RTT normalization (thanks Lars Helgeson for the patch) | nanang | enhancement | normal | release-1.14 | pjmedia |
Description |
The RTCP RTT calculation algorithm attempts to normalize "unusual" RTT variation, by setting the RTT to three times the current average RTT if the value is larger than this. This ticket makes this behavior configurable by introducing PJMEDIA_RTCP_NORMALIZE FACTOR, which defaults to 3 and can be disabled by setting it to 0. |
|||||
#1437 | Video keyframe request/response using RTCP feedback Picture Loss Indication | nanang | enhancement | normal | release-2.10 | pjmedia |
Description |
This ticket is the continuation of #1234 (missing video keyframe handling) with focus on RTCP-FB PLI for requesting video keyframe. In PJSUA, this feature is by default enabled and configurable via call setting, i.e: pjsua_call_setting.req_keyframe_method with bitflag PJSUA_VID_REQ_KEYFRAME_RTCP_PLI. When enabled, it will be signaled in SDP offer/answer, which will look like this: a=rtcp-fb:* nack pli Application can also monitor incoming RTCP-FB PLI packet via PJSUA callback on_call_media_event() for event PJMEDIA_EVENT_RX_RTCP_FB. This ticket also introduces some macro settings:
|