tsdemux: LPCM audio track not detected
Submitted by Shiva Kumar
Link to original bug (#703913)
Description
Summary:
- Bad: LPCM audio is ignored in tsdemux plugin.
Description:
Overview:
I am trying to play a mpeg ts file with h264 video and lcpm audio in it. But "mpegtsdemux" is ignoring the audio and source pad is created only for video. I added logs in "mpegtsdemux and tsdemux" and printed stream_id and stream_type for the same. It is stream_id=0xbd and stream_type=0x83.
I saw in the tsdemux and mpegtsdemux source code that stream_type=0x83 is mapped to ST_BD_AUDIO_AC3_TRUE_HD and is not handled. But vlc is recognizing it as DVD lpcm audio.
I used "dvbsnoop" ubuntu utility to analyze the stream. Below is what it says about audio section.(for one of the ts packets)
Sync-Byte 0x47: 71 (0x47)
Transport_error_indicator: 0 (0x00) [= packet ok]
Payload_unit_start_indicator: 1 (0x01) [= Packet data starts]
transport_priority: 0 (0x00)
PID: 68 (0x0044) [= ]
transport_scrambling_control: 0 (0x00) [= No scrambling of TS packet payload]
adaptation_field_control: 1 (0x01) [= no adaptation_field, payload only]
continuity_counter: 0 (0x00) [= (sequence ok)]
Payload: (len: 184)
==> PES-stream: 189 (0xbd) [= private_stream_1]
But "mpegtsdemux and tsdemux" src pad claims the it can candle "audio/x-private-ts-lpcm" and "audio/x-lpcm".
SRC template: 'audio_%04x'
Availability: Sometimes
Capabilities:
audio/mpeg
mpegversion: 1
audio/mpeg
mpegversion: 4
stream-format: adts
audio/x-lpcm
width: { 16, 20, 24 }
rate: { 48000, 96000 }
channels: [ 1, 8 ]
dynamic_range: [ 0, 255 ]
emphasis: { false, true }
mute: { false, true }
audio/x-ac3
audio/x-eac3
audio/x-dts
audio/x-private-ts-lpcm
I am using 0.10.22.3 version of gstreamer bad plugings but the issue is seen in 1.x also.
Steps to Reproduce:
Actual Results:
Only video pad is created and audio is ignored.
Expected Results:
It should handle both audio(LPCM) and video as src pad capability says.
Platform:
On ubuntu 12.04
Version: 1.x