sprintf(string, " -F %d", frame_rate_code);
strncat(mjpeg_command, string, sizeof(mjpeg_command));
+ sprintf(string, " -H"); /* Maximize high-frequency resolution */
+ strncat(mjpeg_command, string, sizeof(mjpeg_command));
-
-
+ if(asset->vmpeg_preset == 3) /* no constrains for mpeg2 generic */
+ {
+ sprintf(string, " --no-constraints");
+ strncat(mjpeg_command, string, sizeof(mjpeg_command));
+ sprintf(string, " -V 500");
+ strncat(mjpeg_command, string, sizeof(mjpeg_command));
+ }
strncat(mjpeg_command,
asset->vmpeg_progressive ? " -I 0" : " -I 1",
add_subwindow(cmodel = new MPEGColorModel(x1, y, this));
cmodel->create_objects();
y += yS(30);
+ add_subwindow(derivative = new MPEGDerivative(x1, y, this));
+ derivative->create_objects();
update_cmodel_objs();
void MPEGConfigVideo::delete_cmodel_objs()
{
delete preset;
- delete derivative;
delete bitrate;
delete fixed_bitrate;
delete quant;
void MPEGConfigVideo::reset_cmodel()
{
preset = 0;
- derivative = 0;
bitrate = 0;
fixed_bitrate = 0;
quant = 0;
add_subwindow(title = new BC_Title(x, y + ys5, _("Derivative:")));
titles.append(title);
- add_subwindow(derivative = new MPEGDerivative(x1, y, this));
- derivative->create_objects();
+ derivative->reposition_window(x1, y);
y += ys30;
add_subwindow(title = new BC_Title(x, y + ys5, _("Bitrate:")));
int MPEGDerivative::handle_event()
{
gui->asset->vmpeg_derivative = string_to_derivative(get_text());
+ if( gui->asset->vmpeg_derivative == 1 ) {
+ gui->asset->vmpeg_cmodel = BC_YUV420P;
+ char *text = MPEGColorModel::cmodel_to_string(gui->asset->vmpeg_cmodel);
+ gui->cmodel->set_text(text);
+ }
+ gui->cmodel->create_objects();
+ gui->update_cmodel_objs();
+ gui->show_window(1);
return 1;
};
void MPEGColorModel::create_objects()
{
+ while( total_items() > 0 ) del_item(0);
add_item(new BC_MenuItem(cmodel_to_string(BC_YUV420P)));
- add_item(new BC_MenuItem(cmodel_to_string(BC_YUV422P)));
+ if( gui->asset->vmpeg_derivative == 2 )
+ add_item(new BC_MenuItem(cmodel_to_string(BC_YUV422P)));
}
int MPEGColorModel::handle_event()
gui->update_cmodel_objs();
gui->show_window(1);
return 1;
-};
+}
int MPEGColorModel::string_to_cmodel(char *string)
{
int mquant, int *nonsat_mquant);
void iquant_intra ( int16_t *src, int16_t *dst, int dc_prec, int mquant);
void iquant_non_intra (int16_t *src, int16_t *dst, int mquant);
-void init_quantizer_hv();
+void init_quantizer_hv(int use_sse);
int next_larger_quant_hv( pict_data_s *picture, int quant );
extern int (*pquant_non_intra)(pict_data_s *picture, int16_t *src, int16_t *dst,