On Fri, Jan 13, 2012 at 12:40:10AM -0500, Justin Ruggles wrote:
> ---
> I forgot that gsm-ms has a larger block duration.
>
> libavcodec/gsm_parser.c | 14 ++++++++++++--
> 1 files changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/gsm_parser.c b/libavcodec/gsm_parser.c
> index a2965d3..89afe80 100644
> --- a/libavcodec/gsm_parser.c
> +++ b/libavcodec/gsm_parser.c
> @@ -31,6 +31,7 @@
> typedef struct GSMParseContext {
> ParseContext pc;
> int block_size;
> + int duration;
> int remaining;
> } GSMParseContext;
>
> @@ -44,8 +45,14 @@ static int gsm_parse(AVCodecParserContext *s1,
> AVCodecContext *avctx,
>
> if (!s->block_size) {
> switch (avctx->codec_id) {
> - case CODEC_ID_GSM: s->block_size = GSM_BLOCK_SIZE; break;
> - case CODEC_ID_GSM_MS: s->block_size = GSM_MS_BLOCK_SIZE; break;
> + case CODEC_ID_GSM:
> + s->block_size = GSM_BLOCK_SIZE;
> + s->duration = GSM_FRAME_SIZE;
> + break;
> + case CODEC_ID_GSM_MS:
> + s->block_size = GSM_MS_BLOCK_SIZE;
> + s->duration = GSM_FRAME_SIZE * 2;
> + break;
> default:
> return AVERROR(EINVAL);
> }
> @@ -66,6 +73,9 @@ static int gsm_parse(AVCodecParserContext *s1,
> AVCodecContext *avctx,
> *poutbuf_size = 0;
> return buf_size;
> }
> +
> + s1->duration = s->duration;
> +
> *poutbuf = buf;
> *poutbuf_size = buf_size;
> return next;
> --
looks OK
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel