Symphonia 0.6: Rust'un ses çerçevesi multimedyaya dönüşüyor

kapanış bildirimi

Bu makale İngilizce olarak da mevcuttur. Teknik yardımla tercüme edildi ve yayınlanmadan önce editoryal olarak gözden geçirildi.

Sürüm 0.6 ile Rust Symphonia multimedya çerçevesi mimarisini kökten yeniden yapılandırıyor. Bakımcılara göre yeni sürüm iki yıllık geliştirme çalışmasını içeriyor. Amaç, şimdiye kadar öncelikli olarak ses için tasarlanan yapıyı gelecekte video ve altyazı desteğine hazırlamaktır. Symphonia 0.6, deneysel özellik işaretleri aracılığıyla henüz resmi olarak bir video kod çözücü veya altyazı içermiyor exp-video-codecs VE exp-subtitle-codecs Ancak ilk prototipler zaten mümkün ve dahili API'ler ve veri türleri buna göre genişletildi. Bu, çerçeveyi kullanan geliştiricilerin birçok büyük değişiklikle karşı karşıya olduğu anlamına gelir.

Duyurudan sonra devamını okuyun

Symphonia, Rust'ta geliştirilmiş, ses kod çözme, kapsayıcı ayrıştırma ve meta veri işlemeye odaklanan bir multimedya çerçevesidir. Açık kaynaklı proje, diğer şeylerin yanı sıra MP3, AAC, FLAC, MP4, Ogg/Vorbis ve Matroska/WebM'yi destekliyor ve kendisini Rust ekosistemi için klasik multimedya kitaplıklarına hafıza açısından güvenli bir alternatif olarak görüyor. Symphonia, ses oynatıcılarında, multimedya araçlarında veya akış hatlarında kullanılır. Resmi Symphonia belgelerine göre “Güvenli Pas” ve modüler bileşenlere vurgu yapılıyor.

Yeni sürümün merkezinde ses merkezli mimariden daha genel bir multimedya modeline geçiş yer alıyor. Bu amaçla proje, zaman damgaları, süreler ve zaman tabanlarına ilişkin temel veri türlerini yeniden tasarladı. Gelecekte Symphonia parça bilgilerini codec parametrelerinden daha net bir şekilde ayıracak: zamanlama verileri artık codec yapılarında değil, ayrı parça meta verilerinde yer alıyor. Bunun amacı, bir Matroska kapsayıcısında ses, video ve altyazı gibi birden fazla akışın işlenmesini kolaylaştırmaktır.

Bir diğer yeni özellik ise kod çözücüler ve format okuyucular için öncelik sistemidir. Uygulamalar bunu tercih edilen uygulamaları kaydetmek ve geri dönüşleri tanımlamak için kullanabilir. Bu özellikle modüler medya yığınları için ilgi çekici olacaktır; örneğin donanım kod çözücülere genel amaçlı yazılım kod çözücülere göre öncelik verilmesi gerekiyorsa.

Yeni sürümün bir diğer odak noktası ise daha verimli veri yollarıdır. Kod çözücülerin artık paket verilerini işlemeden önce kopyalamasına gerek yoktur. Harici demuxer'larla birlikte bu, yüksek performanslı medya işlem hatlarında yaygın olan benzer bir sıfır kopyalama yaklaşımı olan ek bellek işlemlerinden kaçınmaya yardımcı olur.

Meta verilerle ilgili olarak Symphonia artık ID3v1, APEv1 ve APEv2 etiketlerini de işliyor ve Matroska, ID3v2 ve Vorbis Yorumları için bölüm bilgilerini destekliyor. Çerçeve, bilinen etiketleri daha güçlü bir şekilde yazılmış bir şekilde yorumlar: artık parça numarasını yalnızca bir karakter dizisi olarak değil, doğrudan sayısal bir değer (u64) olarak okur. Medya kitaplıkları veya otomatik sıralama işlevleri bu yazma işleminden yararlanır.

Duyurudan sonra devamını okuyun

Matroska kapsayıcıları için Symphonia 0.6 ayrıca ekler ve meta veriler için destek sağlar. Ekler çoğunlukla altyazılar için, örneğin karakterleri doğrudan MKV dosyalarına gömmek için kullanılır. Bu tür dosyalar genellikle anime sürümlerinde veya özenle biçimlendirilmiş ASS altyazılarında bulunur.

Proje ayrıca sürüm notlarında güvenlik ve istikrar alanlarındaki çok sayıda iyileştirmeyi de listeliyor. Bakımcı Philip Deljanov, Matroska demuxer'ı tamamen yeniden yazdı ve ayrıca MP4 demuxer'ın bazı kısımlarını revize etti. Ayrıca fuzzing testlerine dayanan çok sayıda hata düzeltmesi de bulunmaktadır. Yanlış kapsayıcı dosyaları bellek hatalarına veya çökmelere neden olabileceğinden, özellikle medya ayrıştırıcıları geleneksel olarak güvenlik açısından kritik kabul edilir. Rust, bellek güvenliği yoluyla bu tür riskleri azaltmayı hedefliyor.

Symphonia performans açısından da ilerleme vaat ediyor. SSE, AVX ve Neon SIMD optimizasyonları artık varsayılan olarak etkindir. SIMD (Tek Talimat, Çoklu Veri), birden fazla veri değerini paralel olarak işlemek için modern CPU'ların vektör talimatlarını kullanır; bu, ses ve video kod çözücülerinde tipik bir yaklaşımdır. Sürüm notlarına göre kod çözme performansının da artması ve ikili boyutun azalması gerekiyor.

Diğer değişiklikler arasında artık yanlış sınıflandırmaları önlemek için bir puan sistemi kullanan format tanıma yer alıyor. Symphonia bir medya formatını tanırsa, bulunan meta verileri ilgili formattaki oynatıcıya iletecektir. Geliştiriciler ayrıca AIFF ve CAF için uygulamaları da revize etti.

Çok sayıda API değişikliği nedeniyle bakımcı özellikle geçiş kılavuzuna atıfta bulunur. Ek olarak proje ilk kez resmi bir MSRV politikası getiriyor: desteklenen minimum Rust sürümündeki artış, gelecekte temel bir değişiklik olarak değerlendirilecektir. GitHub'daki Symphonia 0.6.0 sürüm notları tüm yeniliklere eksiksiz bir genel bakış sunuyor.

Ayrıca okuyun


(fo)


Yayımlandı

kategorisi

yazarı:

Etiketler:

Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir