rem: printf("_CreateReader enter\n");
add: TRACE("_CreateReader enter\n");
context: _CreateReader(Reader **reader, int32 *streamCount, media_file_format *mff, BDataIO *source){	printf("_CreateReader enter\n");	BPositionIO *seekable_source = dynamic_cast<BPositionIO *>(source);	if (seekable_source == 0) {		printf("_CreateReader: non-seekable sources not supported yet\n");		return B_ERROR;	}	// get list of available readers from, the server	server_get_readers_request request;	server_get_readers_reply reply;	if (B_OK != QueryServer(SERVER_GET_READERS, &request, sizeof(request), &reply, sizeof(reply))) {		printf("_CreateReader: can't get list of readers\n");		return B_ERROR;	}	// try each reader by calling it's Sniff function...	for (int32 i = 0; i < reply.count; i++) {		entry_ref ref = reply.ref[i];		MediaPlugin *plugin = _plugin_manager.GetPlugin(ref);		if (!plugin) {			printf("_CreateReader: GetPlugin failed\n");			return B_ERROR;		}		ReaderPlugin *readerPlugin = dynamic_cast<ReaderPlugin *>(plugin);		if (!readerPlugin) {			printf("_CreateReader: dynamic_cast failed\n");			return B_ERROR;		}		*reader = readerPlugin->NewReader();		if (! *reader) {			printf("_CreateReader: NewReader failed\n");			return B_ERROR;		}		seekable_source->Seek(0, SEEK_SET);		(*reader)->Setup(seekable_source);		if (B_OK == (*reader)->Sniff(streamCount)) {			printf("_CreateReader: Sniff success (%ld stream(s))\n", *streamCount);			(*reader)->GetFileFormatInfo(mff);			return B_OK;		}		// _DestroyReader(*reader);		delete *reader;		_plugin_manager.PutPlugin(plugin);	}	printf("_CreateReader leave\n");	return B_MEDIA_NO_HANDLER;}