[mythtv-users] New version of MythTV (0.17)

Mark Cooke mpc at jts.homeip.net
Sun Jan 30 14:56:04 EST 2005


On Sun, 2005-01-30 at 14:08 -0500, Gabe Rubin wrote:
> Speaking of this, maybe we need a setting for "Super Bowl commercial
> detection" that keeps the commercials and throws away the program, for
> those of us who aren't big football fans, but like the nifty Super
> Bowl commercials... ;)

Find attached a diff to the old stand-alone Xvid module of nuvexport[*]
that adds widescreen, and invert-cutlist options.

Also swaps to hqdn3d from yuvdenoise for speed.

Mark

[*] I think it is the 2004-08-22 tarball I am using.

-- 
Mark Cooke <mpc at jts.homeip.net>
-------------- next part --------------
--- export_Trans_XviD.pm.orig	2004-12-10 18:55:28.000000000 +0000
+++ export_Trans_XviD.pm	2005-01-13 17:18:52.000000000 +0000
@@ -17,6 +17,7 @@
 					 'savepath'    => '.',
 					 'outfile'     => 'out.avi',
 					 'use_cutlist' => 1,
+					 'invert_cutlist' => 0,
 					 'a_bitrate'   => 64,
 					 'v_bitrate'   => 1200,
 					 'h_res'       => 360,
@@ -24,6 +25,7 @@
 					 'sql_file' => undef,
 					 'deinterlace' => 0,
 					 'noise_reduction'     => 1,
+					 'widescreen'     => 1,
 					 @_		#allows user-specified attributes to override the defaults
 					};
 		bless($self, $class);
@@ -59,6 +61,16 @@
 			$self->{use_cutlist} = $gui->query_text('Enable Myth cutlist?',
 													'yesno',
 													$self->{use_cutlist} ? 'Yes' : 'No');
+			$self->{invert_cutlist} = $gui->query_text('Invert cutlist (extract ads)?',
+													'yesno',
+													$self->{invert_cutlist} ? 'Yes' : 'No');
+			if ($self->{invert_cutlist}) {
+			    $self->{a_bitrate} = 64;
+			    $self->{v_bitrate} = 250;
+			    $self->{h_res} = 180;
+			    $self->{v_res} = 144;
+			    $self->{noise_reduction} = 0;
+			}
 		}
 		else {
 			$gui->notify('No cutlist found.  Hopefully this means that you already removed the commercials.');
@@ -86,6 +98,9 @@
 		$self->{deinterlace} = $gui->query_text('Enable deinterlacing?',
 														'yesno',
 														$self->{deinterlace} ? 'Yes' : 'No');
+		$self->{widescreen} = $gui->query_text('Enable widescreen encoding?',
+														'yesno',
+														$self->{widescreen} ? 'Yes' : 'No');
 
 	}
 
@@ -101,22 +116,46 @@
 		$self->{started} = 1;
 
 		$safe_outfile = shell_escape($self->{outfile});
-		my $command = "nice -n 19 transcode --export_par 4 -x mpeg2 -i $main::video_dir/$self->{episode}->{filename} -y xvid -Z $self->{h_res}x$self->{v_res} -o $safe_outfile -w $self->{v_bitrate} -b $self->{a_bitrate}";
+		my $command = "nice -n 19 transcode -x mpeg2 -i $main::video_dir/$self->{episode}->{filename} -y xvid -Z $self->{h_res}x$self->{v_res} -o $safe_outfile -w $self->{v_bitrate} -b $self->{a_bitrate}";
 
 		if ($self->{use_cutlist}) {
-		  @cuts = split("\n",$self->{episode}->{cutlist});
+		  # Filter for Nicola to take just the adverts !
+		  if ($self->{invert_cutlist}) {
+		     my @cp = split(/\n| - /,$self->{episode}->{cutlist});
+		     my $first = shift(@cp);
+		     if ( $first ne "0" ) {
+			unshift(@cp, $first);
+			unshift(@cp, "0");
+                     }
+                     # Delete the last element
+		     pop(@cp);
+
+		     # Build the span list
+			while (@cp) {
+			my $a = shift(@cp);
+			my $b = shift(@cp);
+			push @cuts, "$a - $b";
+			}	
+                  } else {
+		      @cuts = split("\n",$self->{episode}->{cutlist});
+                  }
+
 		  my @skiplist;
 		  foreach $cut (@cuts) {
 		     push @skiplist, (split(" - ", $cut))[0]."-".(split(" - ", $cut))[1];
 	          }
+
 		  $command .= " -J skip=\"".join(" ", @skiplist)."\"";
 	        }
 
 		if ($self->{deinterlace}) {
-                  $command .= " -V -J smartdeinter";
+                  $command .= " -J smartdeinter";
+	        }
+		if ($self->{widescreen}) {
+                  $command .= " --export_par 4";
 	        }
 		if ($self->{noise_reduction}) {
-                  $command .= " -V -J yuvdenoise";
+                  $command .= " -J hqdn3d";
 	        }
 
 		push @{$self->{children}}, fork_command($command);


More information about the mythtv-users mailing list