On 3/9/18, Paul B Mahol <one...@gmail.com> wrote: > On 3/9/18, Hazem Ashmawy <hazem.s.ashm...@gmail.com> wrote: >> On 3/9/18, Paul B Mahol <one...@gmail.com> wrote: >>> On 3/9/18, Hazem Ashmawy <hazem.s.ashm...@gmail.com> wrote: >>>> Add filter to convert between various panorama projections. It supports >>>> Equirectangular and Cubemaps (3x2 and 6x1 cubemap layouts). >>>> >>>> commit a8d80408bd9d99542cc29f30d7e6b00771846029 >>>> Author: Hazem Ashmawy <hazem.s.ashm...@gmail.com> >>>> Date: Thu Mar 8 10:09:36 2018 +0200 >>>> >>>> avfilter: add convertion to/from cubemap 6x1 >>>> >>>> Signed-off-by: Hazem Ashmawy <hazem.s.ashm...@gmail.com> >>>> >>>> commit f9f6a6cc0ceb1a4e749041658b7a441696b82588 >>>> Author: Paul B Mahol <one...@gmail.com> >>>> Date: Thu Dec 3 21:15:13 2015 +0100 >>>> >>>> avfilter: add panorama filter >>>> >>>> Signed-off-by: Paul B Mahol <one...@gmail.com> >>>> >>>> Signed-off-by: Hazem Ashmawy <hazem.s.ashm...@gmail.com> >>>> --- >>>> libavfilter/Makefile | 1 + >>>> libavfilter/allfilters.c | 1 + >>>> libavfilter/vf_panorama.c | 553 >>>> ++++++++++++++++++++++++++++++++++++++++++++++ >>>> 3 files changed, 555 insertions(+) >>>> create mode 100644 libavfilter/vf_panorama.c >>>> >>> >>> Here is partial change for converting 3x2 cubemap as given by latest >>> youtube videos to >>> equirectangular projection: >> >> Should I modify cube faces order to match the one specified here too? >> https://github.com/google/spatial-media/blob/master/docs/spherical-video-v2-rfc.md#semantics-3 > > Yes, The 3x2 cubemap projection should be what google use. > > There is also facebook own cubemap layout IIRC, but that one can came > later. > >> >>> >>> | diff --git a/libavfilter/vf_panorama.c b/libavfilter/vf_panorama.c >>> | index 7d9de5b62c..4d43fc0dd5 100644 >>> | --- a/libavfilter/vf_panorama.c >>> | +++ b/libavfilter/vf_panorama.c >>> | @@ -394,9 +394,9 @@ static int config_output(AVFilterLink *outlink) >>> | >>> | phi_threshold = atan2(1., 1. / cos(theta_norm)); >>> | if (phi > phi_threshold) { >>> | - face = DOWN; >>> | - } else if (phi < -phi_threshold) { >>> | face = TOP; >>> | + } else if (phi < -phi_threshold) { >>> | + face = DOWN; >>> | } else { >>> | ; >>> | } >>> | @@ -411,14 +411,14 @@ static int config_output(AVFilterLink *outlink) >>> | case RIGHT: >>> | locate(z, y, x, M_PI_2, rw, rh, &ox, &oy); >>> | break; >>> | - case TOP: >>> | - locate(y, z, x, M_PI, rw, rh, &ox, &oy); >>> | + case DOWN: >>> | + locate(y, z, x, M_PI_2, rw, rh, &ox, &oy); >>> | break; >>> | case BACK: >>> | - locate(x, y, z,-M_PI_2, rw, rh, &ox, &oy); >>> | + locate(x, y, z, 0, rw, rh, &ox, &oy); >>> | break; >>> | - case DOWN: >>> | - locate(y, x, z,-M_PI_2, rw, rh, &ox, &oy); >>> | + case TOP: >>> | + locate(y, x, z, M_PI , rw, rh, &ox, &oy); >>> | break; >>> | } >>> | >>> >>> Could you incorporate this? >>> And also update all other conversions so thay match with this one? >> Sure, I'll work on this. > > Good, you will also need to add frame side data support... but that can > wait.
Actually frame side data support can not be used due certain libavfilter limitations, same ones as 3D frame side data patch for stereo3d filter. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel