[svn] / trunk / vfw / src / codec.c Repository:
ViewVC logotype

Diff of /trunk/vfw/src/codec.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 61, Sat Mar 23 06:58:56 2002 UTC revision 94, Sat Mar 30 23:53:58 2002 UTC
# Line 627  Line 627 
627    
628          int     frames = 0, credits_frames = 0, i_frames = 0;          int     frames = 0, credits_frames = 0, i_frames = 0;
629          __int64 total = 0, i_total = 0, i_boost_total = 0, start = 0, end = 0, start_curved = 0, end_curved = 0;          __int64 total = 0, i_total = 0, i_boost_total = 0, start = 0, end = 0, start_curved = 0, end_curved = 0;
630          __int64 desired = codec->config.desired_size * 1024;          __int64 desired = (__int64)codec->config.desired_size * 1024;
631    
632          double total1 = 0.0;          double total1 = 0.0;
633          double total2 = 0.0;          double total2 = 0.0;
# Line 747  Line 747 
747                                  ++frames;                                  ++frames;
748                          }                          }
749    
750                          twopass->movie_curve = ((float)(total + i_boost_total) / total);                          twopass->movie_curve = ((double)(total + i_boost_total) / total);
751                          twopass->average_frame = ((double)(total - i_total) / (frames - credits_frames - i_frames) / twopass->movie_curve);                          twopass->average_frame = ((double)(total - i_total) / (frames - credits_frames - i_frames) / twopass->movie_curve);
752    
753                          SetFilePointer(twopass->stats1, sizeof(DWORD), 0, FILE_BEGIN);                          SetFilePointer(twopass->stats1, sizeof(DWORD), 0, FILE_BEGIN);
# Line 764  Line 764 
764                                  twopass->alt_curve_high_diff = twopass->alt_curve_high - twopass->average_frame;                                  twopass->alt_curve_high_diff = twopass->alt_curve_high - twopass->average_frame;
765                                  if (codec->config.alt_curve_use_auto)                                  if (codec->config.alt_curve_use_auto)
766                                  {                                  {
767                                          if (twopass->movie_curve > 1.0f)                                          if (twopass->movie_curve > 1.0)
768                                          {                                          {
769                                                  codec->config.alt_curve_min_rel_qual = (int)(100.0 - (100.0 - 100.0 / twopass->movie_curve) * (double)codec->config.alt_curve_auto_str / 100.0);                                                  codec->config.alt_curve_min_rel_qual = (int)(100.0 - (100.0 - 100.0 / twopass->movie_curve) * (double)codec->config.alt_curve_auto_str / 100.0);
770                                                  if (codec->config.alt_curve_min_rel_qual < 20)                                                  if (codec->config.alt_curve_min_rel_qual < 20)
# Line 960  Line 960 
960    
961                                  // credits curve = (total / desired_size) * (100 / credits_rate)                                  // credits curve = (total / desired_size) * (100 / credits_rate)
962                                  twopass->credits_start_curve = twopass->credits_end_curve =                                  twopass->credits_start_curve = twopass->credits_end_curve =
963                                          ((float)total / desired) * ((float)100 / codec->config.credits_rate);                                          ((double)total / desired) * ((double)100 / codec->config.credits_rate);
964    
965                                  start_curved = (__int64)(start / twopass->credits_start_curve);                                  start_curved = (__int64)(start / twopass->credits_start_curve);
966                                  end_curved = (__int64)(end / twopass->credits_end_curve);                                  end_curved = (__int64)(end / twopass->credits_end_curve);
967    
968                                  // movie curve = (total - credits) / (desired_size - curved credits)                                  // movie curve = (total - credits) / (desired_size - curved credits)
969                                  twopass->movie_curve = (float)                                  twopass->movie_curve = (double)
970                                          (total - start - end) /                                          (total - start - end) /
971                                          (desired - start_curved - end_curved);                                          (desired - start_curved - end_curved);
972    
# Line 975  Line 975 
975                          case CREDITS_MODE_QUANT :                          case CREDITS_MODE_QUANT :
976    
977                                  // movie curve = (total - credits) / (desired_size - credits)                                  // movie curve = (total - credits) / (desired_size - credits)
978                                  twopass->movie_curve = (float)                                  twopass->movie_curve = (double)
979                                          (total - start - end) / (desired - start - end);                                          (total - start - end) / (desired - start - end);
980    
981                                  // aid the average asymmetric frame calculation below                                  // aid the average asymmetric frame calculation below
# Line 987  Line 987 
987                          case CREDITS_MODE_SIZE :                          case CREDITS_MODE_SIZE :
988    
989                                  // start curve = (start / start desired size)                                  // start curve = (start / start desired size)
990                                  twopass->credits_start_curve = (float)                                  twopass->credits_start_curve = (double)
991                                          (start / 1024) / codec->config.credits_start_size;                                          (start / 1024) / codec->config.credits_start_size;
992    
993                                  // end curve = (end / end desired size)                                  // end curve = (end / end desired size)
994                                  twopass->credits_end_curve = (float)                                  twopass->credits_end_curve = (double)
995                                          (end / 1024) / codec->config.credits_end_size;                                          (end / 1024) / codec->config.credits_end_size;
996    
997                                  start_curved = (__int64)(start / twopass->credits_start_curve);                                  start_curved = (__int64)(start / twopass->credits_start_curve);
998                                  end_curved = (__int64)(end / twopass->credits_end_curve);                                  end_curved = (__int64)(end / twopass->credits_end_curve);
999    
1000                                  // movie curve = (total - credits) / (desired_size - curved credits)                                  // movie curve = (total - credits) / (desired_size - curved credits)
1001                                  twopass->movie_curve = (float)                                  twopass->movie_curve = (double)
1002                                          (total - start - end) /                                          (total - start - end) /
1003                                          (desired - start_curved - end_curved);                                          (desired - start_curved - end_curved);
1004    
# Line 1024  Line 1024 
1024                                  twopass->alt_curve_high_diff = twopass->alt_curve_high - twopass->average_frame;                                  twopass->alt_curve_high_diff = twopass->alt_curve_high - twopass->average_frame;
1025                                  if (codec->config.alt_curve_use_auto)                                  if (codec->config.alt_curve_use_auto)
1026                                  {                                  {
1027                                          if (twopass->movie_curve > 1.0f)                                          if (twopass->movie_curve > 1.0)
1028                                          {                                          {
1029                                                  codec->config.alt_curve_min_rel_qual = (int)(100.0 - (100.0 - 100.0 / twopass->movie_curve) * (double)codec->config.alt_curve_auto_str / 100.0);                                                  codec->config.alt_curve_min_rel_qual = (int)(100.0 - (100.0 - 100.0 / twopass->movie_curve) * (double)codec->config.alt_curve_auto_str / 100.0);
1030                                                  if (codec->config.alt_curve_min_rel_qual < 20)                                                  if (codec->config.alt_curve_min_rel_qual < 20)

Legend:
Removed from v.61  
changed lines
  Added in v.94

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4