Skip to content
Snippets Groups Projects
  1. Apr 08, 2022
  2. Apr 07, 2022
    • James Almer's avatar
      picture: ensure the new seq header and op param info flags are attached to the... · 9bd8350a
      James Almer authored
      picture: ensure the new seq header and op param info flags are attached to the next visible picture in display order
      
      If the first picture in coding order after a new sequence header is parsed is
      not visible, the first picture output by dav1d after the fact (which is coded
      after the aforementioned invisible picture) would not trigger the new seq
      header event flag as expected, despite being the first containing a reference
      to a new sequence header.
      
      Assuming the invisible picture is ever output, the result of this change will
      be two pictures signaling a new sequence header was seen despite there being
      only one new sequence header.
      9bd8350a
  3. Mar 31, 2022
  4. Mar 19, 2022
  5. Mar 18, 2022
  6. Mar 16, 2022
    • Wan-Teh Chang's avatar
      Set f->n_tile_data to 0 in dav1d_decode_frame() · 56e7ffc0
      Wan-Teh Chang authored and James Almer's avatar James Almer committed
      Set f->n_tile_data to 0 after the dav1d_decode_frame_exit() call in
      dav1d_decode_frame(). dav1d_decode_frame_exit() unrefs every element in
      use in the f->tile array, so it is good to set f->n_tile_data to 0 to
      indicate that no elements are in use.
      
      We are already doing this after all other dav1d_decode_frame_exit()
      calls.
      
      NOTE: It is tempting to have dav1d_decode_frame_exit() itself set
      f->n_tile_data to 0. I did not do that in this merge request, because
      the following is a common pattern:
      
          dav1d_decode_frame_exit(f, error);
          f->n_tile_data = 0;
          pthread_cond_signal(&f->task_thread.cond);
      
      corresponding to the waiting code:
      
          while (f->n_tile_data > 0)
              pthread_cond_wait(&f->task_thread.cond,
                                &c->task_thread.lock);
      
      I wonder if f->n_tile_data is set to 0 outside dav1d_decode_frame_exit()
      to make clear the association of f->n_tile_data with the condition
      variable f->task_thread.cond.
      56e7ffc0
  7. Mar 15, 2022
  8. Mar 13, 2022
  9. Mar 10, 2022
  10. Mar 09, 2022
  11. Mar 08, 2022
  12. Mar 07, 2022
  13. Mar 04, 2022
  14. Mar 01, 2022
  15. Feb 28, 2022
  16. Feb 27, 2022
  17. Feb 26, 2022
  18. Feb 25, 2022
    • Wan-Teh Chang's avatar
      Remove redundant unref of c->in in close_internal · 54a4dbb5
      Wan-Teh Chang authored and James Almer's avatar James Almer committed
      The dav1d_data_unref_internal(&c->in) call in close_internal() is
      redundant because dav1d_flush() already calls
      dav1d_data_unref_internal(&c->in).
      
      Note that when dav1d_open() calls close_internal() with flush=0 to free
      a newly constructed Dav1dContext, it is not necessary to unref c->in.
      54a4dbb5
    • Wan-Teh Chang's avatar
      Unreference c->cache in dav1d_flush() · 65953c86
      Wan-Teh Chang authored
      Fix memory leaks. The 'Dav1dThreadPicture cache' member was added to
      struct Dav1dContext in commit f9844476.
      But it is not unreferenced in dav1d_flush() or dav1d_close().
      
      James Almer pointed out that we should unreference c->out too in
      dav1d_flush().
      65953c86
Loading