- job->vrate_base = title->rate_base;
-
- int detelecine_present = 0;
- if ( job->filters )
- {
- for( i = 0; i < hb_list_count( job->filters ); i++ )
- {
- hb_filter_object_t * filter = hb_list_item( job->filters, i );
- if (filter->id == FILTER_DETELECINE)
- detelecine_present = 1;
- }
- }
-
- if (!detelecine_present)
- {
- /* Allocate the filter. */
- hb_filter_object_t * filter = malloc( sizeof( hb_filter_object_t ) );
-
- /* Copy in the contents of the detelecine struct. */
- memcpy( filter, &hb_filter_detelecine, sizeof( hb_filter_object_t ) );
-
- /* Set the name to a copy of the template name so render.c has something to free. */
- filter->name = strdup(hb_filter_detelecine.name);
-
- /* Add it to the list. */
- hb_list_add( job->filters, filter );
+ // The concept of variable frame rate video was a bit too advanced
+ // for Microsoft so AVI doesn't support it. Since almost all dvd
+ // video is VFR we have to convert it to constant frame rate to
+ // put it in an AVI container. So duplicate, drop and
+ // otherwise trash video frames to appease the gods of Redmond.
+ job->cfr = 1;
+ }