1/*
2* Copyright (c) 2009-2011 Intel Corporation.  All rights reserved.
3*
4* Licensed under the Apache License, Version 2.0 (the "License");
5* you may not use this file except in compliance with the License.
6* You may obtain a copy of the License at
7*
8* http://www.apache.org/licenses/LICENSE-2.0
9*
10* Unless required by applicable law or agreed to in writing, software
11* distributed under the License is distributed on an "AS IS" BASIS,
12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13* See the License for the specific language governing permissions and
14* limitations under the License.
15*/
16
17#ifndef VIDEO_DECODER_AVC_SECURE_H_
18#define VIDEO_DECODER_AVC_SECURE_H_
19
20#include "VideoDecoderAVC.h"
21#include "secvideoparser.h"
22
23class VideoDecoderAVCSecure : public VideoDecoderAVC {
24public:
25    VideoDecoderAVCSecure(const char *mimeType);
26    virtual ~VideoDecoderAVCSecure();
27    virtual Decode_Status start(VideoConfigBuffer *buffer);
28    virtual void stop(void);
29    virtual Decode_Status decode(VideoDecodeBuffer *buffer);
30
31protected:
32    virtual Decode_Status getCodecSpecificConfigs(VAProfile profile, VAConfigID*config);
33
34private:
35    virtual Decode_Status decodeSlice(vbp_data_h264 *data, uint32_t picIndex, uint32_t sliceIndex);
36private:
37    pavp_info_t mEncParam;
38    uint8_t *mNaluHeaderBuffer;
39    uint8_t *mSliceHeaderBuffer;
40    uint32_t mIsEncryptData;
41    uint32_t mFrameSize;
42};
43
44#endif /* VIDEO_DECODER_AVC_SECURE_H_ */
45