[vlc-devel] [PATCH]: HEVC/H.265 decoder using libde265

Joachim Bauch jojo at struktur.de
Wed May 7 18:03:44 CEST 2014


Hello,

On 07.05.2014 17:12, Rémi Denis-Courmont wrote:
> contrib and module should be separate patches.

ok.

> Also...

Thanks for your feedback, comments see below.

Best regards,
  Joachim

[...]
> +.sum-libde265: libde265-$(LIBDE265_VERSION).tar.gz
> +    $(warning $@ not implemented)
> 
> WTH is that not implemented?

Will be added.

[...]
> --- a/extras/package/ios/build.sh
> +++ b/extras/package/ios/build.sh
> @@ -224,6 +224,7 @@ echo "EXTRA_CFLAGS += ${EXTRA_CFLAGS}" >> config.mak
>  echo "EXTRA_LDFLAGS += ${EXTRA_LDFLAGS}" >> config.mak
>  make fetch
>  make
> +make .libde265
> 
> I'm not familiar with iOS, but this is dubious.
[...]
> --- a/extras/package/macosx/build.sh
> +++ b/extras/package/macosx/build.sh
> @@ -116,6 +116,7 @@ mkdir -p build && cd build
>  ../bootstrap --build=$TRIPLET --host=$TRIPLET > $out
>  if [ ! -e "../$TRIPLET" ]; then
>      make prebuilt > $out
> +    make .libde265 > $out
> 
> Ditto.

As libde265 is not included in the prebuilt tarball, it has to be
compiled manually.

[...]
> +
> +vlc_module_begin ()
> +    set_shortname("libde265dec")
> 
> Do we assume this is never localized? Not everybody uses the Latin
> alphabet.

Will be changed.

[...]
> +    block_t *block = *pp_block;
> +    if (!block)
> +        return NULL;
> 
> I think pp_block can be NULL to trigger flushing nowadays, but I am not
> sure.

Where can I find information about this? I checked other codecs which
also just return for a NULL block.

[...]
> +    if (!dec->b_pace_control && (sys->late_frames > 0) &&
> +        (mdate() - sys->late_frames_start >
> INT64_C(LATE_FRAMES_DROP_ALWAYS_AGE*1000000))) {
> 
> Use CLOCK_FREQ.

Thanks, will change this.

[...]
> +        int size = __MIN( src_stride, dst_stride );
> +        for( int line = 0; line < pic->p[plane].i_visible_lines; line++
> ) {
> +            memcpy( dst, src, size );
> 
> Ouch... can't this library decode directly to the picture buffers?
> 
> This is especially bad with a precedence higher than libavcvodec's...

Unfortunately not, but we have this on the roadmap for a later version
of the library.

[...]
> +error:
> +    if (*pp_block != NULL) {
> 
> Tautology?

Yes, will change this.

[...]
> +    int threads = __MIN(vlc_GetCPUCount() * 2, MAX_THREAD_COUNT);
> +    if (threads > 1) {
> 
> Seems like a tautology.

Yes, will change this.





More information about the vlc-devel mailing list