Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 917591 | Differences between
and this patch

Collapse All | Expand All

(-)a/libavcodec/av1dec.c (+14 lines)
Lines 1028-1033 static int export_itut_t35(AVCodecContext *avctx, AVFrame *frame, Link Here
1028
        break;
1029
        break;
1029
    }
1030
    }
1030
    case ITU_T_T35_PROVIDER_CODE_DOLBY: {
1031
    case ITU_T_T35_PROVIDER_CODE_DOLBY: {
1032
        AVBufferRef *rpu_buf;
1033
        AVFrameSideData *rpu;
1031
        int provider_oriented_code = bytestream2_get_be32(&gb);
1034
        int provider_oriented_code = bytestream2_get_be32(&gb);
1032
        if (itut_t35->itu_t_t35_country_code != ITU_T_T35_COUNTRY_CODE_US ||
1035
        if (itut_t35->itu_t_t35_country_code != ITU_T_T35_COUNTRY_CODE_US ||
1033
            provider_oriented_code != 0x800)
1036
            provider_oriented_code != 0x800)
Lines 1039-1044 static int export_itut_t35(AVCodecContext *avctx, AVFrame *frame, Link Here
1039
            break; // ignore
1041
            break; // ignore
1040
        }
1042
        }
1041
1043
1044
        rpu_buf = av_buffer_alloc(itut_t35->payload_size);
1045
        if (rpu_buf) {
1046
            memcpy(rpu_buf->data, itut_t35->payload, itut_t35->payload_size);
1047
            rpu = av_frame_new_side_data_from_buf(frame, AV_FRAME_DATA_DOVI_RPU_BUFFER_T35, rpu_buf);
1048
            if (!rpu) {
1049
                av_buffer_unref(&rpu_buf);
1050
                return AVERROR(ENOMEM);
1051
            }
1052
        } else {
1053
            return AVERROR(ENOMEM);
1054
        }
1055
1042
        ret = ff_dovi_attach_side_data(&s->dovi, frame);
1056
        ret = ff_dovi_attach_side_data(&s->dovi, frame);
1043
        if (ret < 0)
1057
        if (ret < 0)
1044
            return ret;
1058
            return ret;
(-)a/libavcodec/libdav1d.c (+14 lines)
Lines 562-567 static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) Link Here
562
            break;
562
            break;
563
        }
563
        }
564
        case ITU_T_T35_PROVIDER_CODE_DOLBY: {
564
        case ITU_T_T35_PROVIDER_CODE_DOLBY: {
565
            AVBufferRef *rpu_buf;
566
            AVFrameSideData *rpu;
565
            int provider_oriented_code = bytestream2_get_be32(&gb);
567
            int provider_oriented_code = bytestream2_get_be32(&gb);
566
            if (itut_t35->country_code != ITU_T_T35_COUNTRY_CODE_US ||
568
            if (itut_t35->country_code != ITU_T_T35_COUNTRY_CODE_US ||
567
                provider_oriented_code != 0x800)
569
                provider_oriented_code != 0x800)
Lines 573-578 static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) Link Here
573
                break; // ignore
575
                break; // ignore
574
            }
576
            }
575
577
578
            rpu_buf = av_buffer_alloc(itut_t35->payload_size);
579
            if (rpu_buf) {
580
                memcpy(rpu_buf->data, itut_t35->payload, itut_t35->payload_size);
581
                rpu = av_frame_new_side_data_from_buf(frame, AV_FRAME_DATA_DOVI_RPU_BUFFER_T35, rpu_buf);
582
                if (!rpu) {
583
                    av_buffer_unref(&rpu_buf);
584
                    goto fail;
585
                }
586
            } else {
587
                goto fail;
588
            }
589
576
            res = ff_dovi_attach_side_data(&dav1d->dovi, frame);
590
            res = ff_dovi_attach_side_data(&dav1d->dovi, frame);
577
            if (res < 0)
591
            if (res < 0)
578
                goto fail;
592
                goto fail;
(-)a/libavutil/frame.c (+1 lines)
Lines 934-939 const char *av_frame_side_data_name(enum AVFrameSideDataType type) Link Here
934
    case AV_FRAME_DATA_FILM_GRAIN_PARAMS:           return "Film grain parameters";
934
    case AV_FRAME_DATA_FILM_GRAIN_PARAMS:           return "Film grain parameters";
935
    case AV_FRAME_DATA_DETECTION_BBOXES:            return "Bounding boxes for object detection and classification";
935
    case AV_FRAME_DATA_DETECTION_BBOXES:            return "Bounding boxes for object detection and classification";
936
    case AV_FRAME_DATA_DOVI_RPU_BUFFER:             return "Dolby Vision RPU Data";
936
    case AV_FRAME_DATA_DOVI_RPU_BUFFER:             return "Dolby Vision RPU Data";
937
    case AV_FRAME_DATA_DOVI_RPU_BUFFER_T35:         return "Dolby Vision RPU ITU T35 Data";
937
    case AV_FRAME_DATA_DOVI_METADATA:               return "Dolby Vision Metadata";
938
    case AV_FRAME_DATA_DOVI_METADATA:               return "Dolby Vision Metadata";
938
    case AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT: return "Ambient viewing environment";
939
    case AV_FRAME_DATA_AMBIENT_VIEWING_ENVIRONMENT: return "Ambient viewing environment";
939
    }
940
    }
(-)a/libavutil/frame.h (+6 lines)
Lines 200-205 enum AVFrameSideDataType { Link Here
200
     */
200
     */
201
    AV_FRAME_DATA_DOVI_RPU_BUFFER,
201
    AV_FRAME_DATA_DOVI_RPU_BUFFER,
202
202
203
    /**
204
     * Dolby Vision RPU ITU T35 raw data, suitable for passing to SVT-AV1
205
     * or other libraries. Array of uint8_t.
206
     */
207
    AV_FRAME_DATA_DOVI_RPU_BUFFER_T35,
208
203
    /**
209
    /**
204
     * Parsed Dolby Vision metadata, suitable for passing to a software
210
     * Parsed Dolby Vision metadata, suitable for passing to a software
205
     * implementation. The payload is the AVDOVIMetadata struct defined in
211
     * implementation. The payload is the AVDOVIMetadata struct defined in

Return to bug 917591