"""
Author: Leonardo de Sousa Marques
Affiliation: Embedded Computing Lab (ECL), Federal University of Santa Catarina (UFSC)
Description:
Script to get the MD5 checksum from a Light Field stored in PGX format.
"""
import os
import sys
from pathlib import Path
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
from typing import Optional
from lfc_toolkit.src.data_handlers.lightfield import LightField, RAW_BT709_FR_PGX_LightField_Data
[docs]
def get_md5_from_pgx(lightfield: LightField, pgx_path: Path) -> Optional[str]:
"""Computes the MD5 checksum of a light field stored in PGX format.
:param lightfield: Light field metadata
:type lightfield: LightField
:param pgx_path: Path to the PGX light field directory
:type pgx_path: Path
:return: MD5 hash string, or None if raw_path is undefined
:rtype: Optional[str]
"""
lf_data = RAW_BT709_FR_PGX_LightField_Data(
lightfield=lightfield,
pgx_path=pgx_path
)
return lf_data.get_md5()
[docs]
def main() -> None:
if len(sys.argv) != 6:
print("<pgx_path> <lightfield_name> <view_width> <view_height> <n_views_width> <n_views_height>")
return
pgx_path = Path(sys.argv[1])
name = sys.argv[2]
view_width = int(sys.argv[3])
view_height = int(sys.argv[4])
n_views_width = int(sys.argv[5])
n_views_height = int(sys.argv[6])
lf = LightField(name=name,
view_width=view_width,
view_height=view_height,
n_views_width=n_views_width,
n_views_height=n_views_height)
print(f"MD5 from PGX: {get_md5_from_pgx(lightfield=lf, pgx_path=pgx_path)}")
if __name__ == "__main__":
main()