nengel@2: #ifndef H264_MISC_H nengel@2: #define H264_MISC_H nengel@2: nengel@2: #include "avcodec.h" nengel@2: #include "h264_types.h" nengel@2: nengel@2: void start_timer(H264Context *h, int stage); nengel@2: void stop_timer(H264Context *h, int stage); nengel@2: nengel@2: void init_sb_entry(H264Context *h, SliceBufferEntry *sbe); nengel@2: void free_sb_entry(SliceBufferEntry *sb); nengel@2: SliceBufferEntry *get_sb_entry(H264Context *h); nengel@2: void release_sb_entry(H264Context *h, SliceBufferEntry *sb); nengel@2: nengel@2: DecodedPicture *get_dpb_entry(H264Context *h, H264Slice *s); nengel@2: void release_dpb_entry(H264Context *h, DecodedPicture *pic, int mode); nengel@2: nengel@2: void draw_edges(MBRecContext *d, H264Slice *s, int line); nengel@2: nengel@2: int ff_init_slice(NalContext *n, H264Slice *s); nengel@2: void free_picture(PictureInfo *pic); nengel@2: void free_dp(DecodedPicture *pic); nengel@2: nengel@2: void av_start_timer(); nengel@2: int copyEDtoH264Slice(H264Slice *ms, H264Slice *es); nengel@2: void print_report(int frame_number, uint64_t video_size, int is_last_report, int verbose); nengel@2: nengel@2: int ff_alloc_picture_info(NalContext *n, H264Slice *s, PictureInfo *pic); nengel@2: DecodedPicture *output_frame(H264Context *h, OutputContext *oc, DecodedPicture *pic, int fd, int frame_width, int frame_height); nengel@2: OutputContext *get_output_context(H264Context *h); nengel@2: void free_output_context(OutputContext *oc); nengel@2: nengel@2: void freeSuperMBContext(SuperMBContext *smbc); nengel@2: SuperMBContext *getSuperMBContext(H264Context *h, int smb_width, int smb_height); nengel@2: void release_smbc(H264Context *h, SuperMBContext *smbc); nengel@2: SuperMBContext * acquire_smbc(H264Context *h ); nengel@2: nengel@2: #if HAVE_LIBSDL2 nengel@2: void signal_sdl_exit(H264Context *h); nengel@2: void *sdl_thread(void *arg); nengel@2: SDLContext *get_SDL_context(H264Context *h); nengel@2: void free_SDL_context(SDLContext *sdlc); nengel@2: #endif nengel@2: nengel@2: /** nengel@2: * gets the chroma qp. nengel@2: */ nengel@2: static inline int get_chroma_qp(H264Slice *s, int t, int qscale){ nengel@2: return s->pps.chroma_qp_table[t][qscale]; nengel@2: } nengel@2: nengel@2: #endif