31 |
|
|
32 |
int xvid_plugin_psnr(void * handle, int opt, void * param1, void * param2) |
int xvid_plugin_psnr(void * handle, int opt, void * param1, void * param2) |
33 |
{ |
{ |
34 |
switch(opt) |
switch(opt) { |
|
{ |
|
35 |
case XVID_PLG_INFO : |
case XVID_PLG_INFO : |
36 |
{ |
{ |
37 |
xvid_plg_info_t * info = (xvid_plg_info_t*)param1; |
xvid_plg_info_t * info = (xvid_plg_info_t*)param1; |
38 |
info->flags = XVID_REQPSNR; |
info->flags = XVID_REQPSNR; |
39 |
return 0; |
return(0); |
40 |
} |
} |
|
|
|
41 |
case XVID_PLG_CREATE : |
case XVID_PLG_CREATE : |
42 |
|
*((void**)param2) = NULL; /* We don't have any private data to bind here */ |
43 |
case XVID_PLG_DESTROY : |
case XVID_PLG_DESTROY : |
44 |
case XVID_PLG_BEFORE : |
case XVID_PLG_BEFORE : |
45 |
case XVID_PLG_FRAME : |
case XVID_PLG_FRAME : |
46 |
return 0; |
return(0); |
|
|
|
47 |
case XVID_PLG_AFTER : |
case XVID_PLG_AFTER : |
48 |
{ |
{ |
49 |
xvid_plg_data_t * data = (xvid_plg_data_t*)param1; |
xvid_plg_data_t * data = (xvid_plg_data_t*)param1; |
53 |
sse_to_PSNR(data->sse_u, data->width*data->height/4), |
sse_to_PSNR(data->sse_u, data->width*data->height/4), |
54 |
sse_to_PSNR(data->sse_v, data->width*data->height/4)); |
sse_to_PSNR(data->sse_v, data->width*data->height/4)); |
55 |
|
|
56 |
return 0; |
return(0); |
57 |
} |
} |
58 |
} |
} |
59 |
|
|