Changeset 2641:80c7f8cb3dbd in roaraudio
- Timestamp:
- 09/12/09 02:04:36 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroardsp/vio_transcode.c
r2639 r2641 25 25 #include "libroardsp.h" 26 26 27 int roar_vio_open_xcode (struct roar_vio_calls * calls, int encoder, struct roar_audio_info * info, 28 struct roar_vio_calls * dst) { 29 struct roar_xcoder * xcoder = malloc(sizeof(struct roar_xcoder)); 30 31 if ( xcoder == NULL ) 32 return -1; 33 34 if ( calls == NULL || info == NULL || dst == NULL ) { 35 free(xcoder); 36 return -1; 37 } 38 39 if ( roar_xcoder_init(xcoder, encoder, info, dst) == -1 ) { 40 free(xcoder); 41 return -1; 42 } 43 44 memset(calls, 0, sizeof(struct roar_vio_calls)); 45 46 calls->inst = (void*)xcoder; 47 48 calls->close = roar_vio_xcode_close; 49 50 if ( encoder ) { 51 calls->write = roar_vio_xcode_proc; 52 } else { 53 calls->read = roar_vio_xcode_proc; 54 } 55 56 return 0; 57 } 58 59 ssize_t roar_vio_xcode_proc (struct roar_vio_calls * vio, void *buf, size_t count) { 60 if ( vio == NULL ) 61 return -1; 62 63 if ( buf == NULL && count != 0 ) 64 return -1; 65 66 return roar_xcoder_proc(vio->inst, buf, count); 67 } 68 69 off_t roar_vio_xcode_lseek (struct roar_vio_calls * vio, off_t offset, int whence); 70 int roar_vio_xcode_nonblock(struct roar_vio_calls * vio, int state); 71 int roar_vio_xcode_sync (struct roar_vio_calls * vio); 72 int roar_vio_xcode_ctl (struct roar_vio_calls * vio, int cmd, void * data); 73 74 int roar_vio_xcode_close (struct roar_vio_calls * vio) { 75 int ret = 0; 76 77 if ( vio == NULL ) 78 return -1; 79 80 if ( roar_xcoder_close(vio->inst) == -1 ) 81 ret = -1; 82 83 if ( vio->inst != NULL ) 84 free(vio->inst); 85 86 return ret; 87 } 88 89 int roar_vio_open_bixcode (struct roar_vio_calls * calls, struct roar_audio_info * info, 90 struct roar_vio_calls * dst); 91 ssize_t roar_vio_bixcode_read (struct roar_vio_calls * vio, void *buf, size_t count); 92 ssize_t roar_vio_bixcode_write (struct roar_vio_calls * vio, void *buf, size_t count); 93 off_t roar_vio_bixcode_lseek (struct roar_vio_calls * vio, off_t offset, int whence); 94 int roar_vio_bixcode_nonblock(struct roar_vio_calls * vio, int state); 95 int roar_vio_bixcode_sync (struct roar_vio_calls * vio); 96 int roar_vio_bixcode_ctl (struct roar_vio_calls * vio, int cmd, void * data); 97 int roar_vio_bixcode_close (struct roar_vio_calls * vio); 27 98 28 99 //ll
Note: See TracChangeset
for help on using the changeset viewer.