Baseline: WPF/Avalonia/Cli/Core + plans (BROWSER_FEATURES_PLAN v2, MOBILE_PLAN v1)

This commit is contained in:
Yun Chan 2026-08-15 11:59:25 +09:00
commit 21b7c4d8bd
60 changed files with 6581 additions and 0 deletions

View file

@ -0,0 +1,21 @@
namespace VideoDownloader.Core.Models;
public enum PlaylistType { Master, Media }
/// <summary>마스터 재생목록의 변환(화질) 항목</summary>
public record Variant(Uri Url, int Bandwidth, string Resolution, string Codecs);
/// <summary>HLS AES-128 키 정보 (EXT-X-KEY)</summary>
public record KeyInfo(Uri? KeyUri, string? Iv);
/// <summary>미디어 세그먼트</summary>
public record Segment(Uri Url, int Index, long Sequence, KeyInfo? Key);
/// <summary>m3u8 파싱 결과</summary>
public record ParsedPlaylist
{
public PlaylistType Type { get; init; }
public IReadOnlyList<Variant> Variants { get; init; } = Array.Empty<Variant>();
public IReadOnlyList<Segment> Segments { get; init; } = Array.Empty<Segment>();
public Uri? InitSegment { get; init; } // #EXT-X-MAP (fMP4 초기화 세그먼트)
}