[vlc-commits] mp4: save the multiview_mode meta-data encoded with the spatial media specification v1
vlc | branch: master | Adrien Maglo| Wed Jul 26 21:24:27 2017 +0200| [0fe27309aedb10c01288a41dcd9556efa12618a4] | committer: Francois Cartegnie mp4: save the multiview_mode meta-data encoded with the spatial media specification v1 https://github.com/google/spatial-media/blob/master/docs/spherical-video-rfc.md#stereo-mode Signed-off-by: Francois Cartegnie > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0fe27309aedb10c01288a41dcd9556efa12618a4 --- modules/demux/mp4/essetup.c | 14 ++ modules/demux/mp4/libmp4.c | 6 ++ modules/demux/mp4/libmp4.h | 5 + 3 files changed, 25 insertions(+) diff --git a/modules/demux/mp4/essetup.c b/modules/demux/mp4/essetup.c index 94ae10c7e2..8e53e204f4 100644 --- a/modules/demux/mp4/essetup.c +++ b/modules/demux/mp4/essetup.c @@ -356,7 +356,21 @@ int SetupVideoES( demux_t *p_demux, mp4_track_t *p_track, MP4_Box_t *p_sample ) if( p_uuid->i_type == ATOM_uuid && !CmpUUID( _uuid->i_uuid, ) && p_uuid->data.p_360 ) +{ p_track->fmt.video.projection_mode = p_uuid->data.p_360->i_projection_mode; +switch (p_uuid->data.p_360->e_stereo_mode) +{ +case XML360_STEREOSCOPIC_TOP_BOTTOM: +p_track->fmt.video.multiview_mode = MULTIVIEW_STEREO_TB; +break; +case XML360_STEREOSCOPIC_LEFT_RIGHT: +p_track->fmt.video.multiview_mode = MULTIVIEW_STEREO_SBS; +break; +default: +p_track->fmt.video.multiview_mode = MULTIVIEW_2D; +break; +} +} } const MP4_Box_t *p_st3d = MP4_BoxGet( p_sample, "st3d" ); diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c index ba9fe06fda..7f85541332 100644 --- a/modules/demux/mp4/libmp4.c +++ b/modules/demux/mp4/libmp4.c @@ -742,10 +742,16 @@ static int MP4_ReadBox_XML360( stream_t *p_stream, MP4_Box_t *p_box ) /* Try to find the stero mode. */ if ( strcasestr( psz_rdf, "left-right" ) ) +{ msg_Dbg( p_stream, "Left-right stereo mode" ); +p_360_data->e_stereo_mode = XML360_STEREOSCOPIC_LEFT_RIGHT; +} if ( strcasestr( psz_rdf, "top-bottom" ) ) +{ msg_Dbg( p_stream, "Top-bottom stereo mode" ); +p_360_data->e_stereo_mode = XML360_STEREOSCOPIC_TOP_BOTTOM; +} free( psz_rdf ); diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h index 56f71c0309..a37d6fd0da 100644 --- a/modules/demux/mp4/libmp4.h +++ b/modules/demux/mp4/libmp4.h @@ -1579,6 +1579,11 @@ typedef struct typedef struct { uint32_t i_projection_mode; +enum { +XML360_MONOSCOPIC = 0, +XML360_STEREOSCOPIC_TOP_BOTTOM = 1, +XML360_STEREOSCOPIC_LEFT_RIGHT = 2, +} e_stereo_mode; } MP4_Box_data_360_t; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: mp4: enable 3DDS multiview
vlc | branch: master | Francois Cartegnie| Wed Jul 26 23:51:05 2017 +0200| [eb46716d050c28af2132e4f59c34f0ca5b6ff127] | committer: Francois Cartegnie demux: mp4: enable 3DDS multiview Early PS3 sequential 3D > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=eb46716d050c28af2132e4f59c34f0ca5b6ff127 --- modules/demux/mp4/essetup.c | 16 1 file changed, 16 insertions(+) diff --git a/modules/demux/mp4/essetup.c b/modules/demux/mp4/essetup.c index 6f995568a7..94ae10c7e2 100644 --- a/modules/demux/mp4/essetup.c +++ b/modules/demux/mp4/essetup.c @@ -378,6 +378,22 @@ int SetupVideoES( demux_t *p_demux, mp4_track_t *p_track, MP4_Box_t *p_sample ) break; } } +else +{ +for( p_uuid = MP4_BoxGet( p_sample, "uuid" ); p_uuid; + p_uuid = p_uuid->p_next ) +{ +if( p_uuid->i_type == ATOM_uuid && + !CmpUUID( _uuid->i_uuid, ) && +p_uuid->data.p_binary && +p_uuid->data.p_binary->i_blob == 4 && +!memcmp( p_uuid->data.p_binary->p_blob, "\x82\x81\x10\x02", 4 ) ) +{ +p_track->fmt.video.multiview_mode = MULTIVIEW_STEREO_FRAME; +break; +} +} +} const MP4_Box_t *p_prhd = MP4_BoxGet( p_sample, "sv3d/proj/prhd" ); if (p_prhd && BOXDATA(p_prhd)) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] packetizer: hxxx: parse frame_packing
vlc | branch: master | Francois Cartegnie| Wed Jul 26 21:41:51 2017 +0200| [89347c3e2d67bc0b42e24fa6fd51d2a870f41f33] | committer: Francois Cartegnie packetizer: hxxx: parse frame_packing > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=89347c3e2d67bc0b42e24fa6fd51d2a870f41f33 --- modules/packetizer/hxxx_sei.c | 19 +++ modules/packetizer/hxxx_sei.h | 20 2 files changed, 39 insertions(+) diff --git a/modules/packetizer/hxxx_sei.c b/modules/packetizer/hxxx_sei.c index e1529bf654..393d07f3a7 100644 --- a/modules/packetizer/hxxx_sei.c +++ b/modules/packetizer/hxxx_sei.c @@ -135,6 +135,25 @@ void HxxxParseSEI(const uint8_t *p_buf, size_t i_buf, free( p_t35 ); } break; +case HXXX_SEI_FRAME_PACKING_ARRANGEMENT: +{ +bs_read_ue( ); +if ( !bs_read1( ) ) +{ +sei_data.frame_packing.type = bs_read( , 7 ); +bs_read( , 1 ); +if( bs_read( , 6 ) == 2 ) /*intpr type*/ +sei_data.frame_packing.b_left_first = false; +else +sei_data.frame_packing.b_left_first = true; +sei_data.frame_packing.b_flipped = bs_read1( ); +sei_data.frame_packing.b_fields = bs_read1( ); +sei_data.frame_packing.b_frame0 = bs_read1( ); +} +else sei_data.frame_packing.type = FRAME_PACKING_CANCEL; + +} break; + /* Look for SEI recovery point */ case HXXX_SEI_RECOVERY_POINT: { diff --git a/modules/packetizer/hxxx_sei.h b/modules/packetizer/hxxx_sei.h index e2f1603361..6691fb8b67 100644 --- a/modules/packetizer/hxxx_sei.h +++ b/modules/packetizer/hxxx_sei.h @@ -26,6 +26,7 @@ enum hxxx_sei_type_e HXXX_SEI_PIC_TIMING = 1, HXXX_SEI_USER_DATA_REGISTERED_ITU_T_T35 = 4, HXXX_SEI_RECOVERY_POINT = 6, +HXXX_SEI_FRAME_PACKING_ARRANGEMENT = 45, HXXX_SEI_MASTERING_DISPLAY_COLOUR_VOLUME = 137, /* SMPTE ST 2086 */ HXXX_SEI_CONTENT_LIGHT_LEVEL = 144, }; @@ -55,6 +56,25 @@ typedef struct } itu_t35; struct { +enum +{ +FRAME_PACKING_CANCEL = -1, +FRAME_PACKING_INTERLEAVED_CHECKERBOARD = 0, +FRAME_PACKING_INTERLEAVED_COLUMN, +FRAME_PACKING_INTERLEAVED_ROW, +FRAME_PACKING_SIDE_BY_SIDE, +FRAME_PACKING_TOP_BOTTOM, +FRAME_PACKING_TEMPORAL, +FRAME_PACKING_NONE_2D, +FRAME_PACKING_TILED, +} type; +bool b_flipped; +bool b_left_first; +bool b_fields; +bool b_frame0; +} frame_packing; +struct +{ int i_frames; } recovery; struct ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] packetizer: mpegvideo: parse/set multiview
vlc | branch: master | Francois Cartegnie| Wed Jul 26 22:55:51 2017 +0200| [d23e9e287c468e3c32021e3007203606e7c368e7] | committer: Francois Cartegnie packetizer: mpegvideo: parse/set multiview untested > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=d23e9e287c468e3c32021e3007203606e7c368e7 --- modules/packetizer/mpegvideo.c | 21 - 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/modules/packetizer/mpegvideo.c b/modules/packetizer/mpegvideo.c index e4c9cbc8d0..a116839193 100644 --- a/modules/packetizer/mpegvideo.c +++ b/modules/packetizer/mpegvideo.c @@ -817,8 +817,27 @@ static block_t *ParseMPEGBlock( decoder_t *p_dec, block_t *p_frag ) } } -else if( p_frag->p_buffer[3] == 0xb2 && p_frag->i_buffer > 4 ) +else if( p_frag->p_buffer[3] == 0xb2 && p_frag->i_buffer > 8 ) { +/* Frame Packing extension identifier as H262 2012 Amd4 Annex L */ +if( !memcmp( _frag->p_buffer[4], "JP3D", 4 ) && +p_frag->i_buffer > 11 && p_frag->p_buffer[8] == 0x03 && +p_dec->fmt_in.video.multiview_mode == MULTIVIEW_2D ) +{ +video_multiview_mode_t mode; +switch( p_frag->p_buffer[9] & 0x7F ) +{ +case 0x03: +mode = MULTIVIEW_STEREO_SBS; break; +case 0x04: +mode = MULTIVIEW_STEREO_TB; break; +case 0x08: +default: +mode = MULTIVIEW_2D; break; +} +p_dec->fmt_out.video.multiview_mode = mode; +} +else cc_ProbeAndExtract( _sys->cc, p_sys->i_top_field_first, _frag->p_buffer[4], p_frag->i_buffer - 4 ); } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] packetizer: h264: set multiview
vlc | branch: master | Francois Cartegnie| Wed Jul 26 21:42:06 2017 +0200| [adec0c3850f8342bf42baca5c0dd20df13232045] | committer: Francois Cartegnie packetizer: h264: set multiview > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=adec0c3850f8342bf42baca5c0dd20df13232045 --- modules/packetizer/h264.c | 27 +++ 1 file changed, 27 insertions(+) diff --git a/modules/packetizer/h264.c b/modules/packetizer/h264.c index 0ed0de91d4..f219253e07 100644 --- a/modules/packetizer/h264.c +++ b/modules/packetizer/h264.c @@ -1101,6 +1101,33 @@ static bool ParseSeiCallback( const hxxx_sei_data_t *p_sei_data, void *cbdata ) } } break; +case HXXX_SEI_FRAME_PACKING_ARRANGEMENT: +{ +if( p_dec->fmt_in.video.multiview_mode == MULTIVIEW_2D ) +{ +video_multiview_mode_t mode; +switch( p_sei_data->frame_packing.type ) +{ +case FRAME_PACKING_INTERLEAVED_CHECKERBOARD: +mode = MULTIVIEW_STEREO_CHECKERBOARD; break; +case FRAME_PACKING_INTERLEAVED_COLUMN: +mode = MULTIVIEW_STEREO_COL; break; +case FRAME_PACKING_INTERLEAVED_ROW: +mode = MULTIVIEW_STEREO_ROW; break; +case FRAME_PACKING_SIDE_BY_SIDE: +mode = MULTIVIEW_STEREO_SBS; break; +case FRAME_PACKING_TOP_BOTTOM: +mode = MULTIVIEW_STEREO_TB; break; +case FRAME_PACKING_TEMPORAL: +mode = MULTIVIEW_STEREO_FRAME; break; +case FRAME_PACKING_TILED: +default: +mode = MULTIVIEW_2D; break; +} +p_dec->fmt_out.video.multiview_mode = mode; +} +} break; + /* Look for SEI recovery point */ case HXXX_SEI_RECOVERY_POINT: { ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: libmp4: add and parse 3DDS uuid
vlc | branch: master | Francois Cartegnie| Wed Jul 26 23:53:39 2017 +0200| [9e8a1481e95d8165f0fd6538f9a12f393a5e8cc3] | committer: Francois Cartegnie demux: libmp4: add and parse 3DDS uuid > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9e8a1481e95d8165f0fd6538f9a12f393a5e8cc3 --- modules/demux/mp4/libmp4.c | 2 ++ modules/demux/mp4/libmp4.h | 5 + 2 files changed, 7 insertions(+) diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c index 254ac79c57..ba9fe06fda 100644 --- a/modules/demux/mp4/libmp4.c +++ b/modules/demux/mp4/libmp4.c @@ -4174,6 +4174,8 @@ static int MP4_ReadBox_uuid( stream_t *p_stream, MP4_Box_t *p_box ) return MP4_ReadBox_tfxd( p_stream, p_box ); if( !CmpUUID( _box->i_uuid, ) ) return MP4_ReadBox_XML360( p_stream, p_box ); +if( !CmpUUID( _box->i_uuid, ) && p_box->i_size == 28 ) +return MP4_ReadBox_Binary( p_stream, p_box ); #ifdef MP4_VERBOSE msg_Warn( p_stream, "Unknown uuid type box: " diff --git a/modules/demux/mp4/libmp4.h b/modules/demux/mp4/libmp4.h index 7d7285b4b2..56f71c0309 100644 --- a/modules/demux/mp4/libmp4.h +++ b/modules/demux/mp4/libmp4.h @@ -1896,6 +1896,11 @@ static const UUID_t XML360BoxUUID = { { 0xff, 0xcc, 0x82, 0x63, 0xf8, 0x55, 0x4a, 0x93, 0x88, 0x14, 0x58, 0x7a, 0x02, 0x52, 0x1f, 0xdd } }; +/* PS3 3D by HMMP video encoder */ +static const UUID_t PS3DDSBoxUUID = { +{ 0x33, 0x44, 0x44, 0x53, 0x21, 0xd2, 0x4f, 0xce, + 0xbb, 0x88, 0x69, 0x5c, 0xfa, 0xc9, 0xc7, 0x40 } }; + /* * MP4_Seek : non seekable stream safe seek / ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: libmp4: move uuid parsing
vlc | branch: master | Francois Cartegnie| Wed Jul 26 23:52:26 2017 +0200| [78f07cef022379050c936faed8150d81f83a4b88] | committer: Francois Cartegnie demux: libmp4: move uuid parsing > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=78f07cef022379050c936faed8150d81f83a4b88 --- modules/demux/mp4/libmp4.c | 48 -- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/modules/demux/mp4/libmp4.c b/modules/demux/mp4/libmp4.c index 0eeac770b0..254ac79c57 100644 --- a/modules/demux/mp4/libmp4.c +++ b/modules/demux/mp4/libmp4.c @@ -752,29 +752,6 @@ static int MP4_ReadBox_XML360( stream_t *p_stream, MP4_Box_t *p_box ) MP4_READBOX_EXIT( 1 ); } -static int MP4_ReadBox_uuid( stream_t *p_stream, MP4_Box_t *p_box ) -{ -if( !CmpUUID( _box->i_uuid, ) ) -return MP4_ReadBox_tfrf( p_stream, p_box ); -if( !CmpUUID( _box->i_uuid, ) ) -return MP4_ReadBox_tfxd( p_stream, p_box ); -if( !CmpUUID( _box->i_uuid, ) ) -return MP4_ReadBox_XML360( p_stream, p_box ); - -#ifdef MP4_VERBOSE -msg_Warn( p_stream, "Unknown uuid type box: " -"0x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x" -"%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x", -p_box->i_uuid.b[0], p_box->i_uuid.b[1], p_box->i_uuid.b[2], p_box->i_uuid.b[3], -p_box->i_uuid.b[4], p_box->i_uuid.b[5], p_box->i_uuid.b[6], p_box->i_uuid.b[7], -p_box->i_uuid.b[8], p_box->i_uuid.b[9], p_box->i_uuid.b[10], p_box->i_uuid.b[11], -p_box->i_uuid.b[12], p_box->i_uuid.b[13], p_box->i_uuid.b[14], p_box->i_uuid.b[15] ); -#else -msg_Warn( p_stream, "Unknown uuid type box" ); -#endif -return 1; -} - static int MP4_ReadBox_st3d( stream_t *p_stream, MP4_Box_t *p_box ) { MP4_READBOX_ENTER( MP4_Box_data_st3d_t, NULL ); @@ -4188,6 +4165,31 @@ unknown: } / --- / + +static int MP4_ReadBox_uuid( stream_t *p_stream, MP4_Box_t *p_box ) +{ +if( !CmpUUID( _box->i_uuid, ) ) +return MP4_ReadBox_tfrf( p_stream, p_box ); +if( !CmpUUID( _box->i_uuid, ) ) +return MP4_ReadBox_tfxd( p_stream, p_box ); +if( !CmpUUID( _box->i_uuid, ) ) +return MP4_ReadBox_XML360( p_stream, p_box ); + +#ifdef MP4_VERBOSE +msg_Warn( p_stream, "Unknown uuid type box: " +"%2.2x%2.2x%2.2x%2.2x-%2.2x%2.2x-%2.2x%2.2x-" +"%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x", +p_box->i_uuid.b[0], p_box->i_uuid.b[1], p_box->i_uuid.b[2], p_box->i_uuid.b[3], +p_box->i_uuid.b[4], p_box->i_uuid.b[5], p_box->i_uuid.b[6], p_box->i_uuid.b[7], +p_box->i_uuid.b[8], p_box->i_uuid.b[9], p_box->i_uuid.b[10], p_box->i_uuid.b[11], +p_box->i_uuid.b[12], p_box->i_uuid.b[13], p_box->i_uuid.b[14], p_box->i_uuid.b[15] ); +#else +msg_Warn( p_stream, "Unknown uuid type box" ); +#endif +return 1; +} + +/ --- / / "Higher level" Functions / / --- / ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] packetizer: mpegvideo: add missing mapping
vlc | branch: master | Francois Cartegnie| Wed Jul 26 21:41:19 2017 +0200| [e285e13f66c6deaad45f6cdd7a4e93cb0ecc7900] | committer: Francois Cartegnie packetizer: mpegvideo: add missing mapping > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e285e13f66c6deaad45f6cdd7a4e93cb0ecc7900 --- modules/packetizer/mpegvideo.c | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/packetizer/mpegvideo.c b/modules/packetizer/mpegvideo.c index d8e988c2ec..e4c9cbc8d0 100644 --- a/modules/packetizer/mpegvideo.c +++ b/modules/packetizer/mpegvideo.c @@ -807,6 +807,7 @@ static block_t *ParseMPEGBlock( decoder_t *p_dec, block_t *p_frag ) break; case 5: /* BT.470BG */ case 6: /* SMPTE 170 M */ +case 7: /* SMPTE 240 M */ p_dec->fmt_out.video.space = COLOR_SPACE_BT601; break; default: ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macOS build.sh: Build gettext before contribs
vlc | branch: master | David Fuhrmann| Wed Jul 26 21:07:31 2017 +0200| [98f88252005c6197c255f39d02bbe3f9a80a02a9] | committer: David Fuhrmann macOS build.sh: Build gettext before contribs > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=98f88252005c6197c255f39d02bbe3f9a80a02a9 --- extras/package/macosx/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/extras/package/macosx/build.sh b/extras/package/macosx/build.sh index cbd3b0fa2b..28a8ffe5b4 100755 --- a/extras/package/macosx/build.sh +++ b/extras/package/macosx/build.sh @@ -157,6 +157,7 @@ if [ "$REBUILD" = "yes" ]; then fi if [ "$CONTRIBFROMSOURCE" = "yes" ]; then make fetch +make -j$jobs .gettext make -j$jobs else if [ ! -e "../$TRIPLET" ]; then ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macOS build.sh: Enable -Werror=partial-availability for contribs
vlc | branch: master | David Fuhrmann| Wed Jul 26 21:07:52 2017 +0200| [f87eeb29b6b0d34754e6c66309dd246f15294853] | committer: David Fuhrmann macOS build.sh: Enable -Werror=partial-availability for contribs Usually, contribs do not support runtime handling of partial availability well. Turning this warning into an error has several advantages: - It fixes feature detection for custom build scripts: If a custom build script includes the correct header, the check will now fail to build and replacements will be enabled. This is the case for ffmpeg, for instance. - Even if configure check might not fail, the build will fail for correctly annotated functions, once they are used in the code. This makes it very visible if new partial symbols are added, so that they can be fixed or disabled subsequently. refs #18476 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f87eeb29b6b0d34754e6c66309dd246f15294853 --- extras/package/macosx/build.sh | 20 ++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/extras/package/macosx/build.sh b/extras/package/macosx/build.sh index 28a8ffe5b4..43cb0a9066 100755 --- a/extras/package/macosx/build.sh +++ b/extras/package/macosx/build.sh @@ -122,8 +122,9 @@ export ac_cv_func_mkostemps=no export ac_cv_func_ffsll=no export ac_cv_func_flsll=no export ac_cv_func_fdopendir=no -export ac_cv_func_openat=no # Disables fstatat as well - +export ac_cv_func_openat=no +export ac_cv_func_fstatat=no +export ac_cv_func_readlinkat=no # libnetwork does not exist yet on 10.7 (used by libcddb) export ac_cv_lib_network_connect=no @@ -148,6 +149,17 @@ let jobs=$core_count+1 # vlc/contribs # +# Usually, VLCs contrib libraries do not support partial availability at runtime. +# Forcing those errors has two reasons: +# - Some custom configure scripts include the right header for testing availability. +# Those configure checks fail (correctly) with those errors, and replacements are +# enabled. (e.g. ffmpeg) +# - This will fail the build if a partially available symbol is added later on +# in contribs and not mentioned in the list of symbols above. +export CFLAGS="-Werror=partial-availability" +export CXXFLAGS="-Werror=partial-availability" +export OBJCFLAGS="-Werror=partial-availability" + info "Building contribs" spushd "${vlcroot}/contrib" mkdir -p contrib-$TRIPLET && cd contrib-$TRIPLET @@ -166,6 +178,10 @@ fi fi spopd +unset CFLAGS +unset CXXFLAGS +unset OBJCFLAGS + # # vlc/bootstrap ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] vout: handle error without aborting
vlc | branch: master | Rémi Denis-Courmont| Wed Jul 26 22:07:54 2017 +0300| [7c6e3bf9ffcc5db77b8f6e8f09826b8a93efeb47] | committer: Rémi Denis-Courmont vout: handle error without aborting > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7c6e3bf9ffcc5db77b8f6e8f09826b8a93efeb47 --- src/video_output/display.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/video_output/display.c b/src/video_output/display.c index fe2c86e75c..b2f6f4d3d7 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -415,8 +415,6 @@ static int VoutDisplayCreateRender(vout_display_t *vd) { vout_display_owner_sys_t *osys = vd->owner.sys; -osys->filters = NULL; - video_format_t v_src = vd->source; v_src.i_sar_num = 0; v_src.i_sar_den = 0; @@ -433,8 +431,10 @@ static int VoutDisplayCreateRender(vout_display_t *vd) v_dst_cmp.i_chroma = v_src.i_chroma; const bool convert = memcmp(_src, _dst_cmp, sizeof(v_src)) != 0; -if (!convert) +if (!convert) { +osys->filters = NULL; return 0; +} msg_Dbg(vd, "A filter to adapt decoder %4.4s to display %4.4s is needed", (const char *)_src.i_chroma, (const char *)_dst.i_chroma); @@ -448,7 +448,7 @@ static int VoutDisplayCreateRender(vout_display_t *vd) osys->filters = filter_chain_NewVideo(vd, false, ); if (unlikely(osys->filters == NULL)) -abort(); /* TODO critical */ +return -1; /* */ es_format_t src; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] vout: make vout_FilterDisplay() work always
vlc | branch: master | Rémi Denis-Courmont| Wed Jul 26 21:54:56 2017 +0300| [5908911afb80b6c274525018c1fbf55ebebac594] | committer: Rémi Denis-Courmont vout: make vout_FilterDisplay() work always Deal with the trivial case whereby the vout is unfiltered. Simplify the call sites accordingly. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5908911afb80b6c274525018c1fbf55ebebac594 --- src/video_output/display.c | 8 +--- src/video_output/video_output.c | 16 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/video_output/display.c b/src/video_output/display.c index 055bb7d01d..fe2c86e75c 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -1092,11 +1092,14 @@ picture_t *vout_FilterDisplay(vout_display_t *vd, picture_t *picture) { vout_display_owner_sys_t *osys = vd->owner.sys; -assert(osys->filters); +if (osys->filters == NULL) +return picture; + if (filter_chain_IsEmpty(osys->filters)) { picture_Release(picture); return NULL; } + return filter_chain_VideoFilter(osys->filters, picture); } @@ -1451,8 +1454,7 @@ static void SplitterPrepare(vout_display_t *vd, } for (int i = 0; i < sys->count; i++) { -if (vout_IsDisplayFiltered(sys->display[i])) -sys->picture[i] = vout_FilterDisplay(sys->display[i], sys->picture[i]); +sys->picture[i] = vout_FilterDisplay(sys->display[i], sys->picture[i]); if (sys->picture[i]) vout_display_Prepare(sys->display[i], sys->picture[i], NULL); } diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 336b97e7ba..640232a0ea 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -1045,17 +1045,17 @@ static int ThreadDisplayRenderPicture(vout_thread_t *vout, bool is_forced) /* Render the direct buffer */ vout_UpdateDisplaySourceProperties(vd, >format); + +todisplay = vout_FilterDisplay(vd, todisplay); +if (todisplay == NULL) { +if (subpic != NULL) +subpicture_Delete(subpic); +return VLC_EGENERIC; +} + if (sys->display.use_dr) { vout_display_Prepare(vd, todisplay, subpic); } else { -todisplay = vout_FilterDisplay(vd, todisplay); -if (todisplay == NULL) -{ -if (subpic != NULL) -subpicture_Delete(subpic); -return VLC_EGENERIC; -} - if (!do_dr_spu && !do_early_spu && vout->p->spu_blend && subpic) picture_BlendSubpicture(todisplay, vout->p->spu_blend, subpic); vout_display_Prepare(vd, todisplay, do_dr_spu ? subpic : NULL); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] vout: remove redundant test
vlc | branch: master | Rémi Denis-Courmont| Wed Jul 26 21:47:02 2017 +0300| [bff9042430d3fd173f9f7a2d66ee38ff03e88400] | committer: Rémi Denis-Courmont vout: remove redundant test If the vout is unfiltered (in this context), then use_dr is true. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bff9042430d3fd173f9f7a2d66ee38ff03e88400 --- src/video_output/video_output.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 63ca06f6ea..336b97e7ba 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -940,7 +940,6 @@ static int ThreadDisplayRenderPicture(vout_thread_t *vout, bool is_forced) (vd->info.is_slow || sys->display.use_dr || do_snapshot || - !vout_IsDisplayFiltered(vd) || vd->fmt.i_width * vd->fmt.i_height <= vd->source.i_width * vd->source.i_height); const vlc_fourcc_t *subpicture_chromas; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] filter_chain: remove useless length member
vlc | branch: master | Rémi Denis-Courmont| Wed Jul 26 21:26:52 2017 +0300| [5f164b8a6ead6e1be6f4e16a1d9b7b3c414d0bd8] | committer: Rémi Denis-Courmont filter_chain: remove useless length member > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5f164b8a6ead6e1be6f4e16a1d9b7b3c414d0bd8 --- src/misc/filter_chain.c | 8 +--- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/misc/filter_chain.c b/src/misc/filter_chain.c index 3e7d4fb08f..552ed9e587 100644 --- a/src/misc/filter_chain.c +++ b/src/misc/filter_chain.c @@ -58,7 +58,6 @@ struct filter_chain_t es_format_t fmt_in; /**< Chain input format (constant) */ es_format_t fmt_out; /**< Chain current output format */ -unsigned length; /**< Number of filters */ bool b_allow_fmt_out_change; /**< Can the output format be changed? */ const char *filter_cap; /**< Filter modules capability */ const char *conv_cap; /**< Converter modules capability */ @@ -87,7 +86,6 @@ static filter_chain_t *filter_chain_NewInner( const filter_owner_t *callbacks, chain->last = NULL; es_format_Init( >fmt_in, cat, 0 ); es_format_Init( >fmt_out, cat, 0 ); -chain->length = 0; chain->b_allow_fmt_out_change = fmt_out_change; chain->filter_cap = cap; chain->conv_cap = conv_cap; @@ -243,7 +241,6 @@ static filter_t *filter_chain_AppendInner( filter_chain_t *chain, chained->prev = chain->last; chain->last = chained; chained->next = NULL; -chain->length++; vlc_mouse_t *mouse = malloc( sizeof(*mouse) ); if( likely(mouse != NULL) ) @@ -304,9 +301,6 @@ void filter_chain_DeleteFilter( filter_chain_t *chain, filter_t *filter ) chain->last = chained->prev; } -assert( chain->length > 0 ); -chain->length--; - module_unneed( filter, filter->p_module ); msg_Dbg( obj, "Filter %p removed from chain", (void *)filter ); @@ -381,7 +375,7 @@ int filter_chain_ForEach( filter_chain_t *chain, bool filter_chain_IsEmpty(const filter_chain_t *chain) { -return chain->length == 0; +return chain->first == NULL; } const es_format_t *filter_chain_GetFmtOut( filter_chain_t *p_chain ) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] filter_chain: use container_of()
vlc | branch: master | Rémi Denis-Courmont| Wed Jul 26 21:04:47 2017 +0300| [8e11a7c3bcf55978a8d0be1e0bcee203013c8743] | committer: Rémi Denis-Courmont filter_chain: use container_of() > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=8e11a7c3bcf55978a8d0be1e0bcee203013c8743 --- src/misc/filter_chain.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/misc/filter_chain.c b/src/misc/filter_chain.c index 02e389d4ef..1b93ddce8c 100644 --- a/src/misc/filter_chain.c +++ b/src/misc/filter_chain.c @@ -43,9 +43,9 @@ typedef struct chained_filter_t } chained_filter_t; /* Only use this with filter objects from _this_ C module */ -static inline chained_filter_t *chained (filter_t *filter) +static inline chained_filter_t *chained(filter_t *filter) { -return (chained_filter_t *)filter; +return container_of(filter, chained_filter_t, filter); } /* */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] filter_chain: replace GetLength with IsEmpty
vlc | branch: master | Rémi Denis-Courmont| Wed Jul 26 21:25:15 2017 +0300| [9f74ef90bec7bacbc527ba20f38c33560f8af321] | committer: Rémi Denis-Courmont filter_chain: replace GetLength with IsEmpty Nothing cares about the actual length if it is non-zero. Also constify. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9f74ef90bec7bacbc527ba20f38c33560f8af321 --- include/vlc_filter.h | 6 +++--- modules/stream_out/transcode/video.c | 2 +- src/libvlccore.sym | 2 +- src/misc/filter_chain.c | 4 ++-- src/video_output/display.c | 2 +- src/video_output/video_output.c | 2 +- src/video_output/vout_subpictures.c | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/include/vlc_filter.h b/include/vlc_filter.h index 8b290c5f66..3b30dbb562 100644 --- a/include/vlc_filter.h +++ b/include/vlc_filter.h @@ -395,12 +395,12 @@ VLC_API void filter_chain_DeleteFilter(filter_chain_t *chain, filter_t *filter); /** - * Get the number of filters in the filter chain. + * Checks if the filter chain is empty. * * \param chain pointer to filter chain - * \return number of filters in this filter chain + * \return true if and only if there are no filters in this filter chain */ -VLC_API int filter_chain_GetLength(filter_chain_t *chain); +VLC_API bool filter_chain_IsEmpty(const filter_chain_t *chain); /** * Get last output format of the last element in the filter chain. diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c index 3b5c5e25ff..de36922b87 100644 --- a/modules/stream_out/transcode/video.c +++ b/modules/stream_out/transcode/video.c @@ -706,7 +706,7 @@ static void OutputFrame( sout_stream_t *p_stream, picture_t *p_pic, sout_stream_ /* Overlay subpicture */ if( p_subpic ) { -if( picture_IsReferenced( p_pic ) && !filter_chain_GetLength( id->p_f_chain ) ) +if( picture_IsReferenced( p_pic ) && filter_chain_IsEmpty( id->p_f_chain ) ) { /* We can't modify the picture, we need to duplicate it, * in this point the picture is already p_encoder->fmt.in format*/ diff --git a/src/libvlccore.sym b/src/libvlccore.sym index 8d9bb53d3c..5faf32c2b0 100644 --- a/src/libvlccore.sym +++ b/src/libvlccore.sym @@ -108,7 +108,7 @@ filter_chain_AppendFromString filter_chain_Delete filter_chain_DeleteFilter filter_chain_GetFmtOut -filter_chain_GetLength +filter_chain_IsEmpty filter_chain_MouseFilter filter_chain_MouseEvent filter_chain_NewVideo diff --git a/src/misc/filter_chain.c b/src/misc/filter_chain.c index 1b93ddce8c..3e7d4fb08f 100644 --- a/src/misc/filter_chain.c +++ b/src/misc/filter_chain.c @@ -379,9 +379,9 @@ int filter_chain_ForEach( filter_chain_t *chain, return VLC_SUCCESS; } -int filter_chain_GetLength( filter_chain_t *p_chain ) +bool filter_chain_IsEmpty(const filter_chain_t *chain) { -return p_chain->length; +return chain->length == 0; } const es_format_t *filter_chain_GetFmtOut( filter_chain_t *p_chain ) diff --git a/src/video_output/display.c b/src/video_output/display.c index 960f08e66e..055bb7d01d 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -1093,7 +1093,7 @@ picture_t *vout_FilterDisplay(vout_display_t *vd, picture_t *picture) vout_display_owner_sys_t *osys = vd->owner.sys; assert(osys->filters); -if (filter_chain_GetLength(osys->filters) <= 0) { +if (filter_chain_IsEmpty(osys->filters)) { picture_Release(picture); return NULL; } diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index a5cc3ce8b1..63ca06f6ea 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -684,7 +684,7 @@ static picture_t *VoutVideoFilterStaticNewPicture(filter_t *filter) vout_thread_t *vout = filter->owner.sys; vlc_assert_locked(>p->filter.lock); -if (filter_chain_GetLength(vout->p->filter.chain_interactive) == 0) +if (filter_chain_IsEmpty(vout->p->filter.chain_interactive)) return VoutVideoFilterInteractiveNewPicture(filter); return picture_NewFromFormat(>fmt_out.video); diff --git a/src/video_output/vout_subpictures.c b/src/video_output/vout_subpictures.c index 3a66e0ddd8..0a64bd4e0a 100644 --- a/src/video_output/vout_subpictures.c +++ b/src/video_output/vout_subpictures.c @@ -1440,7 +1440,7 @@ void spu_PutSubpicture(spu_t *spu, subpicture_t *subpic) /* "sub-source" was formerly "sub-filter", so now the "sub-filter" configuration may contain sub-filters or sub-sources configurations. if the filters chain was left empty it may indicate that it's a sub-source configuration */ -is_left_empty = (filter_chain_GetLength(spu->p->filter_chain) == 0); +is_left_empty = filter_chain_IsEmpty(spu->p->filter_chain);
[vlc-commits] spu: remove useless check
vlc | branch: master | Rémi Denis-Courmont| Wed Jul 26 21:07:48 2017 +0300| [3917462779e0009e070b2c95d48782c4f806289f] | committer: Rémi Denis-Courmont spu: remove useless check filter_chain_Reset(NULL, NULL) is a no-op on an empty chain. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=3917462779e0009e070b2c95d48782c4f806289f --- src/video_output/vout_subpictures.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/video_output/vout_subpictures.c b/src/video_output/vout_subpictures.c index acc0173518..3a66e0ddd8 100644 --- a/src/video_output/vout_subpictures.c +++ b/src/video_output/vout_subpictures.c @@ -1434,7 +1434,7 @@ void spu_PutSubpicture(spu_t *spu, subpicture_t *subpic) SubFilterAddProxyCallbacks, sys->vout); } -else if (filter_chain_GetLength(spu->p->filter_chain) > 0) +else filter_chain_Reset(sys->filter_chain, NULL, NULL); /* "sub-source" was formerly "sub-filter", so now the "sub-filter" ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] caopengllayer: set HDR mode on 10.12 and later only (closes #17763)
vlc | branch: master | Felix Paul Kühne| Wed Jul 26 18:35:17 2017 +0200| [44ae5e72db59afc31996e35c11022f3dd5d2d153] | committer: Felix Paul Kühne caopengllayer: set HDR mode on 10.12 and later only (closes #17763) > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=44ae5e72db59afc31996e35c11022f3dd5d2d153 --- modules/video_output/caopengllayer.m | 15 +-- 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/modules/video_output/caopengllayer.m b/modules/video_output/caopengllayer.m index dd47cd7b4c..2a3cca5712 100644 --- a/modules/video_output/caopengllayer.m +++ b/modules/video_output/caopengllayer.m @@ -1,7 +1,7 @@ /* * caopengllayer.m: CAOpenGLLayer (Mac OS X) video output * - * Copyright (C) 2014-2016 VLC authors and VideoLAN + * Copyright (C) 2014-2017 VLC authors and VideoLAN * $Id$ * * Authors: David Fuhrmann @@ -43,7 +43,8 @@ #include "opengl/vout_helper.h" -#define OSX_EL_CAPITAN (NSAppKitVersionNumber >= 1404) +#define OSX_EL_CAPITAN_AND_HIGHER (NSAppKitVersionNumber >= 1404) +#define OSX_SIERRA_AND_HIGHER (NSAppKitVersionNumber >= 1485) #if MAC_OS_X_VERSION_MIN_ALLOWED <= MAC_OS_X_VERSION_10_11 const CFStringRef kCGColorSpaceDCIP3 = CFSTR("kCGColorSpaceDCIP3"); @@ -219,7 +220,7 @@ static int Open (vlc_object_t *p_this) /* support for BT.709 and BT.2020 color spaces was introduced with OS X 10.11 * on older OS versions, we can't show correct colors, so we fallback on linear RGB */ -if (OSX_EL_CAPITAN) { +if (OSX_EL_CAPITAN_AND_HIGHER) { switch (fmt.primaries) { case COLOR_PRIMARIES_BT601_525: case COLOR_PRIMARIES_BT601_625: @@ -272,9 +273,11 @@ static int Open (vlc_object_t *p_this) msg_Dbg(vd, "OS does not support custom color spaces, output may be undefined"); } -/* request our screen's HDR mode (introduced in OS X 10.11) */ -if ([sys->cgLayer respondsToSelector:@selector(setWantsExtendedDynamicRangeContent:)]) { -[sys->cgLayer setWantsExtendedDynamicRangeContent:YES]; +if (OSX_SIERRA_AND_HIGHER) { +/* request our screen's HDR mode (introduced in OS X 10.11, but correctly supported in 10.12 only) */ +if ([sys->cgLayer respondsToSelector:@selector(setWantsExtendedDynamicRangeContent:)]) { +[sys->cgLayer setWantsExtendedDynamicRangeContent:YES]; +} } /* setup initial state */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] d3d11va: don't use the external pool on Qualcomm devices if the sizes don't match
vlc | branch: master | Steve Lhomme| Wed Jul 26 15:06:39 2017 +0200| [e1be6b1563d16e9fdb77d75d4a2d2f6cc1e4ffcf] | committer: Jean-Baptiste Kempf d3d11va: don't use the external pool on Qualcomm devices if the sizes don't match On such devices the decoder needs to have the exact size with the required DXVA padding but no more and no less. So we can't anything that doesn't match these criteria for decoding. Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e1be6b1563d16e9fdb77d75d4a2d2f6cc1e4ffcf --- modules/codec/avcodec/d3d11va.c | 28 1 file changed, 28 insertions(+) diff --git a/modules/codec/avcodec/d3d11va.c b/modules/codec/avcodec/d3d11va.c index 12ee88fcb8..0a874e48e6 100644 --- a/modules/codec/avcodec/d3d11va.c +++ b/modules/codec/avcodec/d3d11va.c @@ -110,6 +110,8 @@ struct vlc_va_sys_t { directx_sys_tdx_sys; UINT totalTextureSlices; +unsigned textureWidth; +unsigned textureHeight; #if !defined(NDEBUG) && defined(HAVE_DXGIDEBUG_H) HINSTANCEdxgidebug_dll; @@ -373,6 +375,8 @@ static int Open(vlc_va_t *va, AVCodecContext *ctx, enum PixelFormat pix_fmt, D3D11_TEXTURE2D_DESC dstDesc; ID3D11Texture2D_GetDesc( p_sys->texture[KNOWN_DXGI_INDEX], ); sys->render = dstDesc.Format; +va->sys->textureWidth = dstDesc.Width; +va->sys->textureHeight = dstDesc.Height; va->sys->totalTextureSlices = dstDesc.ArraySize; } } @@ -698,6 +702,23 @@ static int DxSetupOutput(vlc_va_t *va, const GUID *input, const video_format_t * return VLC_EGENERIC; } +static bool CanUseDecoderPadding(directx_sys_t *dx_sys) +{ +IDXGIAdapter *pAdapter = D3D11DeviceAdapter(dx_sys->d3ddev); +if (!pAdapter) +return false; + +DXGI_ADAPTER_DESC adapterDesc; +HRESULT hr = IDXGIAdapter_GetDesc(pAdapter, ); +IDXGIAdapter_Release(pAdapter); +if (FAILED(hr)) +return false; + +/* Qualcomm hardware has issues with textures and pixels that should not be +* part of the decoded area */ +return adapterDesc.VendorId != 0x4D4F4351; +} + /** * It creates a Direct3D11 decoder using the given video format */ @@ -726,6 +747,13 @@ static int DxCreateDecoderSurfaces(vlc_va_t *va, int codec_id, return VLC_EGENERIC; } #endif +if ((sys->textureWidth != fmt->i_width || sys->textureHeight != fmt->i_height) && +!CanUseDecoderPadding(dx_sys)) +{ +msg_Dbg(va, "mismatching external pool sizes use the internal one %dx%d vs %dx%d", +sys->textureWidth, sys->textureHeight, fmt->i_width, fmt->i_height); +dx_sys->can_extern_pool = false; +} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC viewDesc; ZeroMemory(, sizeof(viewDesc)); ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] caopengllayer: fix green output
vlc | branch: master | Victorien Le Couviour--Tuffet| Wed Jul 26 16:14:01 2017 +0200| [fdb40afd8ef10669024244489c45d2c335e0c74c] | committer: Jean-Baptiste Kempf caopengllayer: fix green output Fixes #18309. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=fdb40afd8ef10669024244489c45d2c335e0c74c --- modules/video_output/caopengllayer.m | 58 +++- 1 file changed, 37 insertions(+), 21 deletions(-) diff --git a/modules/video_output/caopengllayer.m b/modules/video_output/caopengllayer.m index ed77118f99..dd47cd7b4c 100644 --- a/modules/video_output/caopengllayer.m +++ b/modules/video_output/caopengllayer.m @@ -84,6 +84,7 @@ static void OpenglSwap (vlc_gl_t *gl); @interface VLCCAOpenGLLayer : CAOpenGLLayer @property (nonatomic, readwrite) vout_display_t* voutDisplay; +@property (nonatomic, readwrite) CGLContextObj glContext; @end @@ -99,8 +100,6 @@ struct vout_display_sys_t { CGColorSpaceRef cgColorSpace; -CGLContextObj glContext; - vlc_gl_t *gl; vout_display_opengl_t *vgl; @@ -109,6 +108,12 @@ struct vout_display_sys_t { bool b_frame_available; }; +struct gl_sys +{ +CGLContextObj locked_ctx; +VLCCAOpenGLLayer *cgLayer; +}; + /* * Open: This function allocates and initializes the OpenGL vout method. */ @@ -167,7 +172,7 @@ static int Open (vlc_object_t *p_this) if (!sys->cgLayer) goto bailout; -if (!sys->glContext) +if (![sys->cgLayer glContext]) msg_Warn(vd, "we might not have an OpenGL context yet"); /* Initialize common OpenGL video display */ @@ -178,7 +183,12 @@ static int Open (vlc_object_t *p_this) sys->gl->releaseCurrent = OpenglUnlock; sys->gl->swap = OpenglSwap; sys->gl->getProcAddress = OurGetProcAddress; -sys->gl->sys = sys; + +struct gl_sys *glsys = sys->gl->sys = malloc(sizeof(*glsys)); +if (!sys->gl->sys) +goto bailout; +glsys->locked_ctx = NULL; +glsys->cgLayer = sys->cgLayer; const vlc_fourcc_t *subpicture_chromas; video_format_t fmt = vd->fmt; @@ -308,10 +318,17 @@ static void Close (vlc_object_t *p_this) } if (sys->gl != NULL) +{ +if (sys->gl->sys != NULL) +{ +assert(((struct gl_sys *)sys->gl->sys)->locked_ctx == NULL); +free(sys->gl->sys); +} vlc_object_release(sys->gl); +} -if (sys->glContext) -CGLReleaseContext(sys->glContext); +if ([sys->cgLayer glContext]) +CGLReleaseContext([sys->cgLayer glContext]); if (sys->cgColorSpace != nil) CGColorSpaceRelease(sys->cgColorSpace); @@ -450,15 +467,18 @@ static int Control (vout_display_t *vd, int query, va_list ap) static int OpenglLock (vlc_gl_t *gl) { -vout_display_sys_t *sys = (vout_display_sys_t *)gl->sys; +struct gl_sys *sys = gl->sys; +assert(sys->locked_ctx == NULL); -if(!sys->glContext) { +CGLContextObj ctx = [sys->cgLayer glContext]; +if(!ctx) { return 1; } -CGLError err = CGLLockContext(sys->glContext); +CGLError err = CGLLockContext(ctx); if (kCGLNoError == err) { -CGLSetCurrentContext(sys->glContext); +sys->locked_ctx = ctx; +CGLSetCurrentContext(ctx); return 0; } return 1; @@ -466,13 +486,9 @@ static int OpenglLock (vlc_gl_t *gl) static void OpenglUnlock (vlc_gl_t *gl) { -vout_display_sys_t *sys = (vout_display_sys_t *)gl->sys; - -if (!sys->glContext) { -return; -} - -CGLUnlockContext(sys->glContext); +struct gl_sys *sys = gl->sys; +CGLUnlockContext(sys->locked_ctx); +sys->locked_ctx = NULL; } static void OpenglSwap (vlc_gl_t *gl) @@ -561,9 +577,9 @@ static void *OurGetProcAddress (vlc_gl_t *gl, const char *name) - (CGLContextObj)copyCGLContextForPixelFormat:(CGLPixelFormatObj)pixelFormat { // Only one opengl context is allowed for the module lifetime -if(_voutDisplay->sys->glContext) { -msg_Dbg(_voutDisplay, "Return existing context: %p", _voutDisplay->sys->glContext); -return _voutDisplay->sys->glContext; +if(_glContext) { +msg_Dbg(_voutDisplay, "Return existing context: %p", _glContext); +return _glContext; } CGLContextObj context = [super copyCGLContextForPixelFormat:pixelFormat]; @@ -577,7 +593,7 @@ static void *OurGetProcAddress (vlc_gl_t *gl, const char *name) ); @synchronized (self) { -_voutDisplay->sys->glContext = context; +_glContext = context; } return context; ___ vlc-commits mailing list vlc-commits@videolan.org
[vlc-commits] misc: ensure vlc_object_t is correctly aligned
vlc | branch: master | Rémi Denis-Courmont| Wed Jul 26 17:50:24 2017 +0300| [94d8e0b9c1a27db4589d356ec11825934af80549] | committer: Rémi Denis-Courmont misc: ensure vlc_object_t is correctly aligned See also 4f91e6bc15d8b72deb1f761ca857a33d672c91ef. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=94d8e0b9c1a27db4589d356ec11825934af80549 --- src/misc/variables.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/misc/variables.h b/src/misc/variables.h index 38af8635a2..dccd96bcb3 100644 --- a/src/misc/variables.h +++ b/src/misc/variables.h @@ -23,6 +23,7 @@ #ifndef LIBVLC_VARIABLES_H # define LIBVLC_VARIABLES_H 1 +# include # include struct vlc_res; @@ -34,6 +35,7 @@ typedef struct vlc_object_internals vlc_object_internals_t; struct vlc_object_internals { +alignas (max_align_t) /* ensure vlc_externals() is maximally aligned */ char *psz_name; /* given name */ /* Object variables */ ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] service_discovery: Improve debug log messages
vlc | branch: master | Marvin Scholz| Tue Jul 25 21:16:02 2017 +0200| [aeee2106df15261f4470b928fb15331056478028] | committer: Rémi Denis-Courmont service_discovery: Improve debug log messages Signed-off-by: Rémi Denis-Courmont > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=aeee2106df15261f4470b928fb15331056478028 --- src/playlist/services_discovery.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/playlist/services_discovery.c b/src/playlist/services_discovery.c index b3c6f23ff8..5fd09c4587 100644 --- a/src/playlist/services_discovery.c +++ b/src/playlist/services_discovery.c @@ -50,7 +50,7 @@ static void playlist_sd_item_added(services_discovery_t *sd, playlist_item_t *node; const char *longname = (sd->description != NULL) ? sd->description : "?"; -msg_Dbg(sd, "adding %s", p_input->psz_name ? p_input->psz_name : "(null)"); +msg_Dbg(sd, "adding: %s", p_input->psz_name ? p_input->psz_name : "(null)"); playlist_Lock(playlist); if (sds->node == NULL) @@ -83,6 +83,8 @@ static void playlist_sd_item_removed(services_discovery_t *sd, playlist_t *p_playlist = (playlist_t *)sd->obj.parent; playlist_item_t *node, *item; +msg_Dbg(sd, "removing: %s", p_input->psz_name ? p_input->psz_name : "(null)"); + PL_LOCK; item = playlist_ItemGetByInput(p_playlist, p_input); if (unlikely(item == NULL)) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] service_discovery: Consistently use playlist_Lock/Unlock
vlc | branch: master | Marvin Scholz| Tue Jul 25 21:16:03 2017 +0200| [05269e4f81ffc672ed950f31834a613c06be068f] | committer: Rémi Denis-Courmont service_discovery: Consistently use playlist_Lock/Unlock Signed-off-by: Rémi Denis-Courmont > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=05269e4f81ffc672ed950f31834a613c06be068f --- src/playlist/services_discovery.c | 28 ++-- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/playlist/services_discovery.c b/src/playlist/services_discovery.c index 5fd09c4587..39a43badd6 100644 --- a/src/playlist/services_discovery.c +++ b/src/playlist/services_discovery.c @@ -80,17 +80,17 @@ static void playlist_sd_item_removed(services_discovery_t *sd, input_item_t *p_input) { vlc_sd_internal_t *sds = sd->owner.sys; -playlist_t *p_playlist = (playlist_t *)sd->obj.parent; +playlist_t *playlist = (playlist_t *)sd->obj.parent; playlist_item_t *node, *item; msg_Dbg(sd, "removing: %s", p_input->psz_name ? p_input->psz_name : "(null)"); -PL_LOCK; -item = playlist_ItemGetByInput(p_playlist, p_input); +playlist_Lock(playlist); +item = playlist_ItemGetByInput(playlist, p_input); if (unlikely(item == NULL)) { msg_Err(sd, "removing item not added"); /* SD plugin bug */ -PL_UNLOCK; +playlist_Unlock(playlist); return; } @@ -105,9 +105,9 @@ static void playlist_sd_item_removed(services_discovery_t *sd, becomes empty, delete that node as well */ if (node != sds->node && node->i_children == 1) item = node; -playlist_NodeDeleteExplicit(p_playlist, item, +playlist_NodeDeleteExplicit(playlist, item, PLAYLIST_DELETE_FORCE | PLAYLIST_DELETE_STOP_IF_CURRENT ); -PL_UNLOCK; +playlist_Unlock(playlist); } int playlist_ServicesDiscoveryAdd(playlist_t *playlist, const char *chain) @@ -193,12 +193,12 @@ int playlist_ServicesDiscoveryRemove(playlist_t *playlist, const char *name) return VLC_SUCCESS; } -bool playlist_IsServicesDiscoveryLoaded( playlist_t * p_playlist, +bool playlist_IsServicesDiscoveryLoaded( playlist_t * playlist, const char *psz_name ) { -playlist_private_t *priv = pl_priv( p_playlist ); +playlist_private_t *priv = pl_priv( playlist ); bool found = false; -PL_LOCK; +playlist_Lock(playlist); for( int i = 0; i < priv->i_sds; i++ ) { @@ -210,17 +210,17 @@ bool playlist_IsServicesDiscoveryLoaded( playlist_t * p_playlist, break; } } -PL_UNLOCK; +playlist_Unlock(playlist); return found; } -int playlist_ServicesDiscoveryControl( playlist_t *p_playlist, const char *psz_name, int i_control, ... ) +int playlist_ServicesDiscoveryControl( playlist_t *playlist, const char *psz_name, int i_control, ... ) { -playlist_private_t *priv = pl_priv( p_playlist ); +playlist_private_t *priv = pl_priv( playlist ); int i_ret = VLC_EGENERIC; int i; -PL_LOCK; +playlist_Lock(playlist); for( i = 0; i < priv->i_sds; i++ ) { vlc_sd_internal_t *sds = priv->pp_sds[i]; @@ -235,7 +235,7 @@ int playlist_ServicesDiscoveryControl( playlist_t *p_playlist, const char *psz_n } assert( i != priv->i_sds ); -PL_UNLOCK; +playlist_Unlock(playlist); return i_ret; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] bonjour: clarify log messages and use correct levels
vlc | branch: master | Marvin Scholz| Tue Jul 25 21:16:01 2017 +0200| [4e51c27add45a58ca735a7d6ef05092f551fc268] | committer: Rémi Denis-Courmont bonjour: clarify log messages and use correct levels Nearly all messages had level Info, which is unnecessary. Signed-off-by: Rémi Denis-Courmont > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4e51c27add45a58ca735a7d6ef05092f551fc268 --- modules/services_discovery/bonjour.m | 17 +++-- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/modules/services_discovery/bonjour.m b/modules/services_discovery/bonjour.m index 6f7261e5d6..f8f4388689 100644 --- a/modules/services_discovery/bonjour.m +++ b/modules/services_discovery/bonjour.m @@ -177,23 +177,21 @@ NSString *const VLCBonjourRendererDemux = @"VLCBonjourRendererDemux"; msg_Info(_p_this, "starting discovery"); for (NSDictionary *protocol in VLCSupportedProtocols) { -msg_Info(_p_this, "looking up %s", [[protocol objectForKey: VLCBonjourProtocolName] UTF8String]); - /* Only discover services if we actually have a module that can handle those */ if (!module_exists([[protocol objectForKey: VLCBonjourProtocolName] UTF8String]) && !_isRendererDiscovery) { -msg_Info(_p_this, "no module for %s, skipping", [[protocol objectForKey: VLCBonjourProtocolName] UTF8String]); +msg_Dbg(_p_this, "no module for %s, skipping", [[protocol objectForKey: VLCBonjourProtocolName] UTF8String]); continue; } /* Only discover hosts it they match the current mode (renderer or service) */ if ([[protocol objectForKey: VLCBonjourIsRenderer] boolValue] != _isRendererDiscovery) { -msg_Info(_p_this, "%s does not match current discovery mode, skipping", [[protocol objectForKey: VLCBonjourProtocolName] UTF8String]); +msg_Dbg(_p_this, "%s does not match current discovery mode, skipping", [[protocol objectForKey: VLCBonjourProtocolName] UTF8String]); continue; } NSNetServiceBrowser *serviceBrowser = [[NSNetServiceBrowser alloc] init]; [serviceBrowser setDelegate:self]; -msg_Info(_p_this, "starting discovery for type %s", [[protocol objectForKey: VLCBonjourProtocolServiceName] UTF8String]); +msg_Dbg(_p_this, "starting discovery for type %s", [[protocol objectForKey: VLCBonjourProtocolServiceName] UTF8String]); [serviceBrowser searchForServicesOfType:[protocol objectForKey: VLCBonjourProtocolServiceName] inDomain:@"local."]; [discoverers addObject:serviceBrowser]; [protocols addObject:protocol]; @@ -229,8 +227,7 @@ NSString *const VLCBonjourRendererDemux = @"VLCBonjourRendererDemux"; - (void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didFindService:(NSNetService *)aNetService moreComing:(BOOL)moreComing { -msg_Info(_p_this, "found something, looking up"); -msg_Dbg(self.p_this, "found bonjour service: %s (%s)", [aNetService.name UTF8String], [aNetService.type UTF8String]); +msg_Dbg(_p_this, "service found: %s (%s), resolving", [aNetService.name UTF8String], [aNetService.type UTF8String]); [_rawNetServices addObject:aNetService]; aNetService.delegate = self; [aNetService resolveWithTimeout:5.]; @@ -238,7 +235,7 @@ NSString *const VLCBonjourRendererDemux = @"VLCBonjourRendererDemux"; - (void)netServiceBrowser:(NSNetServiceBrowser *)aNetServiceBrowser didRemoveService:(NSNetService *)aNetService moreComing:(BOOL)moreComing { -msg_Dbg(self.p_this, "bonjour service disappeared: %s", [aNetService.name UTF8String]); +msg_Dbg(self.p_this, "service disappeared: %s (%s), removing", [aNetService.name UTF8String], [aNetService.type UTF8String]); /* If the item was not looked-up yet, just remove it */ if ([_rawNetServices containsObject:aNetService]) @@ -266,7 +263,7 @@ NSString *const VLCBonjourRendererDemux = @"VLCBonjourRendererDemux"; - (void)netServiceDidResolveAddress:(NSNetService *)aNetService { -msg_Info(_p_this, "resolved something"); +msg_Dbg(_p_this, "service resolved: %s", [aNetService.name UTF8String]); if (![_resolvedNetServices containsObject:aNetService]) { NSString *serviceType = aNetService.type; NSString *protocol = nil; @@ -288,7 +285,7 @@ NSString *const VLCBonjourRendererDemux = @"VLCBonjourRendererDemux"; - (void)netService:(NSNetService *)aNetService didNotResolve:(NSDictionary *)errorDict { -msg_Dbg(_p_this, "failed to resolve: %s", [aNetService.name UTF8String]); +msg_Warn(_p_this, "service resolution failed: %s, removing", [aNetService.name UTF8String]); [_rawNetServices removeObject:aNetService]; } ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: adaptive: fix cross category es recycling
vlc | branch: master | Francois Cartegnie| Wed Jul 26 16:35:39 2017 +0200| [403dfe1a9a48fbc1c946b55cc4ba9269aaf1ba84] | committer: Francois Cartegnie demux: adaptive: fix cross category es recycling refs #18565 > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=403dfe1a9a48fbc1c946b55cc4ba9269aaf1ba84 --- modules/demux/adaptive/plumbing/FakeESOutID.cpp | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/modules/demux/adaptive/plumbing/FakeESOutID.cpp b/modules/demux/adaptive/plumbing/FakeESOutID.cpp index 73076a2773..41b93d9904 100644 --- a/modules/demux/adaptive/plumbing/FakeESOutID.cpp +++ b/modules/demux/adaptive/plumbing/FakeESOutID.cpp @@ -72,12 +72,15 @@ const es_format_t *FakeESOutID::getFmt() const bool FakeESOutID::isCompatible( const FakeESOutID *p_other ) const { +if( p_other->fmt.i_cat != fmt.i_cat ) +return false; + switch(fmt.i_codec) { case VLC_CODEC_H264: case VLC_CODEC_HEVC: case VLC_CODEC_VC1: -return true; +return true; default: if(fmt.i_cat == AUDIO_ES) ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] demux: adaptive: missing es_format_Init
vlc | branch: master | Francois Cartegnie| Wed Jul 26 16:33:21 2017 +0200| [ecdb644390011a2836bb5da9abb9c37926d873dd] | committer: Francois Cartegnie demux: adaptive: missing es_format_Init > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ecdb644390011a2836bb5da9abb9c37926d873dd --- modules/demux/adaptive/plumbing/FakeESOut.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/demux/adaptive/plumbing/FakeESOut.cpp b/modules/demux/adaptive/plumbing/FakeESOut.cpp index 47976f2fe1..acc00c0520 100644 --- a/modules/demux/adaptive/plumbing/FakeESOut.cpp +++ b/modules/demux/adaptive/plumbing/FakeESOut.cpp @@ -91,6 +91,7 @@ void FakeESOut::setExtraInfoProvider( ExtraFMTInfoInterface *extra ) FakeESOutID * FakeESOut::createNewID( const es_format_t *p_fmt ) { es_format_t fmtcopy; +es_format_Init( , p_fmt->i_cat, p_fmt->i_codec ); es_format_Copy( , p_fmt ); fmtcopy.i_group = 0; /* Always ignore group for adaptive */ fmtcopy.i_id = -1; ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lib: renderer_discoverer: add item hold/release
vlc | branch: master | Thomas Guillem| Wed Jul 26 16:32:29 2017 +0200| [a24cd3f685f96e463385f3146bd74de17f8c371a] | committer: Thomas Guillem lib: renderer_discoverer: add item hold/release Libvlc users need to hold a reference to an item before using it. This avoid use-after-free if the delete callback is called while an item is used by the media player. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a24cd3f685f96e463385f3146bd74de17f8c371a --- include/vlc/libvlc_events.h | 4 ++-- include/vlc/libvlc_renderer_discoverer.h | 26 +- lib/renderer_discoverer.c| 13 + 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/include/vlc/libvlc_events.h b/include/vlc/libvlc_events.h index b69c5ce2be..f8b0e9b5b2 100644 --- a/include/vlc/libvlc_events.h +++ b/include/vlc/libvlc_events.h @@ -277,11 +277,11 @@ typedef struct libvlc_event_t struct { -const libvlc_renderer_item_t *item; +libvlc_renderer_item_t *item; } renderer_discoverer_item_added; struct { -const libvlc_renderer_item_t *item; +libvlc_renderer_item_t *item; } renderer_discoverer_item_deleted; } u; /**< Type-dependent event description */ } libvlc_event_t; diff --git a/include/vlc/libvlc_renderer_discoverer.h b/include/vlc/libvlc_renderer_discoverer.h index 45095061e0..e63a8c9c2a 100644 --- a/include/vlc/libvlc_renderer_discoverer.h +++ b/include/vlc/libvlc_renderer_discoverer.h @@ -66,6 +66,29 @@ typedef struct libvlc_rd_description_t */ typedef struct libvlc_renderer_item_t libvlc_renderer_item_t; + +/** + * Hold a renderer item, i.e. creates a new reference + * + * This functions need to called from the libvlc_RendererDiscovererItemAdded + * callback if the libvlc user wants to use this item after. (for display or + * for passing it to the mediaplayer for example). + * + * \version LibVLC 3.0.0 or later + * + * \return the current item + */ +LIBVLC_API libvlc_renderer_item_t * +libvlc_renderer_item_hold(libvlc_renderer_item_t *p_item); + +/** + * Releases a renderer item, i.e. decrements its reference counter + * + * \version LibVLC 3.0.0 or later + */ +LIBVLC_API void +libvlc_renderer_item_release(libvlc_renderer_item_t *p_item); + /** * Get the human readable name of a renderer item * @@ -178,7 +201,8 @@ libvlc_renderer_discoverer_stop( libvlc_renderer_discoverer_t *p_rd ); * and @ref libvlc_RendererDiscovererItemDeleted. * * The @ref libvlc_renderer_item_t struct passed to event callbacks is owned by - * VLC, users should take care of copying this struct for their internal usage. + * VLC, users should take care of holding/releasing this struct for their + * internal usage. * * \see libvlc_event_t.u.renderer_discoverer_item_added.item * \see libvlc_event_t.u.renderer_discoverer_item_removed.item diff --git a/lib/renderer_discoverer.c b/lib/renderer_discoverer.c index c2adf26480..a9aaee35c5 100644 --- a/lib/renderer_discoverer.c +++ b/lib/renderer_discoverer.c @@ -90,6 +90,19 @@ static void renderer_discovery_item_removed( vlc_renderer_discovery_t *rd, vlc_renderer_item_release( p_item ); } +libvlc_renderer_item_t * +libvlc_renderer_item_hold(libvlc_renderer_item_t *p_item) +{ +vlc_renderer_item_hold( (vlc_renderer_item_t *) p_item ); +return p_item; +} + +void +libvlc_renderer_item_release(libvlc_renderer_item_t *p_item) +{ +vlc_renderer_item_release( (vlc_renderer_item_t *) p_item ); +} + const char * libvlc_renderer_item_name( const libvlc_renderer_item_t *p_item ) { ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] lib: renderer_discoverer: fix bad cast
vlc | branch: master | Thomas Guillem| Wed Jul 26 16:18:27 2017 +0200| [9114d112f0a43aed2aa172d660434c71dd167e2e] | committer: Thomas Guillem lib: renderer_discoverer: fix bad cast > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9114d112f0a43aed2aa172d660434c71dd167e2e --- lib/renderer_discoverer.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/renderer_discoverer.c b/lib/renderer_discoverer.c index ee5c80752b..c2adf26480 100644 --- a/lib/renderer_discoverer.c +++ b/lib/renderer_discoverer.c @@ -93,25 +93,25 @@ static void renderer_discovery_item_removed( vlc_renderer_discovery_t *rd, const char * libvlc_renderer_item_name( const libvlc_renderer_item_t *p_item ) { -return vlc_renderer_item_name( (vlc_renderer_item_t *) p_item ); +return vlc_renderer_item_name( (const vlc_renderer_item_t *) p_item ); } const char * libvlc_renderer_item_type( const libvlc_renderer_item_t *p_item ) { -return vlc_renderer_item_type( (vlc_renderer_item_t *) p_item ); +return vlc_renderer_item_type( (const vlc_renderer_item_t *) p_item ); } const char * libvlc_renderer_item_icon_uri( const libvlc_renderer_item_t *p_item ) { -return vlc_renderer_item_icon_uri( (vlc_renderer_item_t *) p_item ); +return vlc_renderer_item_icon_uri( (const vlc_renderer_item_t *) p_item ); } int libvlc_renderer_item_flags( const libvlc_renderer_item_t *p_item ) { -return vlc_renderer_item_flags( (vlc_renderer_item_t *) p_item ); +return vlc_renderer_item_flags( (const vlc_renderer_item_t *) p_item ); } libvlc_renderer_discoverer_t * ___ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits
[vlc-commits] macosx: remove noise filter from GUI
vlc | branch: master | Victorien Le Couviour--Tuffet| Wed Jul 26 14:33:03 2017 +0200| [a67ee64077f0dd4df9913a3cc37314868ec99052] | committer: Jean-Baptiste Kempf macosx: remove noise filter from GUI This filter has been removed between 1.1.13 and 2.0.0. Closes #18483. Signed-off-by: Jean-Baptiste Kempf > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a67ee64077f0dd4df9913a3cc37314868ec99052 --- modules/gui/macosx/UI/VideoEffects.xib | 13 - modules/gui/macosx/VLCVideoEffectsWindowController.h | 2 -- modules/gui/macosx/VLCVideoEffectsWindowController.m | 8 3 files changed, 23 deletions(-) diff --git a/modules/gui/macosx/UI/VideoEffects.xib b/modules/gui/macosx/UI/VideoEffects.xib index a9adf7e4bb..4b5607b219 100644 --- a/modules/gui/macosx/UI/VideoEffects.xib +++ b/modules/gui/macosx/UI/VideoEffects.xib @@ -73,7 +73,6 @@ - @@ -1162,16 +1161,6 @@ - - - - - - - - - - @@ -1502,7 +1491,6 @@ - @@ -1515,7 +1503,6 @@ - diff --git a/modules/gui/macosx/VLCVideoEffectsWindowController.h b/modules/gui/macosx/VLCVideoEffectsWindowController.h index 243fc88a26..f09a5ada2a 100644 --- a/modules/gui/macosx/VLCVideoEffectsWindowController.h +++ b/modules/gui/macosx/VLCVideoEffectsWindowController.h @@ -108,7 +108,6 @@ @property (readwrite, weak) IBOutlet NSTextField *sepiaLabel; @property (readwrite, weak) IBOutlet NSTextField *sepiaTextField; @property (readwrite, weak) IBOutlet NSStepper *sepiaStepper; -@property (readwrite, weak) IBOutlet NSButton *noiseCheckbox; @property (readwrite, weak) IBOutlet NSButton *gradientCheckbox; @property (readwrite, weak) IBOutlet NSTextField *gradientModeLabel; @property (readwrite, weak) IBOutlet NSPopUpButton *gradientModePopup; @@ -205,7 +204,6 @@ - (IBAction)thresholdModifierChanged:(id)sender; - (IBAction)enableSepia:(id)sender; - (IBAction)sepiaModifierChanged:(id)sender; -- (IBAction)enableNoise:(id)sender; - (IBAction)enableGradient:(id)sender; - (IBAction)gradientModifierChanged:(id)sender; - (IBAction)enableExtract:(id)sender; diff --git a/modules/gui/macosx/VLCVideoEffectsWindowController.m b/modules/gui/macosx/VLCVideoEffectsWindowController.m index 539e2143f5..d9d8b1a04f 100644 --- a/modules/gui/macosx/VLCVideoEffectsWindowController.m +++ b/modules/gui/macosx/VLCVideoEffectsWindowController.m @@ -241,7 +241,6 @@ [_thresholdSimilarityLabel setStringValue:_NS("Similarity")]; [_sepiaCheckbox setTitle:_NS("Sepia")]; [_sepiaLabel setStringValue:_NS("Intensity")]; -[_noiseCheckbox setTitle:_NS("Noise")]; [_gradientCheckbox setTitle:_NS("Gradient")]; [_gradientModeLabel setStringValue:_NS("Mode")]; [_gradientModePopup removeAllItems]; @@ -459,7 +458,6 @@ [_puzzleCheckbox setState: (NSInteger)strstr(psz_vfilters, "puzzle")]; [_thresholdCheckbox setState: (NSInteger)strstr(psz_vfilters, "colorthres")]; [_sepiaCheckbox setState: (NSInteger)strstr(psz_vfilters, "sepia")]; -[_noiseCheckbox setState: (NSInteger)strstr(psz_vfilters, "noise")]; [_gradientCheckbox setState: (NSInteger)strstr(psz_vfilters, "gradient")]; [_extractCheckbox setState: (NSInteger)strstr(psz_vfilters, "extract")]; [_invertCheckbox setState: (NSInteger)strstr(psz_vfilters, "invert")]; @@ -481,7 +479,6 @@ [_puzzleCheckbox setState: NSOffState]; [_thresholdCheckbox setState: NSOffState]; [_sepiaCheckbox setState: NSOffState]; -[_noiseCheckbox setState: