SDV Medya Şartları

Bu belgedeki ZORUNLU (MUST), ZORUNLU DEĞİL (MUST NOT), GEREKLİ (SHOULD) ve ŞİDDETLE TAVSİYE EDİLİR (STRONGLY RECOMMENDED) anahtar kelimeleri, RFC 2119'da açıklandığı şekilde yorumlanmalıdır.

Konuk sistemi (sanal makine görüntüsü)

Bu bölümdeki şartlar misafir sistemi için geçerlidir.

Bellek

Sistem, VM başına en az 2 GB bellek sağlamalıdır.

Uygulama ikili arabirimleri

Cihaz uygulamaları:

  • Tanımlanmış bir veya daha fazla Android NDK ABI'si ile uyumlu OLMALIDIR.
  • Aynı cihazdaki tüm VM görüntüleri için aynı Android NDK ABI'yi kullanmalıdır.
  • Aşağıdaki listede yer alan her bir gerekli kitaplıkla kaynak uyumlu (ör. başlık uyumlu) ve ikili uyumlu (ABI için) OLMALIDIR.
  • Yerel API'ler sağlayan aşağıdaki tüm kitaplıkları SDV uygulamalarına sunmalıdır:
    • libc (C kitaplığı)
    • libdl (dinamik bağlayıcı)
    • libdrm.so (Direct Rendering Manager kullanıcı alanı kitaplığı)
    • libgbm.so (Genel Tampon Yönetimi)
    • libEGL.so (yerel OpenGL yüzey yönetimi)
    • libGLESv1_CM.so (OpenGL ES 1.x)
    • libGLESv2.so (OpenGL ES 2.0)
    • libGLESv3.so (OpenGL ES 3.x)
    • liblog (Android günlük kaydı)
    • libtinyalsav2.so (ses kaydı ve oynatma)
    • libvulkan.so (Vulkan)
  • Önceki yerel kitaplıklar için herkese açık işlevler eklenmemeli veya kaldırılmamalıdır.
  • NDK'da tanımlandığı şekilde, libGLESv3.so kitaplığı aracılığıyla tüm OpenGL ES 3.1 ve Android Extension Pack işlev sembollerini dışa aktarmalıdır. Tüm sembollerin bulunması GEREKTİĞİNİ ancak OpenGL ES'nin her bir ilgili işlevin tam olarak uygulanmasının beklendiği durumlarla ilgili gereksinimleri daha ayrıntılı olarak açıkladığını unutmayın.
  • VK_KHR_surface, VK_KHR_swapchain, VK_KHR_maintenance1 ve VK_KHR_get_physical_device_properties2 uzantılarının yanı sıra temel Vulkan 1.1 işlev sembollerini libvulkan.so kitaplığı aracılığıyla dışa aktarmalıdır. Tüm sembollerin bulunması GEREKTİĞİNİ unutmayın. Vulkan, her bir karşılık gelen işlevin tam olarak uygulanmasının beklendiği zamanlarla ilgili şartları daha ayrıntılı bir şekilde açıklar.
  • Yukarı akış Android Açık Kaynak Projesi'nde bulunan kaynak kodu ve başlık dosyaları kullanılarak oluşturulmalıdır.

Grafik

  • Sistem, donanım hızlandırmalı grafikler için virtio-gpu kullanmalıdır. Konuk tarafı sürücüsü, oluşturma için gfxstream kullanmalıdır.

Giriş

Konuk sistemi, virtio-input kullanılarak ana makine sisteminden iletilen giriş etkinlikleri için destek içermelidir.

OpenGL ES

Cihaz uygulamaları:

  • Yerel API'ler aracılığıyla desteklenen OpenGL ES sürümlerini (1.1, 2.0, 3.0, 3.1, 3.2) doğru şekilde tanımlamalıdır.
  • Destekledikleri her OpenGL ES sürümü için ilgili tüm yerel API'lerin desteğini İÇERMELİDİR.
  • Hem OpenGL ES 1.1 hem de 2.0 desteklenmelidir.
  • OpenGL ES 3.1'i desteklemesi ÖNEMLE TAVSİYE EDİLİR.
  • OpenGL ES 3.2'yi DESTEKLEMELİDİR.
  • OpenGL ES'in yönetilen API'lerini ve yerel API'lerini kullanarak, uyguladıkları diğer OpenGL ES uzantılarını bildirmelidir. Desteklemedikleri uzantı dizelerini bildirmemelidir.
  • Aşağıdaki uzantıları DESTEKLEMELİDİR:
    • EGL_EXT_image_dma_buf_import
    • EGL_EXT_image_dma_buf_import_modifiers
    • EGL_KHR_fence_sync
    • EGL_KHR_image_base
    • EGL_KHR_wait_sync
    • GL_OES_EGL_image

Cihaz uygulamalarında, Vulkan arka ucuyla ANGLE kitaplığı kullanılarak OpenGL ES'nin uygulanması ŞİDDETLE TAVSİYE EDİLİR.

Vulkan

Cihaz uygulamaları:

  • Vulkan 1.3 desteği eklemeleri KESİNLİKLE ÖNERİLİR.
  • Vulkan varyant sürümünü desteklememelidir (yani Vulkan çekirdek sürümünün varyant kısmı sıfır olmalıdır).
  • Aşağıdaki uzantıları DESTEKLEMELİDİR:
    • VK_ANDROID_external_memory_android_hardware_buffer
    • VK_EXT_external_memory_dma_buf
    • VK_EXT_queue_family_foreign
    • VK_KHR_external_memory_fd
    • VK_KHR_external_semaphore_fd

Multimedya uyumluluğu

  • Cihaz uygulamaları, aşağıdaki özelliklere sahip ham ses içeriklerinin oynatılmasına İZİN VERMELİDİR:

    • Kaynak biçimleri: Doğrusal PCM, 16 bit, 8 bit, kayan nokta
    • Kanallar: Mono, stereo, sekiz kanala kadar geçerli çok kanallı yapılandırmalar
    • Örnekleme hızları (Hz cinsinden):
      • Daha önce listelenen kanal yapılandırmalarında 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
      • Mono ve stereo olarak 96000
  • Cihaz uygulamaları, ham ses içeriğinin yakalanmasına İZİN VERMELİDİR. Cihaz uygulamaları en azından aşağıdaki özellikleri desteklemelidir:

    • Biçim: Doğrusal PCM, 16 bit
    • Örnekleme hızları: 8000, 11025, 16000, 44100, 48000 Hz
    • Kanallar: Mono
  • Cihaz uygulamaları, aşağıdaki özelliklere sahip ham ses içeriğinin yakalanmasına İZİN VERMELİDİR:

    • Biçim: Doğrusal PCM, 16 bit ve 24 bit
    • Örnekleme hızları: 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 Hz
    • Kanallar: Cihazdaki mikrofon sayısı kadar kanal
  • Cihaz uygulamaları, donanım erişimi için virtio-sound cihazını kullanarak libtinyalsav2.so API'si aracılığıyla ses çalma ve kaydetme desteği sağlamalı ve ALSA API'yi desteklemelidir.

  • Video kodlayıcılar ve kod çözücüler, düzlemsel veya yarı düzlemsel YUV420 8:8:8 renk biçimlerinden en az birini desteklemelidir.

  • Video kod çözücüleri ve kodlayıcıları H.264 AVC codec'ini DESTEKLEMELİDİR.

  • Cihaz uygulamaları, H.264 Main Profile Level 3.1 ve Baseline Profile'ı DESTEKLEMELİDİR. Rastgele dilim sıralaması (ASO), esnek makroblok sıralaması (FMO) ve yedekli dilimler (RS) için destek isteğe bağlıdır.

  • Video kodlayıcılar:

    • Aşağıdaki tabloda yer alan standart çözünürlüklü (SD) video kodlama profillerini DESTEKLEMELİDİR.
    • Aşağıdaki tabloda belirtildiği gibi yüksek çözünürlüklü (HD) video kodlama profillerini DESTEKLEMELİDİR.

      SD (düşük kalite) SD (yüksek kalite) HD 720p HD 1080p
      Video çözünürlüğü 320 x 240 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel
      Video kare hızı 20 fps 30 fps 30 fps 30 fps
      Video bit hızı 384 Kb/sn 2 Mb/sn 4 Mb/sn 10 Mb/sn
  • Video kod çözücüler:

    • Aşağıdaki tabloda yer alan HD 720p video kod çözme profillerini DESTEKLEMELİDİR.
    • Aşağıdaki tabloda yer alan HD 1080p video kod çözme profillerini DESTEKLEMELİDİR.

      SD (düşük kalite) SD (yüksek kalite) HD 720p HD 1080p
      Video çözünürlüğü 320 x 240 piksel 720 x 480 piksel 1280 x 720 piksel 1920 x 1080 piksel
      Video kare hızı 30 fps 30 fps 60 fps 30 fps
      Video bit hızı 800 Kb/sn 2 Mb/sn 8 Mb/sn 20 Mb/sn
  • Cihaz uygulamaları, Video4Linux API'yi kullanarak medya codec'leri için destek sağlamalıdır.

  • Cihaz uygulamaları, Video4Linux API'sini kullanarak donanım video kod çözücüsüne erişim sağlamalıdır.

  • Donanımla hızlandırılmış tüm video ve görüntü kodlayıcılar, donanım kameralarından gelen karelerin kodlanmasını DESTEKLEMELİDİR. Cihaz uygulamaları, virtio-media aracılığıyla video kodlama ve kod çözme için donanım erişimi SAĞLAMALIDIR.

  • Cihaz uygulamaları, Video4Linux API'sini kullanarak video kameraya erişim sağlamalıdır.

Ana makine sistemi (hipervizör ve donanım)

Bu bölümdeki şartlar, ana sistem ve hiper yönetici ortamı için geçerlidir.

Sanallaştırma

  • Temel profil için gerekli olan virtio cihazlara ek olarak, ana sistem AŞAĞIDAKİLERİ sağlamalıdır:
    • virtio-gpu: Sanal GPU ve ekran için
    • virtio-input: Giriş etkinliklerini (ör. dokunma, klavye) yönlendirmek için
    • virtio-sound: Sanal ses cihazları için
    • virtio-video veya virtio-media: Sanal video codec cihazları için

Giriş

  • Cihaz, giriş cihazlarını desteklemeli ve virtio-input kullanarak etkinlikleri misafir sistemlere yönlendirmelidir. Cihaz; işaretçi, düğme ve döner kontrol cihazı girişlerini desteklemelidir.