# Changelog ## v1.0.4 ### Features - Added `esp_player_get_state()` and public `esp_player_state_t` for authoritative playback state queries ### Bug Fixes - Fixed crash and seek stall from incorrect extractor frame release - Fixed video decoder reopen with wrong decoded pixel format - Fixed `player_cmd` task abort on deinit - Fixed stale input IO after stop/finish when the same URI is replayed - Fixed brief leftover audio from the previous track after pause, stop, and play a new URI ## v1.0.3 ### Changes - Moved default player task stacks to external memory - Updated audio and video performance data ### Bug Fixes - Fixed playback time after seeking when no frame is output - Fixed fill-mode frame submission timeout handling - Fixed extractor busy loops while waiting for output ## v1.0.2 ### Features - Added `esp_player_enable_id3_parse()` to make ID3 parsing optional - Added `esp_player_get_id3_info()` for bare MP3 sources - Added tests for config/sync/ID3 APIs, seek and event paths, error recovery, and concurrency ### Bug Fixes - Fixed `esp_player_frame_t.pts` unit documentation to milliseconds - Fixed redundant `esp_codec_dev` codec chip options restriction from audio/video player example `sdkconfig.defaults` ## v1.0.1~1 ### Docs - Updated example README files to use the latest ESP Board Manager board selection commands and board names ## v1.0.1 ### Changes - Updated GMF component dependencies from `^0.8` to `^1.0` for the ESP-GMF 1.0 release ### Bug Fixes - Removed extra done_write in audio decoder stop - Added input state enum to avoid io retry open when failed - Fixed video decoder pause timeout on seek ## v1.0.0 ### Features - Initial version of `esp_player`