[FFmpeg-devel] [PATCH] avcodec/h264_slice: don't sync default_ref[] between threads.

Wan-Teh Chang wtc at google.com
Wed Jul 19 05:09:50 EEST 2017


I researched the history of the line in h264_slice.c that this patch deleted.

That line was implicitly added in commit
4da2ac5c7a491b20be62ad19d77526e62aa57c69:

http://git.videolan.org/gitweb.cgi/ffmpeg.git/?p=ffmpeg.git;a=patch;h=4da2ac5c7a491b20be62ad19d77526e62aa57c69

Although commit 4da2ac5c7a491b20be62ad19d77526e62aa57c69 didn't modify
h264_slice.c, the copy_fields macro call in
ff_h264_update_thread_context() would copy the new default_ref[] field
of H264Context. The copying of default_ref[] was made explicit in
commit 98456d4d69e0fdcc328bb9e684ae776f5bc824e1, which replaced the
copy_fields macro with field-by-field copies.

http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=98456d4d69e0fdcc328bb9e684ae776f5bc824e1

Commit 4da2ac5c7a491b20be62ad19d77526e62aa57c69 makes it clear that
the default_ref[] field of H264Context is supposed to be initialized
(to values from the associated H264SliceContext) in
h264_initialise_ref_list(), so it should not be propagated from one
decoding thread to the next.

Wan-Teh Chang


More information about the ffmpeg-devel mailing list