All pastes #980427 Raw Edit

ts types diff

public diff v1 · immutable
·published 2008-04-11 00:14 UTC
rendered paste body
Index: libhb/stream.c===================================================================--- libhb/stream.c	(revision 1397)+++ libhb/stream.c	(working copy)@@ -57,6 +57,7 @@     uint8_t ts_number_audio_pids;      uint8_t ts_streamid[kMaxNumberDecodeStreams];+    uint8_t ts_video_stream_type[kMaxNumberDecodeStreams];     uint8_t ts_audio_stream_type[kMaxNumberDecodeStreams];      char    *path;@@ -1062,6 +1063,73 @@     } } +/*+ * Get the name of the stream from the type - thanks to VLC for this.+ */+static const char *get_stream_name (unsigned char stream_type)+{+    switch( stream_type )+    {+    case 0x01:  /* MPEG-1 video */+    case 0x02:  /* MPEG-2 video */+    case 0x80:  /* MPEG-2 MOTO video */+        return("MPEG 1/2 Video");+        break;+    case 0x03:  /* MPEG-1 audio */+    case 0x04:  /* MPEG-2 audio */+        return("MPEG Audio");+        break;+    case 0x11:  /* MPEG4 (audio) */+    case 0x0f:  /* ISO/IEC 13818-7 Audio with ADTS transport syntax */+        return("MPEG-4 Audio");+        break;+    case 0x10:  /* MPEG4 (video) */+        return("MPEG-4 Video");+        break;+    case 0x1B:  /* H264 <- check transport syntax/needed descriptor */+        return("H.264 Video");+        break;+        +    case 0x81:  /* A52 (audio) */+        return("A52/AC-3 Audio");+        break;+    case 0x82:  /* DVD_SPU (sub) */+        return("Subtitle");+        break;+    case 0x83:  /* LPCM (audio) */+        return("LPCM Audio");+        break;+    case 0x84:  /* SDDS (audio) */+        return("SDDS Audio");+        break;+    case 0x85:  /* DTS (audio) */+        return("DTS Audio");+        break;+        +    case 0x91:  /* A52 vls (audio) */+        return("A52b/AC-3 Audio");+        break;+    case 0x92:  /* DVD_SPU vls (sub) */+        return("Subtitle");+        break;+        +    case 0x94:  /* SDDS (audio) */+        return("SDDS Audio");+        break;+        +    case 0xa0:  /* MSCODEC vlc (video) (fixed later) */+        return("MSCODEC Video");+        break;+        +    case 0x06:  /* PES_PRIVATE  (fixed later) */+    case 0x12:  /* MPEG-4 generic (sub/scene/...) (fixed later) */+    case 0xEA:  /* Privately managed ES (VC-1) (fixed later */+    default:+        return("Other");+        break;+    }+}+ int decode_program_map(hb_stream_t* stream) {     bitbuf_t bb;@@ -1110,32 +1178,35 @@ 		ES_info_buf[i] = get_bits(&bb, 8); 	  } -	  if (stream_type == 0x02)++	  if (stream_type == 0x02 || stream_type == 0x10 || stream_type == 0x1B) 	  {-		if (stream->ts_number_video_pids <= kMaxNumberVideoPIDS)+              /* MPEG-2/MPEG-4/H.264 */+              if (stream->ts_number_video_pids <= kMaxNumberVideoPIDS) 		  stream->ts_number_video_pids++;-		stream->ts_video_pids[stream->ts_number_video_pids-1] = elementary_PID;+              stream->ts_video_pids[stream->ts_number_video_pids-1] = elementary_PID;+              stream->ts_video_stream_type[stream->ts_number_video_pids-1] = stream_type; 	  }-      else-      {-        // Defined audio stream types are 0x81 for AC-3/A52 audio and 0x03-        // for mpeg audio. But content producers seem to use other-        // values (0x04 and 0x06 have both been observed) so at this point-        // we say everything that isn't a video pid is audio then at the end-        // of hb_stream_title_scan we'll figure out which are really audio-        // by looking at the PES headers.-        i = stream->ts_number_audio_pids;-        if (i < kMaxNumberAudioPIDS)-            stream->ts_number_audio_pids++;-        stream->ts_audio_pids[i] = elementary_PID;-        stream->ts_audio_stream_type[1 + i] = stream_type;--		if (ES_info_length > 0)-		{-            decode_element_descriptors(stream, i, ES_info_buf, ES_info_length);-		}+          else+          {+              // Defined audio stream types are 0x81 for AC-3/A52 audio and 0x03+              // for mpeg audio. But content producers seem to use other+              // values (0x04 and 0x06 have both been observed) so at this point+              // we say everything that isn't a video pid is audio then at the end+              // of hb_stream_title_scan we'll figure out which are really audio+              // by looking at the PES headers.+              i = stream->ts_number_audio_pids;+              if (i < kMaxNumberAudioPIDS)+                  stream->ts_number_audio_pids++;+              stream->ts_audio_pids[i] = elementary_PID;+              stream->ts_audio_stream_type[1 + i] = stream_type;+              +              if (ES_info_length > 0)+              {+                  decode_element_descriptors(stream, i, ES_info_buf, ES_info_length);+              } 	  }-+           	  cur_pos += 5 /* stream header */ + ES_info_length;  	  free(ES_info_buf);@@ -1406,12 +1477,18 @@ 	int i=0; 	for (i=0; i < stream->ts_number_video_pids; i++) 	{-		hb_log("      0x%x (%d)", stream->ts_video_pids[i], stream->ts_video_pids[i]);+		hb_log("      0x%x (%d) [Type %s (0x%x)]", +                       stream->ts_video_pids[i], stream->ts_video_pids[i],+                       get_stream_name(stream->ts_video_stream_type[i]),+                       stream->ts_video_stream_type[i]); 	} 	hb_log("    Audio PIDS : "); 	for (i = 0; i < stream->ts_number_audio_pids; i++) 	{-		hb_log("      0x%x (%d)", stream->ts_audio_pids[i], stream->ts_audio_pids[i]);+		hb_log("      0x%x (%d) [Type %s (0x%x)]", +                       stream->ts_audio_pids[i], stream->ts_audio_pids[i],+                       get_stream_name(stream->ts_audio_stream_type[i]),+                       stream->ts_audio_stream_type[i] ); 	}  } Index: macosx/HandBrake.plist===================================================================--- macosx/HandBrake.plist	(revision 1397)+++ macosx/HandBrake.plist	(working copy)@@ -9,7 +9,7 @@ 	<key>CFBundleExecutable</key> 	<string>HandBrake</string> 	<key>CFBundleGetInfoString</key>-	<string>0.9.2</string>+	<string>svn1367M</string> 	<key>CFBundleIconFile</key> 	<string>HandBrake</string> 	<key>CFBundleIdentifier</key>@@ -21,11 +21,11 @@ 	<key>CFBundlePackageType</key> 	<string>APPL</string> 	<key>CFBundleShortVersionString</key>-	<string>0.9.2</string>+	<string>svn1367M</string> 	<key>CFBundleSignature</key> 	<string>HB##</string> 	<key>CFBundleVersion</key>-	<string>2008021900</string>+	<string>2008040201</string> 	<key>NSHumanReadableCopyright</key> 	<string>HandBrake Devs</string> 	<key>NSMainNibFile</key>