Changeset 193
- Timestamp:
- 11/27/07 12:49:12
(9 months ago)
- Author:
- sip
- Message:
Static frame allocation.
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r192 |
r193 |
|
| 126 | 126 | unsigned char buffer[1500]; |
|---|
| 127 | 127 | unsigned int bufferLength; |
|---|
| | 128 | unsigned char frame[sizeof(struct ast_frame) + AST_FRIENDLY_OFFSET + 1500]; |
|---|
| 128 | 129 | }; |
|---|
| 129 | 130 | |
|---|
| … | … | |
| 142 | 143 | unsigned int framelength = FrameGetLength(frame); |
|---|
| 143 | 144 | |
|---|
| | 145 | /* Get frame */ |
|---|
| | 146 | send = (struct ast_frame *) vt->frame;; |
|---|
| | 147 | |
|---|
| | 148 | /* Clear */ |
|---|
| | 149 | memset(send,0,sizeof(struct ast_frame) + AST_FRIENDLY_OFFSET + 1500); |
|---|
| | 150 | |
|---|
| | 151 | /* Set data */ |
|---|
| | 152 | send->data = (unsigned char*)send + AST_FRIENDLY_OFFSET; |
|---|
| | 153 | data = send->data; |
|---|
| | 154 | |
|---|
| 144 | 155 | /* Depending on the type */ |
|---|
| 145 | 156 | switch(FrameGetType(frame)) |
|---|
| … | … | |
| 168 | 179 | return NULL; |
|---|
| 169 | 180 | |
|---|
| 170 | | /* Create frame */ |
|---|
| 171 | | send = (struct ast_frame *) malloc(sizeof(struct ast_frame) + AST_FRIENDLY_OFFSET + framelength + 3); |
|---|
| 172 | | /* Set data*/ |
|---|
| 173 | | send->data = (void*)send + AST_FRIENDLY_OFFSET; |
|---|
| | 181 | /* Set data len*/ |
|---|
| 174 | 182 | send->datalen = framelength + 1; /* +1 because the the octet with the CMR */ |
|---|
| 175 | | data = send->data; |
|---|
| | 183 | |
|---|
| 176 | 184 | /* Set header cmr */ |
|---|
| 177 | 185 | data[0] = 0xF0; |
|---|
| … | … | |
| 211 | 219 | send->delivery.tv_usec = 0; |
|---|
| 212 | 220 | send->delivery.tv_sec = 0; |
|---|
| 213 | | send->mallocd = AST_MALLOCD_HDR; |
|---|
| | 221 | /* Don't free */ |
|---|
| | 222 | send->mallocd = 0; |
|---|
| 214 | 223 | /* Send */ |
|---|
| 215 | 224 | return send; |
|---|
| … | … | |
| 254 | 263 | mark = 0; |
|---|
| 255 | 264 | } |
|---|
| 256 | | |
|---|
| 257 | | /* Create frame */ |
|---|
| 258 | | send = (struct ast_frame *) malloc(sizeof(struct ast_frame) + AST_FRIENDLY_OFFSET + 2 + len); |
|---|
| 259 | | |
|---|
| 260 | | /* Set data*/ |
|---|
| 261 | | send->data = (unsigned char*)send + AST_FRIENDLY_OFFSET; |
|---|
| 262 | | data = send->data; |
|---|
| 263 | 265 | |
|---|
| 264 | 266 | /* if its first pcaket of a frame */ |
|---|
| … | … | |
| 324 | 326 | send->delivery.tv_usec = 0; |
|---|
| 325 | 327 | send->delivery.tv_sec = 0; |
|---|
| 326 | | send->mallocd = AST_MALLOCD_HDR; |
|---|
| | 328 | /* Don't free */ |
|---|
| | 329 | send->mallocd = 0; |
|---|
| 327 | 330 | |
|---|
| 328 | 331 | /* If the next packet is from a different frame */ |
|---|
| … | … | |
| 782 | 785 | ast_write(pseudo,send); |
|---|
| 783 | 786 | /* Free frame */ |
|---|
| 784 | | ast_frfree(send); |
|---|
| | 787 | free(send); |
|---|
| 785 | 788 | } |
|---|
| 786 | 789 | /* Delete frame */ |
|---|
Download in other formats:
|
|