static void parse_presentation_segment(AVCodecContext *avctx,

                                       const uint8_t *buf, int buf_size)

{

    PGSSubContext *ctx = avctx->priv_data;



    int x, y;



    int w = bytestream_get_be16(&buf);

    int h = bytestream_get_be16(&buf);



    av_dlog(avctx, "Video Dimensions %dx%d\n",

            w, h);

    if (av_image_check_size(w, h, 0, avctx) >= 0)

        avcodec_set_dimensions(avctx, w, h);



    /* Skip 1 bytes of unknown, frame rate? */

    buf++;



    ctx->presentation.id_number = bytestream_get_be16(&buf);



    /*

     * Skip 3 bytes of unknown:

     *     state

     *     palette_update_flag (0x80),

     *     palette_id_to_use,

     */

    buf += 3;



    ctx->presentation.object_number = bytestream_get_byte(&buf);

    if (!ctx->presentation.object_number)

        return;



    /*

     * Skip 4 bytes of unknown:

     *     object_id_ref (2 bytes),

     *     window_id_ref,

     *     composition_flag (0x80 - object cropped, 0x40 - object forced)

     */

    buf += 4;



    x = bytestream_get_be16(&buf);

    y = bytestream_get_be16(&buf);



    /* TODO If cropping, cropping_x, cropping_y, cropping_width, cropping_height (all 2 bytes).*/



    av_dlog(avctx, "Subtitle Placement x=%d, y=%d\n", x, y);



    if (x > avctx->width || y > avctx->height) {

        av_log(avctx, AV_LOG_ERROR, "Subtitle out of video bounds. x = %d, y = %d, video width = %d, video height = %d.\n",

               x, y, avctx->width, avctx->height);

        x = 0; y = 0;

    }



    /* Fill in dimensions */

    ctx->presentation.x = x;

    ctx->presentation.y = y;

}

static void parse_presentation_segment(AVCodecContext *avctx,

                                       const uint8_t *buf, int buf_size)

{

    PGSSubContext *ctx = avctx->priv_data;



    int x, y;



    int w = bytestream_get_be16(&buf);

    int h = bytestream_get_be16(&buf);



    av_dlog(avctx, "Video Dimensions %dx%d\n",

            w, h);

    if (av_image_check_size(w, h, 0, avctx) >= 0)

        avcodec_set_dimensions(avctx, w, h);



    

    buf++;



    ctx->presentation.id_number = bytestream_get_be16(&buf);



    











    buf += 3;



    ctx->presentation.object_number = bytestream_get_byte(&buf);

    if (!ctx->presentation.object_number)

        return;



    











    buf += 4;



    x = bytestream_get_be16(&buf);

    y = bytestream_get_be16(&buf);



    



    av_dlog(avctx, "Subtitle Placement x=%d, y=%d\n", x, y);



    if (x > avctx->width || y > avctx->height) {

        av_log(avctx, AV_LOG_ERROR, "Subtitle out of video bounds. x = %d, y = %d, video width = %d, video height = %d.\n",

               x, y, avctx->width, avctx->height);

        x = 0; y = 0;

    }



    

    ctx->presentation.x = x;

    ctx->presentation.y = y;

}

static void FUNC_0(AVCodecContext *VAR_0,

                                       const uint8_t *VAR_1, int VAR_2)

{

    PGSSubContext *ctx = VAR_0->priv_data;



    int VAR_3, VAR_4;



    int VAR_5 = bytestream_get_be16(&VAR_1);

    int VAR_6 = bytestream_get_be16(&VAR_1);



    av_dlog(VAR_0, "Video Dimensions %dx%d\n",

            VAR_5, VAR_6);

    if (av_image_check_size(VAR_5, VAR_6, 0, VAR_0) >= 0)

        avcodec_set_dimensions(VAR_0, VAR_5, VAR_6);



    

    VAR_1++;



    ctx->presentation.id_number = bytestream_get_be16(&VAR_1);



    











    VAR_1 += 3;



    ctx->presentation.object_number = bytestream_get_byte(&VAR_1);

    if (!ctx->presentation.object_number)

        return;



    











    VAR_1 += 4;



    VAR_3 = bytestream_get_be16(&VAR_1);

    VAR_4 = bytestream_get_be16(&VAR_1);



    



    av_dlog(VAR_0, "Subtitle Placement VAR_3=%d, VAR_4=%d\n", VAR_3, VAR_4);



    if (VAR_3 > VAR_0->width || VAR_4 > VAR_0->height) {

        av_log(VAR_0, AV_LOG_ERROR, "Subtitle out of video bounds. VAR_3 = %d, VAR_4 = %d, video width = %d, video height = %d.\n",

               VAR_3, VAR_4, VAR_0->width, VAR_0->height);

        VAR_3 = 0; VAR_4 = 0;

    }



    

    ctx->presentation.VAR_3 = VAR_3;

    ctx->presentation.VAR_4 = VAR_4;

}

static void FUNC_0(AVCodecContext *VAR_0,
const uint8_t *VAR_1, int VAR_2)
{ PGSSubContext *ctx = VAR_0->priv_data; int VAR_3, VAR_4; int VAR_5 = bytestream_get_be16(&VAR_1); int VAR_6 = bytestream_get_be16(&VAR_1); av_dlog(VAR_0, "Video Dimensions %dx%d\n",
VAR_5, VAR_6); if (av_image_check_size(VAR_5, VAR_6, 0, VAR_0) >= 0)
avcodec_set_dimensions(VAR_0, VAR_5, VAR_6); VAR_1++; ctx->presentation.id_number = bytestream_get_be16(&VAR_1); VAR_1 += 3; ctx->presentation.object_number = bytestream_get_byte(&VAR_1); if (!ctx->presentation.object_number)
return; VAR_1 += 4; VAR_3 = bytestream_get_be16(&VAR_1); VAR_4 = bytestream_get_be16(&VAR_1); av_dlog(VAR_0, "Subtitle Placement VAR_3=%d, VAR_4=%d\n", VAR_3, VAR_4); if (VAR_3 > VAR_0->width || VAR_4 > VAR_0->height) { av_log(VAR_0, AV_LOG_ERROR, "Subtitle out of video bounds. VAR_3 = %d, VAR_4 = %d, video width = %d, video height = %d.\n",
VAR_3, VAR_4, VAR_0->width, VAR_0->height); VAR_3 = 0; VAR_4 = 0; } ctx->presentation.VAR_3 = VAR_3; ctx->presentation.VAR_4 = VAR_4; }