Changeset 1040:4d32270e0139 in roaraudio for roard/meta.c
- Timestamp:
- 12/23/08 07:08:04 (15 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/meta.c
r1038 r1040 165 165 166 166 int stream_meta_finalize(int id) { 167 register int dir; 168 register int co, ci, i; 169 struct roar_stream_server * s; 170 171 if ( streams_get_flag(id, ROAR_FLAG_META) != 1 ) // ignore non meta streams 172 return 0; 173 174 dir = ROAR_STREAM(g_streams[id])->dir; 175 176 if ( dir != ROAR_DIR_PLAY && dir != ROAR_DIR_META && // ignore on non input streams 177 dir != ROAR_DIR_FILTER && dir != ROAR_DIR_BIDIR ) 178 return 0; 179 180 ROAR_DBG("stream_meta_finalize(id=%i) = ?", id); 181 182 for (co = 0; co < ROAR_STREAMS_MAX; co++) { 183 if ( g_streams[co] == NULL ) 184 continue; 185 186 dir = ROAR_STREAM(g_streams[co])->dir; 187 188 if ( dir != ROAR_DIR_MONITOR && dir != ROAR_DIR_FILTER && 189 dir != ROAR_DIR_META && dir != ROAR_DIR_BIDIR && 190 dir != ROAR_DIR_OUTPUT ) 191 continue; 192 193 if ( streams_get_flag(co, ROAR_FLAG_META) != 1 ) 194 continue; 195 196 ROAR_DBG("stream_meta_finalize(id=%i): found output stream: id=%i", id, co); 197 stream_meta_clear(co); 198 199 for (ci = 0; ci < ROAR_STREAMS_MAX; ci++) { 200 if ( g_streams[ci] == NULL ) 201 continue; 202 203 dir = ROAR_STREAM(g_streams[ci])->dir; 204 205 if ( dir != ROAR_DIR_PLAY && dir != ROAR_DIR_META && 206 dir != ROAR_DIR_FILTER && dir != ROAR_DIR_BIDIR ) 207 continue; 208 209 if ( streams_get_flag(ci, ROAR_FLAG_META) != 1 ) 210 continue; 211 212 ROAR_DBG("stream_meta_finalize(id=%i): found input stream: id=%i", id, ci); 213 214 // ok, next we copy the date of ci to co: 215 s = g_streams[ci]; 216 217 for (i = 0; i < ROAR_META_MAX_PER_STREAM; i++) { 218 if ( s->meta[i].type == ROAR_META_TYPE_NONE ) 219 continue; 220 221 ROAR_DBG("stream_meta_finalize(id=%i): found meta data, copy: %i->%i", id, ci, co); 222 stream_meta_add(co, s->meta[i].type, s->meta[i].key, s->meta[i].value); // ignore errors 223 } 224 } 225 } 226 167 227 return 0; 168 228 }
Note: See TracChangeset
for help on using the changeset viewer.