tsdemux: Detect and handle scrambled packets
Users (tsdemux/mpegtsparse) can decide what to do with that
This commit is contained in:
parent
fa4b92e743
commit
8a4fd8358d
@ -338,7 +338,7 @@ mpegts_packetizer_parse_adaptation_field_control (MpegTSPacketizer2 *
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static MpegTSPacketizerPacketReturn
|
||||||
mpegts_packetizer_parse_packet (MpegTSPacketizer2 * packetizer,
|
mpegts_packetizer_parse_packet (MpegTSPacketizer2 * packetizer,
|
||||||
MpegTSPacketizerPacket * packet)
|
MpegTSPacketizerPacket * packet)
|
||||||
{
|
{
|
||||||
@ -347,11 +347,26 @@ mpegts_packetizer_parse_packet (MpegTSPacketizer2 * packetizer,
|
|||||||
data = packet->data_start;
|
data = packet->data_start;
|
||||||
data++;
|
data++;
|
||||||
|
|
||||||
|
/* transport_error_indicator 1 */
|
||||||
|
if (G_UNLIKELY (*data >> 7))
|
||||||
|
return PACKET_BAD;
|
||||||
|
|
||||||
|
/* payload_unit_start_indicator 1 */
|
||||||
packet->payload_unit_start_indicator = (*data >> 6) & 0x01;
|
packet->payload_unit_start_indicator = (*data >> 6) & 0x01;
|
||||||
|
|
||||||
|
/* transport_priority 1 */
|
||||||
|
/* PID 13 */
|
||||||
packet->pid = GST_READ_UINT16_BE (data) & 0x1FFF;
|
packet->pid = GST_READ_UINT16_BE (data) & 0x1FFF;
|
||||||
data += 2;
|
data += 2;
|
||||||
|
|
||||||
|
/* transport_scrambling_control 2 */
|
||||||
|
if (G_UNLIKELY (*data >> 6))
|
||||||
|
return PACKET_BAD;
|
||||||
|
|
||||||
|
/* adaptation_field_control 2 */
|
||||||
packet->adaptation_field_control = (*data >> 4) & 0x03;
|
packet->adaptation_field_control = (*data >> 4) & 0x03;
|
||||||
|
|
||||||
|
/* continuity_counter 4 */
|
||||||
packet->continuity_counter = *data & 0x0F;
|
packet->continuity_counter = *data & 0x0F;
|
||||||
data += 1;
|
data += 1;
|
||||||
|
|
||||||
@ -368,7 +383,7 @@ mpegts_packetizer_parse_packet (MpegTSPacketizer2 * packetizer,
|
|||||||
else
|
else
|
||||||
packet->payload = NULL;
|
packet->payload = NULL;
|
||||||
|
|
||||||
return TRUE;
|
return PACKET_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
Loading…
x
Reference in New Issue
Block a user