On Tue, Jan 24, 2012 at 11:57:18AM -0500, Justin Ruggles wrote:
> According to Multimedia Wiki documentation, the frame rate is not always 15,
> and the actual value can be found in the header.
> ---
> libavformat/westwood_vqa.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/libavformat/westwood_vqa.c b/libavformat/westwood_vqa.c
> index 9a48263..9e5b211 100644
> --- a/libavformat/westwood_vqa.c
> +++ b/libavformat/westwood_vqa.c
> @@ -51,7 +51,6 @@
> #define CMDS_TAG MKBETAG('C', 'M', 'D', 'S')
>
> #define VQA_HEADER_SIZE 0x2A
> -#define VQA_FRAMERATE 15
> #define VQA_PREAMBLE_SIZE 8
>
> typedef struct WsVqaDemuxContext {
> @@ -93,7 +92,6 @@ static int wsvqa_read_header(AVFormatContext *s,
> if (!st)
> return AVERROR(ENOMEM);
> st->start_time = 0;
> - avpriv_set_pts_info(st, 33, 1, VQA_FRAMERATE);
> wsvqa->video_stream_index = st->index;
> st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
> st->codec->codec_id = CODEC_ID_WS_VQA;
> @@ -113,6 +111,7 @@ static int wsvqa_read_header(AVFormatContext *s,
> }
> st->codec->width = AV_RL16(&header[6]);
> st->codec->height = AV_RL16(&header[8]);
> + avpriv_set_pts_info(st, 64, 1, header[12]);
>
> /* initialize the audio decoder stream for VQA v1 or nonzero samplerate
> */
> if (AV_RL16(&header[24]) || (AV_RL16(&header[0]) == 1 &&
> AV_RL16(&header[2]) == 1)) {
> --
I'd add a check for stupid FPS values (<1 and >30), otherwise OK
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel