1 #include <media_codec_util.h>
3 void *mc_aligned_malloc(int size, int alignment)
8 if((tmp = (unsigned char *)malloc(size + alignment)) != NULL)
10 pMem = (unsigned char*)((unsigned int)(tmp + alignment - 1) & (~(unsigned int)(alignment -1)));
15 *(pMem - 1) = (unsigned int)(pMem - tmp);
17 return ((void*) pMem);
22 void mc_aligned_free(void *mem)
35 mc_sem_t *mc_sem_new()
38 sem = g_new(mc_sem_t, 1);
39 //sem->cond = g_cond_new();
40 g_cond_init(&sem->cond);
41 //sem->mutex = g_mutex_new();
42 g_mutex_init(&sem->mutex);
48 void mc_sem_free(mc_sem_t *sem)
50 //g_cond_free(sem->cond);
51 g_cond_clear(&sem->cond);
52 //g_mutex_free(sem->mutex);
53 g_mutex_clear(&sem->mutex);
57 void mc_sem_down(mc_sem_t *sem)
59 g_mutex_lock(&sem->mutex);
61 while(sem->counter == 0)
62 g_cond_wait(&sem->cond, &sem->mutex);
65 g_mutex_unlock(&sem->mutex);
68 void mc_sem_up(mc_sem_t *sem)
70 g_mutex_lock(&sem->mutex);
73 g_cond_signal(&sem->cond);
75 g_mutex_unlock(&sem->mutex);
79 void mc_hex_dump(char *desc, void *addr, int len)
82 unsigned char buff[17];
83 unsigned char *pc = (unsigned char*)addr;
86 printf("%s:\n", desc);
88 for (i = 0; i < len; i++)
94 printf(" %s\n", buff);
99 printf(" %02x", pc[i]);
101 if ((pc[i] < 0x20) || (pc[i] > 0x7e))
104 buff[i % 16] = pc[i];
105 buff[(i % 16) + 1] = '\0';
108 while ((i % 16) != 0) {
112 printf(" %s\n", buff);