182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON/*
282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* Copyright (c) 2009-2011 Intel Corporation.  All rights reserved.
382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON*
482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* Licensed under the Apache License, Version 2.0 (the "License");
582b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* you may not use this file except in compliance with the License.
682b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* You may obtain a copy of the License at
782b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON*
882b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* http://www.apache.org/licenses/LICENSE-2.0
982b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON*
1082b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* Unless required by applicable law or agreed to in writing, software
1182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* distributed under the License is distributed on an "AS IS" BASIS,
1282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* See the License for the specific language governing permissions and
1482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON* limitations under the License.
1582b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON*/
1682b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON
1782b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#ifndef VIDEO_DECODER_AVC_SECURE_H_
1882b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#define VIDEO_DECODER_AVC_SECURE_H_
1982b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON
2082b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#include "VideoDecoderAVC.h"
2182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#include "secvideoparser.h"
2282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON
2382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTONclass VideoDecoderAVCSecure : public VideoDecoderAVC {
2482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTONpublic:
2582b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    VideoDecoderAVCSecure(const char *mimeType);
2682b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    virtual ~VideoDecoderAVCSecure();
2782b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    virtual Decode_Status start(VideoConfigBuffer *buffer);
2882b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    virtual void stop(void);
2982b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    virtual Decode_Status decode(VideoDecodeBuffer *buffer);
3082b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON
3182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTONprotected:
3282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    virtual Decode_Status getCodecSpecificConfigs(VAProfile profile, VAConfigID*config);
3382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON
3482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTONprivate:
3582b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    virtual Decode_Status decodeSlice(vbp_data_h264 *data, uint32_t picIndex, uint32_t sliceIndex);
3682b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTONprivate:
3782b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    pavp_info_t mEncParam;
3882b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    uint8_t *mNaluHeaderBuffer;
3982b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    uint8_t *mSliceHeaderBuffer;
4082b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    uint32_t mIsEncryptData;
4182b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON    uint32_t mFrameSize;
4282b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON};
4382b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON
4482b428e49a70ddc051a36d2b3a25d90db79770dcGuilhem IMBERTON#endif /* VIDEO_DECODER_AVC_SECURE_H_ */
45