Re: [FFmpeg-devel] [PATCHv3 2/3] mov: Export bounds and padding from spherical metadata

2017-03-07 Thread James Almer
On 2/28/2017 1:24 PM, Vittorio Giovara wrote:
> On Tue, Feb 28, 2017 at 10:58 AM, James Almer  wrote:
>> On 2/21/2017 8:07 PM, James Almer wrote:
>>> On 2/21/2017 7:35 PM, Vittorio Giovara wrote:
 Update the fate test as needed.
 ---
  libavformat/mov.c | 28 +++-
  tests/ref/fate/mov-spherical-mono |  6 +-
  2 files changed, 32 insertions(+), 2 deletions(-)

 diff --git a/libavformat/mov.c b/libavformat/mov.c
 index 7b0bbcc..d798336 100644
 --- a/libavformat/mov.c
 +++ b/libavformat/mov.c
 @@ -4637,6 +4637,8 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
 *pb, MOVAtom atom)
  MOVStreamContext *sc;
  int size, version;
  int32_t yaw, pitch, roll;
 +size_t l, t, r, b;
 +size_t padding = 0;
  uint32_t tag;
  enum AVSphericalProjection projection;

 @@ -4716,9 +4718,25 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
 *pb, MOVAtom atom)
  switch (tag) {
  case MKTAG('c','b','m','p'):
  projection = AV_SPHERICAL_CUBEMAP;
 +padding = avio_rb32(pb);
>>>
>>> Doesn't layout come first?
> 
> Ah, that's right, thanks

You pushed this patch without fixing it...

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCHv3 2/3] mov: Export bounds and padding from spherical metadata

2017-02-28 Thread Vittorio Giovara
On Tue, Feb 28, 2017 at 10:58 AM, James Almer  wrote:
> On 2/21/2017 8:07 PM, James Almer wrote:
>> On 2/21/2017 7:35 PM, Vittorio Giovara wrote:
>>> Update the fate test as needed.
>>> ---
>>>  libavformat/mov.c | 28 +++-
>>>  tests/ref/fate/mov-spherical-mono |  6 +-
>>>  2 files changed, 32 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>>> index 7b0bbcc..d798336 100644
>>> --- a/libavformat/mov.c
>>> +++ b/libavformat/mov.c
>>> @@ -4637,6 +4637,8 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
>>> *pb, MOVAtom atom)
>>>  MOVStreamContext *sc;
>>>  int size, version;
>>>  int32_t yaw, pitch, roll;
>>> +size_t l, t, r, b;
>>> +size_t padding = 0;
>>>  uint32_t tag;
>>>  enum AVSphericalProjection projection;
>>>
>>> @@ -4716,9 +4718,25 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
>>> *pb, MOVAtom atom)
>>>  switch (tag) {
>>>  case MKTAG('c','b','m','p'):
>>>  projection = AV_SPHERICAL_CUBEMAP;
>>> +padding = avio_rb32(pb);
>>
>> Doesn't layout come first?

Ah, that's right, thanks
-- 
Vittorio
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCHv3 2/3] mov: Export bounds and padding from spherical metadata

2017-02-28 Thread James Almer
On 2/21/2017 8:07 PM, James Almer wrote:
> On 2/21/2017 7:35 PM, Vittorio Giovara wrote:
>> Update the fate test as needed.
>> ---
>>  libavformat/mov.c | 28 +++-
>>  tests/ref/fate/mov-spherical-mono |  6 +-
>>  2 files changed, 32 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>> index 7b0bbcc..d798336 100644
>> --- a/libavformat/mov.c
>> +++ b/libavformat/mov.c
>> @@ -4637,6 +4637,8 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
>> *pb, MOVAtom atom)
>>  MOVStreamContext *sc;
>>  int size, version;
>>  int32_t yaw, pitch, roll;
>> +size_t l, t, r, b;
>> +size_t padding = 0;
>>  uint32_t tag;
>>  enum AVSphericalProjection projection;
>>  
>> @@ -4716,9 +4718,25 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
>> *pb, MOVAtom atom)
>>  switch (tag) {
>>  case MKTAG('c','b','m','p'):
>>  projection = AV_SPHERICAL_CUBEMAP;
>> +padding = avio_rb32(pb);
> 
> Doesn't layout come first?
> 
>>  break;
>>  case MKTAG('e','q','u','i'):
>> -projection = AV_SPHERICAL_EQUIRECTANGULAR;
>> +t = avio_rb32(pb);
>> +b = avio_rb32(pb);
>> +l = avio_rb32(pb);
>> +r = avio_rb32(pb);
>> +
>> +if (b >= UINT_MAX - t || r >= UINT_MAX - l) {
>> +av_log(c->fc, AV_LOG_ERROR,
>> +   "Invalid bounding rectangle coordinates "
>> +   "%zu,%zu,%zu,%zu\n", l, t, r, b);
>> +return AVERROR_INVALIDDATA;
>> +}
>> +
>> +if (l || t || r || b)
>> +projection = AV_SPHERICAL_EQUIRECTANGULAR_TILE;
>> +else
>> +projection = AV_SPHERICAL_EQUIRECTANGULAR;
>>  break;
>>  default:
>>  av_log(c->fc, AV_LOG_ERROR, "Unknown projection type\n");
>> @@ -4735,6 +4753,14 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
>> *pb, MOVAtom atom)
>>  sc->spherical->pitch = pitch;
>>  sc->spherical->roll  = roll;
>>  
>> +sc->spherical->padding = padding;
>> +
>> +if (projection == AV_SPHERICAL_EQUIRECTANGULAR_TILE) {
>> +sc->spherical->bound_left   = l;
>> +sc->spherical->bound_top= t;
>> +sc->spherical->bound_right  = r;
>> +sc->spherical->bound_bottom = b;
>> +}
>>  return 0;
>>  }
>>  
>> diff --git a/tests/ref/fate/mov-spherical-mono 
>> b/tests/ref/fate/mov-spherical-mono
>> index 8048aff..a70d879 100644
>> --- a/tests/ref/fate/mov-spherical-mono
>> +++ b/tests/ref/fate/mov-spherical-mono
>> @@ -8,7 +8,11 @@ inverted=0
>>  [SIDE_DATA]
>>  side_data_type=Spherical Mapping
>>  side_data_size=56
>> -projection=equirectangular
>> +projection=tiled equirectangular
>> +bound_left=148
>> +bound_top=73
>> +bound_right=147
>> +bound_bottom=72
>>  yaw=45
>>  pitch=30
>>  roll=15
>>

CCing this time because i forgot last time. Sorry

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCHv3 2/3] mov: Export bounds and padding from spherical metadata

2017-02-21 Thread James Almer
On 2/21/2017 7:35 PM, Vittorio Giovara wrote:
> Update the fate test as needed.
> ---
>  libavformat/mov.c | 28 +++-
>  tests/ref/fate/mov-spherical-mono |  6 +-
>  2 files changed, 32 insertions(+), 2 deletions(-)
> 
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index 7b0bbcc..d798336 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -4637,6 +4637,8 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
> *pb, MOVAtom atom)
>  MOVStreamContext *sc;
>  int size, version;
>  int32_t yaw, pitch, roll;
> +size_t l, t, r, b;
> +size_t padding = 0;
>  uint32_t tag;
>  enum AVSphericalProjection projection;
>  
> @@ -4716,9 +4718,25 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
> *pb, MOVAtom atom)
>  switch (tag) {
>  case MKTAG('c','b','m','p'):
>  projection = AV_SPHERICAL_CUBEMAP;
> +padding = avio_rb32(pb);

Doesn't layout come first?

>  break;
>  case MKTAG('e','q','u','i'):
> -projection = AV_SPHERICAL_EQUIRECTANGULAR;
> +t = avio_rb32(pb);
> +b = avio_rb32(pb);
> +l = avio_rb32(pb);
> +r = avio_rb32(pb);
> +
> +if (b >= UINT_MAX - t || r >= UINT_MAX - l) {
> +av_log(c->fc, AV_LOG_ERROR,
> +   "Invalid bounding rectangle coordinates "
> +   "%zu,%zu,%zu,%zu\n", l, t, r, b);
> +return AVERROR_INVALIDDATA;
> +}
> +
> +if (l || t || r || b)
> +projection = AV_SPHERICAL_EQUIRECTANGULAR_TILE;
> +else
> +projection = AV_SPHERICAL_EQUIRECTANGULAR;
>  break;
>  default:
>  av_log(c->fc, AV_LOG_ERROR, "Unknown projection type\n");
> @@ -4735,6 +4753,14 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext 
> *pb, MOVAtom atom)
>  sc->spherical->pitch = pitch;
>  sc->spherical->roll  = roll;
>  
> +sc->spherical->padding = padding;
> +
> +if (projection == AV_SPHERICAL_EQUIRECTANGULAR_TILE) {
> +sc->spherical->bound_left   = l;
> +sc->spherical->bound_top= t;
> +sc->spherical->bound_right  = r;
> +sc->spherical->bound_bottom = b;
> +}
>  return 0;
>  }
>  
> diff --git a/tests/ref/fate/mov-spherical-mono 
> b/tests/ref/fate/mov-spherical-mono
> index 8048aff..a70d879 100644
> --- a/tests/ref/fate/mov-spherical-mono
> +++ b/tests/ref/fate/mov-spherical-mono
> @@ -8,7 +8,11 @@ inverted=0
>  [SIDE_DATA]
>  side_data_type=Spherical Mapping
>  side_data_size=56
> -projection=equirectangular
> +projection=tiled equirectangular
> +bound_left=148
> +bound_top=73
> +bound_right=147
> +bound_bottom=72
>  yaw=45
>  pitch=30
>  roll=15
> 

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCHv3 2/3] mov: Export bounds and padding from spherical metadata

2017-02-21 Thread Vittorio Giovara
Update the fate test as needed.
---
 libavformat/mov.c | 28 +++-
 tests/ref/fate/mov-spherical-mono |  6 +-
 2 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 7b0bbcc..d798336 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -4637,6 +4637,8 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext *pb, 
MOVAtom atom)
 MOVStreamContext *sc;
 int size, version;
 int32_t yaw, pitch, roll;
+size_t l, t, r, b;
+size_t padding = 0;
 uint32_t tag;
 enum AVSphericalProjection projection;
 
@@ -4716,9 +4718,25 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext *pb, 
MOVAtom atom)
 switch (tag) {
 case MKTAG('c','b','m','p'):
 projection = AV_SPHERICAL_CUBEMAP;
+padding = avio_rb32(pb);
 break;
 case MKTAG('e','q','u','i'):
-projection = AV_SPHERICAL_EQUIRECTANGULAR;
+t = avio_rb32(pb);
+b = avio_rb32(pb);
+l = avio_rb32(pb);
+r = avio_rb32(pb);
+
+if (b >= UINT_MAX - t || r >= UINT_MAX - l) {
+av_log(c->fc, AV_LOG_ERROR,
+   "Invalid bounding rectangle coordinates "
+   "%zu,%zu,%zu,%zu\n", l, t, r, b);
+return AVERROR_INVALIDDATA;
+}
+
+if (l || t || r || b)
+projection = AV_SPHERICAL_EQUIRECTANGULAR_TILE;
+else
+projection = AV_SPHERICAL_EQUIRECTANGULAR;
 break;
 default:
 av_log(c->fc, AV_LOG_ERROR, "Unknown projection type\n");
@@ -4735,6 +4753,14 @@ static int mov_read_sv3d(MOVContext *c, AVIOContext *pb, 
MOVAtom atom)
 sc->spherical->pitch = pitch;
 sc->spherical->roll  = roll;
 
+sc->spherical->padding = padding;
+
+if (projection == AV_SPHERICAL_EQUIRECTANGULAR_TILE) {
+sc->spherical->bound_left   = l;
+sc->spherical->bound_top= t;
+sc->spherical->bound_right  = r;
+sc->spherical->bound_bottom = b;
+}
 return 0;
 }
 
diff --git a/tests/ref/fate/mov-spherical-mono 
b/tests/ref/fate/mov-spherical-mono
index 8048aff..a70d879 100644
--- a/tests/ref/fate/mov-spherical-mono
+++ b/tests/ref/fate/mov-spherical-mono
@@ -8,7 +8,11 @@ inverted=0
 [SIDE_DATA]
 side_data_type=Spherical Mapping
 side_data_size=56
-projection=equirectangular
+projection=tiled equirectangular
+bound_left=148
+bound_top=73
+bound_right=147
+bound_bottom=72
 yaw=45
 pitch=30
 roll=15
-- 
2.10.0

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel