foxglove / mcap

MCAP is a modular, performant, and serialization-agnostic container file format, useful for pub/sub and robotics applications.
https://mcap.dev
MIT License
516 stars 95 forks source link

reading converted ros1 to mcap files, gives out an error in python libary #389

Closed Dragonking3x closed 2 years ago

Dragonking3x commented 2 years ago

Description After converting a ros1 .bag file to .mcap with mcap convert rosbag.bag rosbag.mcap the python library can't read more than the first record.

First record: Header(profile='ros1', library='mcap go #(devel)') ERROR: zstd.Error: Input data invalid or missing content size in frame header.

Converting it with mcap convert --chunked=False rosbag.bag rosbag.mcap makes it able to be used with the python libary.

Version mcap-cli: mcap-linux-amd64 (v0.0.8) Language: Python 3.8.10 libary: mcap (0.0.8) Platform: Ubuntu 20.04

Steps To Reproduce

Behavior /home/dragonking3x/PycharmProjects/testing/venv/bin/python /home/dragonking3x/PycharmProjects/testing/main.py Header(profile='ros1', library='mcap go #(devel)') Traceback (most recent call last): File "/home/dragonking3x/PycharmProjects/testing/main.py", line 100, in main('PyCharm') File "/home/dragonking3x/PycharmProjects/testing/main.py", line 28, in main read_mcap(file_name) File "/home/dragonking3x/PycharmProjects/testing/main.py", line 34, in read_mcap for record in reader.records: File "/home/dragonking3x/PycharmProjects/testing/venv/lib/python3.8/site-packages/mcap/mcap0/stream_reader.py", line 91, in records chunk_records = breakup_chunk(record) File "/home/dragonking3x/PycharmProjects/testing/venv/lib/python3.8/site-packages/mcap/mcap0/stream_reader.py", line 31, in breakup_chunk stream, stream_length = get_chunk_data_stream(chunk) File "/home/dragonking3x/PycharmProjects/testing/venv/lib/python3.8/site-packages/mcap/mcap0/stream_reader.py", line 53, in get_chunk_data_stream data: bytes = ZSTD_uncompress(chunk.data) zstd.Error: Input data invalid or missing content size in frame header. INFO - 2022-05-12 12:14:05,747 - core - signal_shutdown [atexit]

jtbandes commented 2 years ago

Thanks for reporting. I can reproduce the issue. This is a bug in the Python library.

You can work around the issue by using mcap convert --compression lz4 or --compression none.

jtbandes commented 2 years ago

Fixed in 0.0.9