[FFmpeg-devel] [PATCH] avformat/movenc: correct loci parameter handling
Gyan Doshi
ffmpeg at gyani.pro
Sat Apr 1 07:12:28 EEST 2023
Plan to push in 48h.
On 2023-03-26 01:11 pm, Gyan Doshi wrote:
> 3GPP TS 26.244 Table 8.10 specifies that longitude is written before
> latitude. The MOV demuxer already expects the correct order. So, write
> them in that order.
>
> However, the user supplied string may also be used in MOV mode which
> requires ISO 6709 format which specifies latitude first. The demuxer
> also exports the loci value in that format. So parser adjusted as well.
> ---
> libavformat/movenc.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libavformat/movenc.c b/libavformat/movenc.c
> index 68e7f8222b..c370922c7d 100644
> --- a/libavformat/movenc.c
> +++ b/libavformat/movenc.c
> @@ -4021,13 +4021,13 @@ static int mov_write_loci_tag(AVFormatContext *s, AVIOContext *pb)
> return 0;
>
> ptr = t->value;
> - longitude = strtod(ptr, &end);
> + latitude = strtod(ptr, &end);
> if (end == ptr) {
> av_log(s, AV_LOG_WARNING, "malformed location metadata\n");
> return 0;
> }
> ptr = end;
> - latitude = strtod(ptr, &end);
> + longitude = strtod(ptr, &end);
> if (end == ptr) {
> av_log(s, AV_LOG_WARNING, "malformed location metadata\n");
> return 0;
> @@ -4048,8 +4048,8 @@ static int mov_write_loci_tag(AVFormatContext *s, AVIOContext *pb)
> avio_wb16(pb, lang);
> avio_write(pb, place, strlen(place) + 1);
> avio_w8(pb, 0); /* role of place (0 == shooting location, 1 == real location, 2 == fictional location) */
> - avio_wb32(pb, latitude_fix);
> avio_wb32(pb, longitude_fix);
> + avio_wb32(pb, latitude_fix);
> avio_wb32(pb, altitude_fix);
> avio_write(pb, astronomical_body, strlen(astronomical_body) + 1);
> avio_w8(pb, 0); /* additional notes, null terminated string */
More information about the ffmpeg-devel
mailing list