void *codec_worker_thread(void *opaque)
{
SVCodecState *s = (SVCodecState *)opaque;
- QemuThread thread;
+ QemuThread thread;
AVCodecContext *avctx;
TRACE("Enter, %s\n", __func__);
qemu_cond_wait(&s->codec_thread.cond, &s->thread_mutex);
qemu_thread_get_self(&thread);
+#ifdef CONFIG_LINUX
TRACE("wake up a worker thread. :%x\n", thread.thread);
+#endif
avctx = s->codec_ctx[s->codec_param.ctx_index].avctx;
if (avctx) {
if (avctx->codec->decode) {
case CODEC_CMD_SET_DEVICE_MEM:
qemu_mutex_lock(&s->thread_mutex);
s->device_mem_avail = value;
- printf("set device_mem: %d\n", value);
qemu_mutex_unlock(&s->thread_mutex);
break;
case CODEC_CMD_SET_MMAP_OFFSET:
- printf("set mem index: %d\n", value);
s->codec_param.mem_index = value;
break;
default:
return 0;
}
-static int codec_exitfn(PCIDevice *dev)
+static void codec_exitfn(PCIDevice *dev)
{
SVCodecState *s = DO_UPCAST(SVCodecState, dev, dev);
INFO("[%s] device exit\n", __func__);
memory_region_destroy(&s->vram);
memory_region_destroy(&s->mmio);
- return 0;
}
int codec_init(PCIBus *bus)
void qemu_parser_init(SVCodecState *s, int ctx_index);
void qemu_codec_close(SVCodecState *s, uint32_t value);
void qemu_get_codec_ver(SVCodecState *s);
+void qemu_reset_codec_info(SVCodecState *s, uint32_t value);
/*
* FFMPEG Functions