-
-
Save Plazik/e950267cc580bcde371ea7879aaa3d5d to your computer and use it in GitHub Desktop.
| import argparse | |
| import pathlib | |
| import dataclasses | |
| import subprocess | |
| CHANNELS = { | |
| '2.0': { | |
| 'id': 0, | |
| 'names': ['L', 'R'], | |
| }, | |
| '3.1': { | |
| 'id': 3, | |
| 'names': ['L', 'R', 'C', 'LFE'], | |
| }, | |
| '5.1': { | |
| 'id': 7, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs'], | |
| }, | |
| '7.1': { | |
| 'id': 11, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Lrs', 'Rrs'], | |
| }, | |
| '9.1': { | |
| 'id': 12, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Lrs', 'Rrs', 'Lw', 'Rw'], | |
| }, | |
| '5.1.2': { | |
| 'id': 13, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Ltm', 'Rtm'], | |
| }, | |
| '5.1.4': { | |
| 'id': 14, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Ltf', 'Rtf', 'Ltr', 'Rtr'], | |
| }, | |
| '7.1.2': { | |
| 'id': 15, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Lrs', 'Rrs', 'Ltm', 'Rtm'], | |
| }, | |
| '7.1.4': { | |
| 'id': 16, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Lrs', 'Rrs', 'Ltf', 'Rtf', 'Ltr', 'Rtr'], | |
| }, | |
| '7.1.6': { | |
| 'id': 17, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Lrs', 'Rrs', 'Ltf', 'Rtf', 'Ltm', 'Rtm', 'Ltr', 'Rtr'], | |
| }, | |
| '9.1.2': { | |
| 'id': 18, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Lrs', 'Rrs', 'Lw', 'Rw', 'Ltm', 'Rtm'], | |
| }, | |
| '9.1.4': { | |
| 'id': 19, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Lrs', 'Rrs', 'Lw', 'Rw', 'Ltf', 'Rtf', 'Ltr', 'Rtr'], | |
| }, | |
| '9.1.6': { | |
| 'id': 20, | |
| 'names': ['L', 'R', 'C', 'LFE', 'Ls', 'Rs', 'Lrs', 'Rrs', 'Lw', 'Rw', 'Ltf', 'Rtf', 'Ltm', 'Rtm', 'Ltr', 'Rtr'], | |
| }, | |
| } | |
| @dataclasses.dataclass | |
| class Config: | |
| gst_launch: pathlib.Path | |
| channels: str | |
| no_numbers: bool | |
| single: bool | |
| class AtmosDecode: | |
| def __init__(self, config: Config): | |
| if not config.gst_launch.is_file(): | |
| raise RuntimeError(f'Incorrect path to gst-launch-1.0.exe: {config.gst_launch.absolute()}') | |
| self.config: Config = config | |
| def decode(self, input_file: pathlib.Path, out_file: pathlib.Path | None = None): | |
| if not input_file.is_file(): | |
| raise RuntimeError(f'Input file {input_file.absolute()} is not a file') | |
| with input_file.open('rb') as f: | |
| first_bytes = f.read(10) | |
| eac3_sync_word = 0x0B77.to_bytes(2, 'big') | |
| truehd_sync_word = 0xF8726FBA.to_bytes(4, 'big') | |
| if first_bytes.startswith(eac3_sync_word): | |
| command_fun = self.prepare_eac3_decode_command | |
| elif truehd_sync_word in first_bytes: | |
| command_fun = self.prepare_truehd_decode_command | |
| else: | |
| raise RuntimeError(f'Source file must be in E-AC3 or TrueHD format') | |
| channel_layout = CHANNELS[self.config.channels] | |
| out_channel_config_id, channel_names = channel_layout['id'], channel_layout['names'] | |
| processes = [] | |
| for channel_id, channel_name in enumerate(channel_names): | |
| if self.config.no_numbers: | |
| suffix = f'.{channel_name}.wav' | |
| else: | |
| suffix = f'.{str(channel_id + 1).zfill(2)}_{channel_name}.wav' | |
| out_file_path = out_file.with_suffix(suffix) if out_file is not None else input_file.with_suffix(suffix) | |
| command = command_fun(input_file, out_file_path, channel_id, out_channel_config_id) | |
| if self.config.single: | |
| print(f'Decoding "{out_file_path}"') | |
| subprocess.run(command) | |
| else: | |
| processes.append(subprocess.Popen(command)) | |
| if not self.config.single: | |
| for process in processes: | |
| process.wait() | |
| def prepare_eac3_decode_command( | |
| self, | |
| input_file: pathlib.Path, | |
| out_file: pathlib.Path, | |
| channel_id: int, | |
| out_channel_config_id: int | |
| ) -> list[str]: | |
| return [ | |
| str(self.config.gst_launch.absolute()), | |
| '--gst-plugin-path', f'{self.config.gst_launch.parent.absolute()}/gst-plugins', | |
| 'filesrc', f'location={self._prepare_file_path(input_file)}', '!', | |
| 'dlbac3parse', '!', | |
| 'dlbaudiodecbin', f'out-ch-config={out_channel_config_id}', '!', | |
| 'deinterleave', 'name=d', f'd.src_{channel_id}', '!', | |
| 'wavenc', '!', | |
| 'filesink', f'location={self._prepare_file_path(out_file)}' | |
| ] | |
| def prepare_truehd_decode_command( | |
| self, | |
| input_file: pathlib.Path, | |
| out_file: pathlib.Path, | |
| channel_id: int, | |
| out_channel_config_id: int | |
| ) -> list[str]: | |
| return [ | |
| str(self.config.gst_launch.absolute()), | |
| '--gst-plugin-path', f'{self.config.gst_launch.parent.absolute()}/gst-plugins', | |
| 'filesrc', f'location={self._prepare_file_path(input_file)}', '!', | |
| 'dlbtruehdparse', 'align-major-sync=false', '!', | |
| 'dlbaudiodecbin', 'truehddec-presentation=16', f'out-ch-config={out_channel_config_id}', '!', | |
| 'deinterleave', 'name=d', f'd.src_{channel_id}', '!', | |
| 'wavenc', '!', | |
| 'filesink', f'location={self._prepare_file_path(out_file)}' | |
| ] | |
| def _prepare_file_path(self, source: pathlib.Path) -> str: | |
| return str(source.absolute()).replace('\\', '\\\\') | |
| def main(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument( | |
| '-i', '--input', | |
| help='Path to source file', | |
| type=pathlib.Path, | |
| required=True, | |
| ) | |
| parser.add_argument( | |
| '-o', '--output', | |
| help='Path to output base file', | |
| type=pathlib.Path, | |
| ) | |
| parser.add_argument( | |
| '--gst_launch', | |
| help='Path to gst-launch file from Dolby Reference Player', | |
| type=pathlib.Path, | |
| default=pathlib.Path(r'C:\Program Files\Dolby\Dolby Reference Player\gst-launch-1.0.exe') | |
| ) | |
| parser.add_argument( | |
| '-c', '--channels', | |
| help='Output channel configuration', | |
| type=str, | |
| default='9.1.6', | |
| choices=CHANNELS.keys(), | |
| ) | |
| parser.add_argument( | |
| '-nn', '--no_numbers', | |
| help='Do not use numbers in output channel names', | |
| action='store_true', | |
| ) | |
| parser.add_argument( | |
| '-s', '--single', | |
| help='Decode one channel at a time', | |
| action='store_true', | |
| ) | |
| args = parser.parse_args() | |
| args_dataclass = Config( | |
| gst_launch=args.gst_launch, | |
| channels=args.channels, | |
| no_numbers=args.no_numbers, | |
| single=args.single, | |
| ) | |
| decoder = AtmosDecode(args_dataclass) | |
| decoder.decode(args.input, args.output) | |
| if __name__ == '__main__': | |
| try: | |
| main() | |
| except RuntimeError as e: | |
| print(e) |
Hi, Dolby Reference Player can also play Dolby-AC4 audio, would you be able to add support for it? Thanks in advance :)
Subject: Sudden Issue with TrueHD Support in Atmos Decoder Script
Hi [Plazik],
First, thank you for sharing your Atmos Decoder script. It had been working perfectly for TrueHD files until a few days ago, but now I’m consistently getting the error:
"Selected Dolby TrueHD presentation is not available".
Observed Issues:
The script previously processed TrueHD files without issues, but now fails with Internal data stream error.
Output channels aren’t detected even with truehddec-presentation=16.
Attempted fixes (no success):
Toggling align-major-sync between true/false.
Adding force-sw-decoders and ignore-corrupted-frames.
Running with --single for per-channel processing.
Questions:
Could recent updates to Dolby/GStreamer libraries have caused this regression?
Is there a way to restore the previous working behavior?
Would you recommend downgrading to a specific version of Dolby Reference Player or GStreamer that was known to work?
I’m happy to provide:
Full error logs
Sample TrueHD files (both previously-working and currently-failing)
System environment details
Thank you for your time and expertise!
Best regards,
Sina
Subject: Sudden Issue with TrueHD Support in Atmos Decoder Script
Hi [Plazik],
First, thank you for sharing your Atmos Decoder script. It had been working perfectly for TrueHD files until a few days ago, but now I’m consistently getting the error: "Selected Dolby TrueHD presentation is not available".
Observed Issues: The script previously processed TrueHD files without issues, but now fails with Internal data stream error.
Output channels aren’t detected even with truehddec-presentation=16.
Attempted fixes (no success):
Toggling align-major-sync between true/false.
Adding force-sw-decoders and ignore-corrupted-frames.
Running with --single for per-channel processing.
Questions: Could recent updates to Dolby/GStreamer libraries have caused this regression?
Is there a way to restore the previous working behavior?
Would you recommend downgrading to a specific version of Dolby Reference Player or GStreamer that was known to work?
I’m happy to provide:
Full error logs
Sample TrueHD files (both previously-working and currently-failing)
System environment details
Thank you for your time and expertise!
Best regards, Sina
D:\DEE>python atmos_decode.py -i input.mlp
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Setting pipeline to PAUSED ...
SPipeline is PRESetting ROLLING ...
Spipeline to PAUSED ...
etting pipeline to PAUSED ...
Pipeline is PREROSetting pipeline to PAUSED ...
SeLLIPtPNipiGting pipeline to PAUSED ...
eline is PREROP pSetting pipeline to PAUSED ...
...
LLING ...
ipeline is PREROLLING ...
eline is PREROLLING ...
Pipeline is PREROLLING ...
SeSSSetERROR: from element /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder: Selected Dolby TrueHD presentation is not available
SERROR: from eleSetting pipeline ement /Gsto PAUSED ...eAdditional debug info:
../subprojects/gst-plugins-dlb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudioetting pipeline to tting pipeline to PAUSED ...
etting pipeline to PAUSED ...
tPipelintting pipeline to PAUSED ...
e:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder: SelectedPipelPipeline is PREROLLING ...
decbin0/DlbTruehdDec:adb_decoder
Pipeline ERROR: from element /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder Dolby TrueHD presentation is not available
: Selected Dolby TrueHD prPAUSED ...
esentation is not available
ERROR: from element /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlA
tRdditionaing pipelinedb_decoder: Selected DolbRditional debug info:
../subprojects/gst-plugins-dlb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstRne is PREROLPipelineRPRsRLING ...
ipelinyEOliP:pipeline0/DlbAudio e TruniORORRDt is egpR: from element /GstPipeline:pipeline0/DlbAudioDecBie R:Oeo PAUSED ...
RR debug inlin: from OR: pe is PREROLLING nfo:
../su pipeline to PAUSED ...
...
R: from element /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:ad:dlbaudiodecbin0/DlbTPREROLLING ...
PREROLLING ...
ipeline doesn't want to prerbprojects/gst-plugins-dlb/plugins/trueb_decoder: Selected Dolby TrueHD presentation is not available
hd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0Pipeline is PREROLLING ...
Ar/DlbAudioDecBin:dlbaudioPHdditional debug info:
../subprojects/gst-plugins-dlb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): uehdDec:adb oll.
/GsScRiDe_decoder:lement /GstPipeline:pipeline0/DlbAudioDecBin:dlbaeBip dtPipeline:pipelipresentatne0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder
n:dlbaudiodecbin0/DlbTruehdDec:adb_decoder
ttiSelected Dolby TrueHD presentation is not avaEuOeEienfiRdRline is PREROLLING ...
lable
g pipeline to NULL ...on is not available
: from eleme
RERiAArnt /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodROR: from element /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdeodecbin0/DlbTruehdDec:adb_decoder: Selected Dolby TrueHddEocOERROR: from element /GstPipeline:pipeline0/DlbTrmbRRROR: pipeline doesn't want inDec:dRuehdParse:dlbtruDdaiROR: ce idtionafbin0/DlbTruehdDee:0l debug info:
b_decodept../subprojects/gst-plugin/rhr: Selectedresc:adb_decoder: om element /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudel piSdpitiodecbin0/DlbTrueleco prepehdDec:adb_decoder: Selected Dolby TrueHeline doDlbTruehdDec:adb_decoder
arse0: Internal data stream error.
D oted Dor presentation is not available
nnAdditional debug info:
../libs/gst/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:ement /GstPipeline:pipeline0/DlbAudioDecBAdditional debug info:
../subprojects/gspEsDielEoatt-plugins-dlb/plugins/aiR-dlsby TrueHDnb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder
lttpRo :dlbaudiodecbin0/DlbTruehdDruehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decodereline0/DlbTruehdParse:dlOR: ll.
EbtnRfrom element /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder: Selected Dolby TrueHD presentation is not available
ec:adb_decoder: Additional debug info:
../subprojects/gst-plugins-dlb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder
R debug info:
../subprojects/gst-plugins-dlb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:RROR: pipeline doesn't want to preroll.
pERErSS'i: prlRRERROR: from element /GsOROR:t want to prerolSetting piipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDecbtR: pipepl.
Pipelinlie:yuee opeline to NULL ...
etting pipeline to Npeline nERROR: from element /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparhdparse0:
streaming stopped,d ie:pipeline0/DlbAudioDepipeline doesn't want to preroll.
a TrueoSeiUEsdslc Setting pipeline to NULL ...
tting e0: Internal data stream errBin:dlbaudiodecbin0/DlbTruehdDec:LL ...
rHD presentationesERRRentatieE is not available
OR: from element /GstPipeline:pipeline0/DlbTruehdParse:dlbtrueorason error (-5)
naRbEpAecon is not available
OR:Ripeline to NULL ...
nedE_ RAdht.Rso b_defrdditional debug info:
../subpoditional debug infE
ntdERdcodeOR: from element /GR't RRAdditional dewanecoder
stPipeline:pipeline0/DlbTruehdO obREOt to preroll.
R:rdeoRPamaeuORr pipeline dsgRRojecS:RRrse:dlbtruehdparse0: Internal data stream error.
:O:Additional debug info:
../libs/gst/base/gstbaseparse.c(3696): gst_base_parpdtetti element /Gs
O:ng pipeline to NULn't want to preroll.
R froesn't want to preroll.
Pipeline:pipaDolby TrueHD presentaom element /GstPipeline:pipelinL .R Freeing pipeline ...
Svtion is not available
rl.:eae0/DlbAudioDecilable
sb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0/DlbAudiAAtBinf: pipeliddditional debug infoSelected Dolby TrueHD presentation is no.o:
../subprojects/gst-plugins-dlb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudondti t available
n:.:
../libs/gst/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder: SelecteAe0: Internal data stream error.
eiifr
id . iD tnAddspdDolby TrueHD presentation is not available
/foecBin:dlbaudiodecbin0/DlbTrudAdditional debug info:
../subprojects/gst-plugins-dlb/plugins/truehdeoigdoieedEsrdeheo lmt_liRuo/cdsnpb ilitRbmdbDec:adooniOp linaiaebnoeoRrebn'lpul_ap:n:ojects/gst-plugins-dlb/plugins/truehd/dlbtruehddec.c(1075): deco0dl (): /GstPipel debug info:
../libs/gst/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParseal dt debement /Gtebug info:: lement /GstPipeline:pug info:
../subprojects/gsde_oamdi (): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbifrom element /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0: Internal data stream error.
dnsr edtipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder: Selected Dolby TrueHD presentation is not available
0utAwl-/eipi
../subprojects/gst-plugins-dlb/plaiplugins-dlb/plugins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0iodecbin0/DlbTruehdDec:adb_decoder: Selected Dolby TrueHD presentation is not available
PdAunne to NULL ...
cn/Dl/ehddgins/truehd/dlbtruehddec.c(1075): decode_oamdi (): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder
e:plbtruehdpaoder
DlbTruehdDec:adb_decoder
ERROR: pipeline doesntADrEipeline0/DlbTse0:
streamingRpbidEidE't want to RROR: pipeline doesn't want to preroll.
dec.c(1075): decode_oam ROR:preroll.
stopptiR SdlrdeAp from element /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0: Internal data stream error.
eSetional debug info:
../libs/gst/base/gstbaseparse.c(3696): gst_base_parARtetting pipeline to NULedional debug info:
../subprojects/gst-plugins-dlb/plugins/truehd/dlbtr,sdOo puehdParse:dlbtruehdparse0:
streaming stopped, reason error (-5)
dRdERROR: pipeline doesn't ei: pipeline doesn't want to preroll.
ttingtbiriludLu r_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
ioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder
te ilstreaming stopped, reason error (-5)
roll.
weS iTi(nEER eaason error (-5)
piponal debug info): /GstPipeline:pipeline0/DlbAudioDecBin:dlbaudiodecoruehdDine:pipeline0/DR.hnSeneE:beRelbTruehdParse:c:adb_dalR
../subprojects/gst-pluginsRi0RdO.dttecodeOn/Dlb.d ting pipeline to N-dlb/plugins/truehd/dlbtruehddec.c(1075): decodeRTruehl debuOR:: pipdParse:dlbtruehdparse0:
streaming s_
to preR0gltoppediUrERROR: from element /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparsr:/ bopeee, reason truehdparse0:info:
../libs/gst/base
e0: Intipeline doesn't want to preroll.
oll error (-5)
.InERctline DSetting pipeline to ROR: pipelinternal data stream eLg plbTrueN.tnrLstbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
i
ERROR: pipeline doesn't want to preroll.
peline doeFreeing pipeline ...
Snal data stream error.
heL(n sn'tstdoesn't want to preroll.
rdtLA1g pio meDtid07o.Freeing pipeline ...
dt5): decode_oamdi (): ...
pewdae/GstPiesai (): /GstPipeline:pipeline0/Dlb.pline to NUL.en't c:adb_decoder
o NULL ...
r.
lERmnwngAL
iERRitan udioDecBin:dlbaudiodecbin0/DlbTruehdDec:adb_decoder
EOnR itpipeline to NULL ...
to EnARRgOEt p...
ROR: fto preroRRROR: pipelll.
rERed: from element /Erom element /GstR:ditional debug info:
../libsGstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0: Internal data ine doesn't want to preroll.
eRPOpss:i/gFrRipeline:pipeline0/DlbTruehdParseRsroOSetting pipeline to NULlR: from element /GstPipeline:pipeline0/DlbTruehL ...
onal dlRitt :RtedERROR: from element /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdpdO/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPpilR: from element /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0: Internal data stream error.
.: from element /GstPiPe
ropped, reasoniapbecbin0/DlbTruehdDec:adb_decoder
pretingieFA error (-5)
esERROR: pipeline doesn't want to prEe0: Internal data stream line doesn't want to preroll.
rdelRRrub naedrieSOarse:dlbtruehdparse0: Internal danreR: pipelita stream error.
pem error.
ipelinne doesn't want to preroll.
u:eioAde .tegpinll.eror.
ipeline0/DlbTruehdParse:dlbtruehdparse0: Internal data stream editio.th tgArro:pipeline0/DlbTruehdParse:dlbtruehdparse0:
streamingdparse0: Internal data stream error.
i dditional debug info:
../libs.i info:
../lng pipeline to NULL ...
stopA
rFn/
opApERROR: from element /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0: Internaagibs/gst/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTrust/base/gstbaseparse.c(nal debugl debug info:
../libs/ehdPars.
gst/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
idded, reason error (-5)
e:dlbtpAidrlERRsSetting pipeline to NULL ...
i3Otredtie nfo:
../libs/gst/base/gsERROR: from element /GstPipeled6Rtbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
streaming stopped, reason erro9:rulditional debug info:
../libs/gst/base/gstbaiiata stream error.
eseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:6):hne ...
e gstiAir
strt_base_parse_loop (): /Gstpadoeindn Pipeline:pipeline0/DlbTruehdParse:dlbtrg(imparse0:
streaming stopped, reason error (-5)
pipelineu-5)
aoe:pipeline0/DlbTruehdParse:dlbtruehdparse0: Internal data stream error.
ditional debug info:
../libs/gst/base/gstbaseparse.c(3696): ing stopped, reason error (-5)
nmAnERROR: pipERROR: ing stogEapipeline doeae ehdparse0:
sst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
pped, reason error (-5)
sll..streaming stopped, reason error (-5)
p.ERERROR: pipeline doesn't waeline doesn't want to preroll.
treaming stoldn in
RFreeing pOR: pipeline doesn't want to preroll.
d'det ipeline ...
nFreeing pipelinee doesn' ...
itt wap tionant to predebug info:
../libs/gsbRto preroll.
ug proll.
t/base/glFreein deewastbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
streaming stopped, reason error (-5)
RngFERROR: pipeline doesn't want to preroll.
reeing pipe infotlipipel to preroll.
inne ...
ug info:
../libs/gst/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
streaming stopped, reason error (-5)
../libs/gst/base/gstbaseparse.c(3696): gst_base_parse_loop (): /GstPipeline:pipeline0/DlbTruehdParse:dlbtruehdparse0:
streaming stopped, reason error (-5)
reason error (-5)
...
reeing pipeline ...
ing pipeline .:ERROR: pipeline doesn't want to preroll.
ER E.ROR: pipeline doesn't want to preroll.
pRROR: pipel.
Freeing pipeline ...
ine doesn't want to prerolFreeing pipelinil.
e ...
ne doesn't wanFt to prreeing pipeline ...
eroll.
Freeing pipeline ...
WARNING: erroneous pipeline: no property "truehddec-presentation" in element "dlbaudiodecbin"
WARWANRNINIWARNING: erroneous piNG: erroneous pipeline: no proppelerty "truehddec-presentation" in element "dlbaG: erroneous pipeline: no property "trudiodineuehddec-presentation" iecbin"
n elem: no pent "dlbaudiodecbin"
roperty "truehddec-presentation" in element "dlbaudiodecbin"
WARNING: erroneous pipelWARNINine: no property "truehddec-preG:sent erroneous pipeline: no propearty "trutionehddec-pres"ent iation" in eln element "dlbauedmeiondect "bin"dlb
udiodecbin"
WARNING: erroneous pipeline: no property "truehddec-presentation" in element "dlbaudiodecbin"
WARNING: erroneous pWARNINGipeli: erronne:e no prous pipeline: operty "truehddec-presentationno p" iWARNINGroperty "truehdden element "dlbaudiode: ec-presrroneous picbpeline: in"
eno property "truehnddec-presentation" in elementation" in elemet n"dlt "dlbaudiodebaudiodecbin"
cbin"
WARNING: erroneous pipeline: no property "truehddec-presentation" in element "dlbaudiodecbin"
WARNING: erroneous pipeline: no WARNproperty "truehddec-presentatING: erroneous pipeline: ion" in element "dlbaudiodecbin"
no property "truehddec-presentation" in element "dlbaudiodecbin"
WARNING: erroneous pipeline: no property "truehddec-presentation" in element "dlbaudiodecbin"
WARNING: erroneous pipeline: no property "truehddec-presentation" in element "dlbaudiodecbin"
WARNING: erroneous pipeline: no property "truehddec-presentation" in element "dlbaudiodecbin"
how can i solve this issue
anyone ?
Have you tried running it as administrator?
I ran cmd as administrator and ran this command:
python atmos_decode.py -i atmos.thd -c 7.1.4
I got the same error as 21coolkarni.
What I'm trying to say is, you no longer need to stick to the DRP methodology. Cavernize can now handle TrueHD Atmos. Use Cavernize.
@bluewidy Thanks for telling me about Cavernize!
Music Media Helper 7 now does what this script does and has options to output multi-mono or multichannel.
