archives: avoid collapsing archive with single folder

We have historically used the m_bIsFolder after this as a flag,
to skip display of file. For example for rar 00X part files.

By not collopsing single folders, we can properly browse into
them again.
[bluray] Indentation cosmetics.
[bluray] Add debug logging.
[Fix][bluray] bd_menu_call( , ) returns 0 in case of a failure.
Merge pull request #4050 from elupus/archivefolder

archives: avoid collapsing archive with single folder
[Fix][bluray] BD_EVENT_MENU and BD_EVENT_IDLE are independent of HAVE_LIBBLURAY_BDJ.
[Fix][bluray] Add HAVE_LIBBLURAY guard to BlurayDirectory.cpp.
[Fix][bluray] Fix infinite loop if (next) bluray title can not be played.
For example this can happen when the next title is a bd-j title and libbluray has no bd-j support compiled in.
[bluray] Make the infinite loop fix work with libbluray 0.2.1.
[bluray] Disable menu icon of the VideoOSD if a bluray is played in non nav mode.
[Fix][bluray/geometry] Fix compiler warning about float -> int and int -> float conversions.
[gui] fix setting state on controls inside groups inside containers. fixes #14295
[smartplaylist] fix incorrect field used for Studio/MPAA fields for episodes. fixes #14875
[gui] don't use auto-sized width/height to calculate the size of the parent (in particular, grouplists auto-size currently)
Merge pull request #4003 from ace20022/bluray_fixes1

[bluray] Some fixes/improvements of bluray nav mode.
[3D] Support switching to 3D resolutions

Include matching 3D flags (SBS/TAB) in the score of a resolution to switch to, to enable switching to 3d modes.
Also remove the old code that treated 3D modes differently when assigning a score.

I've also added a small weight to higher multiples of the desired framerate, so if display supports 30, 60 and 120Hz
and the video is 30fps then 30 will now be chosen rather than 120. This reduces the overhead of rendering the gui.
[confluence] Use animated gif as a cheaper working spinner
[rbp/omxplayer] Do we need discontinuity handling?

So far I've not seen what this is needed for and it does cause problems for some files.
h264_parser: Initialize the h264dsp context in the parser as well

Each AVStream struct for an H.264 elementary stream actually has two
copies of the H264DSPContext struct (and in fact all the other members
of H264Context as well):

((H264Context *) ((AVStream *)st)->codec->priv_data)->h264dsp
((H264Context *) ((AVStream *)st)->parser->priv_data)->h264dsp

but only the first of these was actually being initialised. This
prevented the addition of platform-specific implementations of
parser-related functions.

Signed-off-by: Martin Storsjö <martin@martin.st>
h264dsp: Factorize code into a new function, h264_find_start_code_candidate

This performs the start code search which was previously part of
h264_find_frame_end() - the most CPU intensive part of the function.

By itself, this results in a performance regression:
              Before          After
              Mean   StdDev   Mean   StdDev  Change
Overall time  2925.6 26.2     3068.5 31.7    -4.7%

but this can more than be made up for by platform-optimised
implementations of the function.

Signed-off-by: Martin Storsjö <martin@martin.st>