[vlc-devel] [vlc-commits] demux: ts: add support for multiview descriptor

Rémi Denis-Courmont remi at remlab.net
Thu Jul 27 12:12:29 CEST 2017


Le 27 juillet 2017 11:52:32 GMT+03:00, Steve Lhomme <robux4 at gmail.com> a écrit :
>On Thu, Jul 27, 2017 at 10:36 AM, Francois Cartegnie <git at videolan.org>
>wrote:
>> vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Thu
>Jul 27 10:33:04 2017 +0200| [800f01edded9399f4c4721f1fcc35747d5f04678]
>| committer: Francois Cartegnie
>>
>> demux: ts: add support for multiview descriptor
>>
>>>
>http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=800f01edded9399f4c4721f1fcc35747d5f04678
>> ---
>>
>>  modules/demux/mpeg/ts_psi.c | 25 +++++++++++++++++++++++++
>>  1 file changed, 25 insertions(+)
>>
>> diff --git a/modules/demux/mpeg/ts_psi.c
>b/modules/demux/mpeg/ts_psi.c
>> index 4c5d0c7871..37ebab8555 100644
>> --- a/modules/demux/mpeg/ts_psi.c
>> +++ b/modules/demux/mpeg/ts_psi.c
>> @@ -922,6 +922,28 @@ explicit_config_too_short:
>>      msg_Err(demux, "Opus descriptor too short");
>>  }
>>
>> +static void PMTSetupEs0x02( ts_es_t *p_es,
>> +                            const dvbpsi_pmt_es_t *p_dvbpsies )
>> +{
>> +    /* MPEG2_stereoscopic_video_format_descriptor */
>> +    dvbpsi_descriptor_t *p_dr = PMTEsFindDescriptor( p_dvbpsies,
>0x34 );
>> +    if( p_dr && p_dr->i_length > 0 && (p_dr->p_data[0] & 0x80) )
>> +    {
>> +        video_multiview_mode_t mode;
>> +        switch( p_dr->p_data[0] & 0x7F )
>> +        {
>> +            case 0x03:
>> +                mode = MULTIVIEW_STEREO_SBS; break;
>> +            case 0x04:
>> +                mode = MULTIVIEW_STEREO_TB; break;
>> +            case 0x08:
>> +            default:
>
>If default means "I don't know this value" it should be set to unknown
>(which doesn't exist yet).
>Mohammed Huzaifa Danish has a patch to add it:
>
>https://code.videolan.org/GSoC2017/Shaan/vlc/commit/016a953f3e91c015fdbc2e41aeac64497edc9212
>
>
>> +                mode = MULTIVIEW_2D; break;
>> +        }
>> +        p_es->fmt.video.multiview_mode = mode;
>> +    }
>> +}
>> +
>>  static void PMTSetupEs0x05PrivateData( demux_t *p_demux, ts_es_t
>*p_es,
>>                                         const dvbpsi_pmt_es_t
>*p_dvbpsies )
>>  {
>> @@ -1427,6 +1449,9 @@ static void FillPESFromDvbpsiES( demux_t
>*p_demux,
>>
>>          switch( p_dvbpsies->i_type )
>>          {
>> +        case 0x02:
>> +            PMTSetupEs0x02( p_pes->p_es, p_dvbpsies );
>> +            break;
>>          case 0x05: /* Private data in sections */
>>              p_pes->transport = TS_TRANSPORT_SECTIONS;
>>              PMTSetupEs0x05PrivateData( p_demux, p_pes->p_es,
>p_dvbpsies );
>>
>> _______________________________________________
>> vlc-commits mailing list
>> vlc-commits at videolan.org
>> https://mailman.videolan.org/listinfo/vlc-commits
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

Is there any content that explicitly states 2D? Otherwise the distinction with unknown does not make much sense.

And the default should be 2D, anyway. Most codecs and file formats never support 3D anything (not talking about TS).
-- 
Rémi Denis-Courmont
Typed on an inconvenient virtual keyboard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20170727/24a9fc98/attachment.html>


More information about the vlc-devel mailing list