X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=dpvsimpledecode.c;h=ed89260a9f97a857617d01c55a4f8fb8c445ade1;hb=1b56e4705e3747aba411999aa9f696017f10fca7;hp=a72bf3645f86b40fea31ae22e021bd3fc67e5833;hpb=cfee52a1ec9db338098789cae89ae5cf1f7a6fbf;p=xonotic%2Fdarkplaces.git diff --git a/dpvsimpledecode.c b/dpvsimpledecode.c index a72bf364..ed89260a 100644 --- a/dpvsimpledecode.c +++ b/dpvsimpledecode.c @@ -230,6 +230,7 @@ typedef struct dpvsimpledecodestream_s unsigned int info_imageBmask; unsigned int info_imageBshift; unsigned int info_imagesize; + double info_aspectratio; // current video frame (needed because of delta compression) int videoframenum; @@ -360,6 +361,7 @@ void *dpvsimpledecode_open(clvideo_t *video, char *filename, const char **errors s->info_imagewidth = hz_bitstream_read_short(s->framedatablocks); s->info_imageheight = hz_bitstream_read_short(s->framedatablocks); s->info_framerate = (double) hz_bitstream_read_int(s->framedatablocks) * (1.0 / 65536.0); + s->info_aspectratio = (double)s->info_imagewidth / (double)s->info_imageheight; if (s->info_framerate > 0.0) { @@ -391,6 +393,7 @@ void *dpvsimpledecode_open(clvideo_t *video, char *filename, const char **errors video->getheight = dpvsimpledecode_getheight; video->getframerate = dpvsimpledecode_getframerate; video->decodeframe = dpvsimpledecode_video; + video->getaspectratio = dpvsimpledecode_getaspectratio; return s; } @@ -512,6 +515,13 @@ double dpvsimpledecode_getframerate(void *stream) return s->info_framerate; } +// return aspect ratio of the stream +double dpvsimpledecode_getaspectratio(void *stream) +{ + dpvsimpledecodestream_t *s = (dpvsimpledecodestream_t *)stream; + return s->info_aspectratio; +} + static int dpvsimpledecode_convertpixels(dpvsimpledecodestream_t *s, void *imagedata, int imagebytesperrow) { unsigned int a, x, y, width, height;