Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • aom
  • av1parse
3 results

gst-plugins-bad

user avatar
Georg Ottinger authored and Xavier Claessens committed
This is a third preview version of the av1 codec parser library.
The library consists of the two files gstav1parser.c and gstav1parser.h
Additionally a testcase (av1parser.c) is provided. It contains a test
sequence taken from the aom testdata set, with one key and one inter-
frame. The same test sequence has been reencoded to annexb. Further for
metadata OBU and tile info OBU handcrafted testcases are provided

Feedback is highly appriciated. :)

Changes from Preview 2:

* reworked the API interface
* added support for Annex B
* added more testcases (annexb, metadata, tileinfo)
* added inline documentation
* grouped syntax elements according to function

Known issues:

* gst_av1_read_bits is testing each time for bit availability,
  this might impact performance. Tuning for performance should
  be done once the API stabilized. (imho)
* testdata is taken from aom testdata (and reencoded for annexb)
  aswell as handcrafted testcases. Once reference testdata is
  available the testing could be imporved aswell.
* This preview still needs evaluation if all syntax elements in
  the structs are relevant. I guess actuall usecases will help
  to improve the library

Changes from Preview 1:

* deCamelCased variables
* use gboolean for flags (instead of guint8)
* use memset (instead of bzero)
* reviewed against Version 1.0.0 of Spec
* Use union for different metadata OBUs
* fixed comments (/* style */)
* hide some of the flags from API
* start to support dynamic allocation of coded_tile_data (+free fn)
* start to support basic annex b size field
* added GstAV1OBUHeaderExtention type
* + other small fixes as suggested by your feedback

Open Issues from the 1st Feedback Round:

* I didn't rework the interface (including BitStreamer yet)
  I look forward to get this clear in our discussions
* not using GST_READ* macros yet

Open Questions:
* Is the library interface appropiate?
* Is it OK to use GNU C specific extentions like compound statement
  expressions? (checked with #ifdef __GNUC__)
* Is the layout of the structs holding AV1 syntax elements sensible?
* Does anybody know a good way to generate test data?
  I investigated the aom source (dump_obu only provides obu type/size
  information, inspect/AOMAnalyzer analyzes at the tile level). Till
  now I didn't find a tool in the aom source tree that analyzes the
  bitstream on a level matching the codecparser.

This work is part of a GSOC 2018 project, mentored by Intel Media And
Audio For Linux.

https://bugzilla.gnome.org/show_bug.cgi?id=796519
a821aa60
History
Name Last commit Last update