]> git.vomp.tv Git - vompclient.git/commitdiff
Bug in private packet processing (AC3)
authorMark Calderbank <mark@vomp.tv>
Tue, 18 Dec 2007 23:57:02 +0000 (23:57 +0000)
committerMark Calderbank <mark@vomp.tv>
Tue, 18 Dec 2007 23:57:02 +0000 (23:57 +0000)
demuxer.cc

index 1443b7bab98e9a0b3b37562d285ea94a359d1b7c..e6f1e3e7c736ec66a22a65cd4935950054924f73 100644 (file)
@@ -48,6 +48,7 @@ void PESPacket::init(UCHAR type)
   data[3] = type;
   data[4] = data[5] = 0;
   packetType = type;
+  substream = 0;
   seq_header = 1; // Unknown seq_header status
 }
 
@@ -283,20 +284,18 @@ bool Demuxer::submitPacket(PESPacket& packet)
     else
       sent = packet.getSize();
   }
-  else if (packet_type == PESTYPE_PRIVATE_1)
+  else if (packet_type == PESTYPE_PRIVATE_1 &&
+           packet.getSubstream() >= PESTYPE_SUBSTREAM_AC30 &&
+           packet.getSubstream() <= PESTYPE_SUBSTREAM_AC3MAX)
   {
-    if (packet.getSubstream() >= PESTYPE_SUBSTREAM_AC30 &&
-        packet.getSubstream() <= PESTYPE_SUBSTREAM_AC3MAX)
+    avail_ac3audchan[packet.getSubstream() - PESTYPE_SUBSTREAM_AC30] = true;
+    if (packet.getSubstream() == audio_current)
     {
-      avail_ac3audchan[packet.getSubstream() - PESTYPE_SUBSTREAM_AC30] = true;
-      if (packet.getSubstream() == audio_current)
-      {
-        sent = audiostream.put(packet.getData(), packet.getSize(), (ispre_1_3_19)? MPTYPE_AC3_PRE13 : MPTYPE_AC3);
-      }
-      else
-      {
-        sent = packet.getSize();
-      }
+      sent = audiostream.put(packet.getData(), packet.getSize(), (ispre_1_3_19)? MPTYPE_AC3_PRE13 : MPTYPE_AC3);
+    }
+    else
+    {
+      sent = packet.getSize();
     }
   }
   else