summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/mythtv/old/stable-0.22/mythtv/changeset_r23616.patch
blob: 2af779a966ce63b4b2ff69a06d6adb67db5c5078 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
--- bindings/perl/MythTV/Recording.pm.orig	2010-03-23 23:06:08.000000000 +0000
+++ bindings/perl/MythTV/Recording.pm	2010-03-23 23:15:24.000000000 +0000
@@ -307,12 +307,12 @@
     # Set the is_mpeg flag
         $info{'is_mpeg'} = 1;
     # Grab the info we want from mplayer (go uber-verbose to override --really-quiet)
-        my $data = `$program -v -v -v -v -nolirc -nojoystick -vo null -ao null -frames 1 -identify '$file' 2>/dev/null`;
+        my $idargs = "-v -v -v -v -nolirc -nojoystick -vo null -ao null -frames 1 -identify";
+        my $data = `$program $idargs '$file' 2>/dev/null`;
         study $data;
-        ($info{'video_type'})            = $data =~ m/^VIDEO:\s*(MPEG[12])/m;
+        ($info{'video_type'})            = $data =~ m/^VIDEO:?\s*(MPEG[12]|H264)/m;
         ($info{'width'})                 = $data =~ m/^ID_VIDEO_WIDTH=0*([1-9]\d*)/m;
         ($info{'height'})                = $data =~ m/^ID_VIDEO_HEIGHT=0*([1-9]\d*)/m;
-        ($info{'fps'})                   = $data =~ m/^ID_VIDEO_FPS=0*([1-9]\d*(?:\.\d+)?)/m;
         ($info{'audio_sample_rate'})     = $data =~ m/^ID_AUDIO_RATE=0*([1-9]\d*)/m;
         ($info{'audio_bitrate'})         = $data =~ m/^ID_AUDIO_BITRATE=0*([1-9]\d*)/m;
         ($info{'audio_bits_per_sample'}) = $data =~ m/^AUDIO:.+?ch,\s*[su](8|16)/mi;
@@ -321,6 +321,19 @@
         ($info{'aspect'})                = $data =~ m/^ID_VIDEO_ASPECT=0*([1-9]\d*(?:[\.\,]\d+)?)/m;
         ($info{'audio_type'})            = $data =~ m/^ID_AUDIO_CODEC=0*([1-9]\d*(?:\.\d+)?)/m;
         ($info{'mpeg_stream_type'})      = $data =~ m/^ID_DEMUXER=(\w+)/mi;
+    # Mplayer can't find the needed details.  Let's try again, forcing the use
+    # of the ffmpeg lavf demuxer 
+        if (!defined($info{'width'})) { 
+            my $altdata = `$program $idargs -demuxer lavf '$file' 2>/dev/null`; 
+            study $altdata; 
+            ($info{'width'})              = $altdata =~ m/^ID_VIDEO_WIDTH=0*([1-9]\d*)/m; 
+            ($info{'height'})             = $altdata =~ m/^ID_VIDEO_HEIGHT=0*([1-9]\d*)/m; 
+            ($info{'audio_bitrate'})      = $altdata =~ m/^ID_AUDIO_BITRATE=0*([1-9]\d*)/m; 
+            ($info{'audio_sample_rate'})  = $altdata =~ m/^ID_AUDIO_RATE=0*([1-9]\d*)/m; 
+            ($info{'audio_channels'})     = $altdata =~ m/^ID_AUDIO_NCH=0*([1-9]\d*)/m; 
+            ($info{'aspect'})             = $altdata =~ m/^ID_VIDEO_ASPECT=0*([1-9]\d*(?:[\.\,]\d+)?)/m; 
+        }
+
     # Stream type
         $info{'mpeg_stream_type'} = lc($info{'mpeg_stream_type'});
         if ($info{'mpeg_stream_type'} && $info{'mpeg_stream_type'} !~ /^mpeg/) {